# API fundamentals

This section covers conventions every endpoint follows, whichever capability
you're building with.

## Requests
Send each request to the API for your
[data center](https://docs.cronofy.com/developers/data-centers/index.md), shown as
`{data_center_url}` in the examples.

Request bodies can be JSON or form encoded, though JSON is recommended. Set the
`Content-Type` header to `application/json; charset=utf-8` or
`application/x-www-form-urlencoded` to match.

## Compatibility
We lean on existing standards, such as OAuth 2.0, OpenID Connect, and
iCalendar, wherever we can, so integrations can use familiar tools.

We don't make breaking changes to stable endpoints, but we do add to them. Parse
responses permissively, ignoring any attributes your application doesn't
understand. New behavior is always opt-in, through optional parameters or a
future version of the API.

## Release statuses
Most of the API is stable. Newer additions carry a release status, shown next
to the endpoint's title.

- **Beta** features are generally recently released or enhanced and are being
closely monitored for performance under real-world conditions. They are
stable from an interface perspective.

- **Alpha** features are new additions that haven't been used in anger. We are
confident that they work, but are aware they haven't been hardened by real
world usage. Whilst we do not expect to make any breaking changes once an
addition to the API reaches this point, this may happen at some point in
the future.

- **Prerelease** and **Design** documents describe features that need to be
enabled by Cronofy support, or that are shared for discussion ahead of
implementation, and are subject to change.

- **Superseded** endpoints still work, but have been replaced by a newer
endpoint that the page links to. Use the replacement in new integrations.

Alpha features are available to use in production. If you are using one,
please <a href="mailto:support@cronofy.com">let us know</a> so we can keep you
informed of any changes.


---
[Read in HTML](https://docs.cronofy.com/api-reference/fundamentals/)

## In this section

- [Data types](https://docs.cronofy.com/api-reference/fundamentals/data-types/index.md) — The API can receive requests and return responses comprising of specific data types.
- [Status codes and errors](https://docs.cronofy.com/api-reference/fundamentals/error-codes/index.md) — For API responses, we use conventional HTTP response codes to indicate the success or failure of an API request.
- [Identity](https://docs.cronofy.com/api-reference/fundamentals/identity/index.md) — Endpoints concerned with information about user accounts and calendar service connections (Profiles).
- [Batch requests](https://docs.cronofy.com/api-reference/fundamentals/batch/index.md) — The batch endpoint effectively allows up to 50 requests to be sent at once.
- [API libraries](https://docs.cronofy.com/api-reference/fundamentals/api-libraries/index.md) — SDKs for Cronofy for the major development languages and environments.
