packages/twenty-docs/developers/extend/capabilities/apis.mdx
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Twenty was built to be developer-friendly, offering powerful APIs that adapt to your custom data model. We provide four distinct API types to meet different integration needs.
Twenty generates APIs specifically for your data model:
Accessed on /rest/ or /graphql/
Work with your actual records (the data):
Accessed on /rest/metadata/ or /metadata/
Manage your workspace and data model:
Both Core and Metadata APIs are available in REST and GraphQL formats:
| Format | Available Operations |
|---|---|
| REST | CRUD, batch operations, upserts |
| GraphQL | Same + batch upserts, relationship queries in one call |
Choose based on your needs — both formats access the same data.
| Environment | Base URL |
|---|---|
| Cloud | https://api.twenty.com/ |
| Self-Hosted | https://{your-domain}/ |
Every API request requires an API key in the header:
Authorization: Bearer YOUR_API_KEY
For better security, assign a specific role to limit access:
The key will inherit that role's permissions. See Permissions for details.
Regenerate: Settings → APIs & Webhooks → Click key → Regenerate
Delete: Settings → APIs & Webhooks → Click key → Delete
Test your APIs directly in the browser with our built-in playground — available for both REST and GraphQL.
The playground reflects your custom objects and fields, so documentation is always accurate for your workspace.
Both REST and GraphQL support batch operations:
GraphQL-only features:
CreateCompanies instead of CreateCompany)API requests are throttled to ensure platform stability:
| Limit | Value |
|---|---|
| Requests | 100 calls per minute |
| Batch size | 60 records per call |