> For the complete documentation index, see [llms.txt](https://docs.civiform.us/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.civiform.us/it-manual/api.md).

# API Integration

CiviForm supports integration with external systems via its HTTP JSON API. The API authenticates requests using API keys managed by the CiviForm admin. API clients can expect [conventional response status codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) indicating the result of their request.

Please see the articles in this section for more detail:

* [Authentication](/it-manual/api/authentication.md)
* [List Applications Endpoint](/it-manual/api/program-applications.md)
* [Integrating with a case management system or CRM](/it-manual/api/integrating-with-case-systems.md)

The API is also described as an OpenAPI 3.0 document, [openapi.yaml](https://github.com/civiform/docs/tree/main/docs/.gitbook/assets/api/openapi.yaml), which covers what is the same on every deployment: authentication, the list endpoint, its parameters and pagination, the response envelope, the stable fields of every application, and the shape of each question type. Import it into an API client or an integration platform to generate a client. The answer schema for a specific program is generated by each deployment for signed-in admins at `/docs/api/schemas/<programSlug>`.
