> For the complete documentation index, see [llms.txt](https://cortex-docs.paloaltonetworks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-docs.paloaltonetworks.com/cortex-xsiam-developer-guide/cortex-xsiam-development-guide/readme/design/integration-design.md).

# Integration design

Integrations enable communications with third-party APIs. If you are contributing an integration to Marketplace, you must follow the [design best practices](/cortex-xsiam-developer-guide/cortex-xsiam-development-guide/readme/design/design-best-practices.md). To be accepted in the Cortex XSIAM Marketplace, integrations must function correctly, be properly documented, and work well with other related content.

When designing an integration, consider the following questions:

* Which product/API are you integrating with?
* Which product category does it belong to? See the list of approved [product categories](https://github.com/demisto/content/blob/master/Tests/Marketplace/approved_categories.json).
* Which version(s) of the product will you support?
* How does the authentication work?
* Will your integration fetch alerts? If so, what are the names of the entities in the source product (for example alerts, events, messages, warnings, logs) that will be mapped to alerts in Cortex XSIAM? What is the lifecycle of the entities, are they static or are they updated over time?
* What is the maximum number of new alerts this product can generate in a busy production environment?
* Are you calling APIs that can take longer than 5 to 10 seconds to respond?
* Does the product provide feeds of IOCs?
* Does the product provide any reputation on Indicators of Compromise (IOCs)?

**Additional Considerations**

* Understand and follow our code conventions to simplify implementation and the review process.
  * [Python](/cortex-xsiam-developer-guide/cortex-xsiam-development-guide/integrations-and-scripts/developing/python-code-conventions.md)
  * [PowerShell](/cortex-xsiam-developer-guide/cortex-xsiam-development-guide/integrations-and-scripts/developing/powershell.md)
* Integrations run in [Docker](/cortex-xsiam-developer-guide/cortex-xsiam-development-guide/integrations-and-scripts/developing/using-docker.md) containers. Cortex XSIAM provides generic images with recent Python and PowerShell versions and a small set of libraries. To use additional libraries that are not part of the default images, view our [dockerfiles](https://github.com/demisto/dockerfiles) repository in GitHub to see if an existing images meets your needs. If not, you can create your own Docker image and [contribute it](https://github.com/demisto/dockerfiles/blob/master/README.md). The Docker image to use must be specified in the integration YAML file.
* You can build feed integrations that collect batches of indicators from threat intel feeds. For more information, see [Feed Integrations](/cortex-xsiam-developer-guide/cortex-xsiam-development-guide/integrations-and-scripts/advanced-topics/feed-integrations.md).
* To store integration-specific data, such as tokens that have a specific duration (i.e. JWTs for authentication), you can use the [integration cache](/cortex-xsiam-developer-guide/cortex-xsiam-development-guide/integrations-and-scripts/advanced-topics/integration-cache.md) functionality.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cortex-docs.paloaltonetworks.com/cortex-xsiam-developer-guide/cortex-xsiam-development-guide/readme/design/integration-design.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
