> For the complete documentation index, see [llms.txt](https://calcom.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://calcom.gitbook.io/docs/enterprise-features/api/api-reference.md).

# API reference

Dive into the specifics of each API endpoint by checking out our complete documentation. Unlike many other platforms, our API gives you access to every single data model within the application, meaning that you can replicate the entire functionality of Cal.com in your own app using the API.

Hence, this page shows you which API routes are most useful in order to prevent you from being overwhelmed with every single route available to you.

## The basics

You'll need only a few of the routes to be able to cover the basic functionality.

{% content-ref url="/pages/uVdAWsMJh8LvWW2aI1WN" %}
[Bookings](/docs/enterprise-features/api/api-reference/bookings.md)
{% endcontent-ref %}

{% content-ref url="/pages/UQOIyAgxd9PyCWFRw954" %}
[Event types](/docs/enterprise-features/api/api-reference/event-types.md)
{% endcontent-ref %}

## Managing users

The user endpoints can only be used on self-hosted enterprise instances and not on our hosted platform.

{% content-ref url="/pages/ewyyA4e3tvmzU2AgTIQh" %}
[Users](/docs/enterprise-features/api/api-reference/users.md)
{% endcontent-ref %}

## Managing teams

The teams endpoints allow you to programmatically CRUD team data.

{% content-ref url="/pages/6FkXtzf5f5irkPTLnXF9" %}
[Teams](/docs/enterprise-features/api/api-reference/teams.md)
{% endcontent-ref %}

## The other stuff

Attendees allows you to CRUD the data related to who is attending a particular booking. Useful if you want to create events where many people are invited.

{% content-ref url="/pages/kyao6W1os9sBboRfNrf7" %}
[Attendees](/docs/enterprise-features/api/api-reference/attendees.md)
{% endcontent-ref %}

Schedules allows you to set out time blocks when you want to show availability.

{% content-ref url="/pages/RUPCJtZYXLx3t5JQ3wf7" %}
[Schedules](/docs/enterprise-features/api/api-reference/schedules.md)
{% endcontent-ref %}

Availabilities allows you to map schedules to an event type.

{% content-ref url="/pages/SyiPsG87rILbFJ6rVViM" %}
[Availabilities](/docs/enterprise-features/api/api-reference/availabilities.md)
{% endcontent-ref %}

Booking references map meeting details to bookings.

{% content-ref url="/pages/JmAcTKTI9QKj7aFckcU1" %}
[Booking References](/docs/enterprise-features/api/api-reference/booking-references.md)
{% endcontent-ref %}

Custom inputs allow you to control which custom inputs are required for your event types.

{% content-ref url="/pages/6ExGL2yuLo8g3XTXMheO" %}
[Custom inputs](/docs/enterprise-features/api/api-reference/custom-inputs.md)
{% endcontent-ref %}

Destination calendars map bookings for event types to particular calendars.

{% content-ref url="/pages/e91K7FqJZeENT1p0nFvW" %}
[Destination calendars](/docs/enterprise-features/api/api-reference/destination-calendars.md)
{% endcontent-ref %}

Event references refer bookings to daily URLs and tokens.

{% content-ref url="/pages/LXyma0WUDfx26zfJEGbo" %}
[Broken mention](broken://pages/LXyma0WUDfx26zfJEGbo)
{% endcontent-ref %}

Memberships control mappings of users to particular roles within teams.

{% content-ref url="/pages/Qetr162W3BLRnYU3eDTc" %}
[Memberships](/docs/enterprise-features/api/api-reference/memberships.md)
{% endcontent-ref %}

Payments track the charges that are required to book certain events.

{% content-ref url="/pages/susWwUQnNZO8G4wdeOXI" %}
[Payments](/docs/enterprise-features/api/api-reference/payments.md)
{% endcontent-ref %}

Selected calendars keeps track of which calendars should be checked for conflicts.

{% content-ref url="/pages/0iJFX3rZLnsAqbwlL4YN" %}
[Selected calendars](/docs/enterprise-features/api/api-reference/selected-calendars.md)
{% endcontent-ref %}
