Twenty website screenshot

Twenty

Twenty is an open-source CRM platform built as a modern alternative to Salesforce, designed for teams that need flexibility, data ownership, and a contemporary developer experience. It provides REST and GraphQL APIs covering core CRM operations such as managing companies, people, opportunities, notes, tasks, and fully customizable objects. Developers can extend Twenty with custom objects, server-side logic, UI components, and AI agents as TypeScript packages, all surfaced through the same API surface. The platform is available as a cloud service or as a self-hosted deployment via Docker Compose, giving teams full control over their data residency and infrastructure.

Twenty publishes 9 APIs on the APIs.io network, including companies API, fields API, notes API, and 6 more. Tagged areas include CRM, Open Source, REST, GraphQL, and Webhooks.

The Twenty catalog on APIs.io includes 1 JSON-LD context and 1 Spectral governance ruleset.

Twenty’s developer surface includes authentication, documentation, engineering blog, pricing, and 14 more developer resources.

51.0/100 developing ▬ flat Agent 34/100 agent aware Full breakdown ↓
scored 2026-07-28 · rubric v0.6
AccessFreemiumOpenFree trial⚡ Free to try
9 APIs
CRMOpen SourceRESTGraphQLWebhooksSelf-HostedCompaniesPeopleOpportunitiesWorkflowsAI AgentsCustom Objects

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-28 · rubric v0.6
Composite quality — 51.0/100 · developing
Contract Quality 18.1 / 25
Developer Ergonomics 4.3 / 20
Commercial Clarity 10.0 / 20
Operational Transparency 4.8 / 13
Governance 8.3 / 12
Discoverability 5.6 / 10
Agent readiness — 34/100 · agent aware
Machine-Readable Contract 18 / 18
Agentic Access Contract 10 / 10
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 7 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 0 / 4
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/twenty: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 9

Individual APIs this provider publishes, each with its own machine-readable definition.

Twenty companies API

Company CRM records

Twenty fields API

Custom field metadata management

Twenty notes API

Note records associated with CRM objects

Twenty objects API

Custom object metadata management

Twenty openapi API

OpenAPI schema discovery

Twenty opportunities API

Opportunity/deal CRM records

Twenty people API

Person/contact CRM records

Twenty relations API

Custom relation metadata management

Twenty tasks API

Task records associated with CRM objects

Scroll for all 9

GraphQL 1

GraphQL schemas published by this provider.

Twenty CRM GraphQL API

Twenty exposes two GraphQL endpoints for every workspace: the Core API at `/graphql` and the Metadata API at `/metadata`. The Core API is schema-per-tenant — the types and field...

GRAPHQL

Pricing Plans 1

Published pricing tiers and plan structures.

Twenty Plans Pricing

3 plans

PLANS

Rate Limits 1

Documented rate limits and quota policies.

Twenty Rate Limits

5 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals for API financial operations.

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Twenty Context

2 classes · 19 properties

JSON-LD

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

Twenty API Rules

6 rules · 4 warnings 2 info

SPECTRAL

JSON Schema 3

Standalone JSON Schema definitions for this provider's data models.

Company

13 properties

JSON SCHEMA

Opportunity

14 properties

JSON SCHEMA

Person

13 properties

JSON SCHEMA

Examples 3

Example request and response payloads for these APIs.

Twenty Create Company

4 fields

EXAMPLE

Twenty List Companies

4 fields

EXAMPLE

Security Posture 3

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Twenty Authentication

http · 1 scheme

SECURITY

Twenty Domain Security

TLSv1.3 · HSTS · DNSSEC · DMARC

SECURITY

Twenty Vulnerability Disclosure

security.txt · contact published

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Twenty Agentic Access

42 operations · 25 acting

42 operations · 25 acting

AGENTIC

Resources

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 2

Pagination, idempotency, versioning, errors, and events

Build 1

SDKs, sample code, and the tooling you integrate with

Access & Security 3

Authentication, authorization, and security posture

Operate 1

Status, limits, changes, and where to get help

Commercial 3

Pricing, plans, and the legal terms of use

Company 5

The organization behind the API

Other 1

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: twenty
name: Twenty
description: 'Twenty is an open-source CRM platform built as a modern alternative to Salesforce, designed for teams that need
  flexibility, data ownership, and a contemporary developer experience. It provides REST and GraphQL APIs covering core CRM
  operations such as managing companies, people, opportunities, notes, tasks, and fully customizable objects. Developers can
  extend Twenty with custom objects, server-side logic, UI components, and AI agents as TypeScript packages, all surfaced
  through the same API surface. The platform is available as a cloud service or as a self-hosted deployment via Docker Compose,
  giving teams full control over their data residency and infrastructure.

  '
type: Index
accessModel:
  pricing: freemium
  onboarding: open
  trial: true
  try_now: true
  public: true
  label: Freemium (free trial) · Open access
  confidence: high
  source:
  - plans
  - authentication
  generated: '2026-07-22'
  method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/twenty.png
url: https://raw.githubusercontent.com/api-evangelist/twenty/refs/heads/main/apis.yml
created: 2026-06-12
modified: 2026-06-12
specificationVersion: '0.19'
tags:
- CRM
- Open Source
- REST
- GraphQL
- Webhooks
- Self-Hosted
- Companies
- People
- Opportunities
- Workflows
- AI Agents
- Custom Objects
apis:
- aid: twenty:twenty-companies-api
  name: Twenty companies API
  description: Company CRM records
  tags:
  - companies
  properties:
  - type: OpenAPI
    url: openapi/twenty-companies-api-openapi.yml
  - type: Documentation
    url: https://docs.twenty.com/developers/extend/api
  - type: JSONSchema
    url: json-schema/twenty-company.json
  - type: JSONSchema
    url: json-schema/twenty-person.json
  - type: JSONSchema
    url: json-schema/twenty-opportunity.json
  - type: Examples
    url: examples/twenty-create-company.json
  - type: Examples
    url: examples/twenty-list-companies.json
  - type: Examples
    url: examples/twenty-create-custom-object.json
  - type: GraphQL
    url: graphql/twenty-graphql.md
- aid: twenty:twenty-fields-api
  name: Twenty fields API
  description: Custom field metadata management
  tags:
  - fields
  properties:
  - type: OpenAPI
    url: openapi/twenty-fields-api-openapi.yml
  - type: Documentation
    url: https://docs.twenty.com/developers/extend/api
  - type: JSONSchema
    url: json-schema/twenty-company.json
  - type: JSONSchema
    url: json-schema/twenty-person.json
  - type: JSONSchema
    url: json-schema/twenty-opportunity.json
  - type: Examples
    url: examples/twenty-create-company.json
  - type: Examples
    url: examples/twenty-list-companies.json
  - type: Examples
    url: examples/twenty-create-custom-object.json
  - type: GraphQL
    url: graphql/twenty-graphql.md
- aid: twenty:twenty-notes-api
  name: Twenty notes API
  description: Note records associated with CRM objects
  tags:
  - notes
  properties:
  - type: OpenAPI
    url: openapi/twenty-notes-api-openapi.yml
  - type: Documentation
    url: https://docs.twenty.com/developers/extend/api
  - type: JSONSchema
    url: json-schema/twenty-company.json
  - type: JSONSchema
    url: json-schema/twenty-person.json
  - type: JSONSchema
    url: json-schema/twenty-opportunity.json
  - type: Examples
    url: examples/twenty-create-company.json
  - type: Examples
    url: examples/twenty-list-companies.json
  - type: Examples
    url: examples/twenty-create-custom-object.json
  - type: GraphQL
    url: graphql/twenty-graphql.md
- aid: twenty:twenty-objects-api
  name: Twenty objects API
  description: Custom object metadata management
  tags:
  - objects
  properties:
  - type: OpenAPI
    url: openapi/twenty-objects-api-openapi.yml
  - type: Documentation
    url: https://docs.twenty.com/developers/extend/api
  - type: JSONSchema
    url: json-schema/twenty-company.json
  - type: JSONSchema
    url: json-schema/twenty-person.json
  - type: JSONSchema
    url: json-schema/twenty-opportunity.json
  - type: Examples
    url: examples/twenty-create-company.json
  - type: Examples
    url: examples/twenty-list-companies.json
  - type: Examples
    url: examples/twenty-create-custom-object.json
  - type: GraphQL
    url: graphql/twenty-graphql.md
- aid: twenty:twenty-openapi-api
  name: Twenty openapi API
  description: OpenAPI schema discovery
  tags:
  - openapi
  properties:
  - type: OpenAPI
    url: openapi/twenty-openapi-api-openapi.yml
  - type: Documentation
    url: https://docs.twenty.com/developers/extend/api
  - type: JSONSchema
    url: json-schema/twenty-company.json
  - type: JSONSchema
    url: json-schema/twenty-person.json
  - type: JSONSchema
    url: json-schema/twenty-opportunity.json
  - type: Examples
    url: examples/twenty-create-company.json
  - type: Examples
    url: examples/twenty-list-companies.json
  - type: Examples
    url: examples/twenty-create-custom-object.json
  - type: GraphQL
    url: graphql/twenty-graphql.md
- aid: twenty:twenty-opportunities-api
  name: Twenty opportunities API
  description: Opportunity/deal CRM records
  tags:
  - opportunities
  properties:
  - type: OpenAPI
    url: openapi/twenty-opportunities-api-openapi.yml
  - type: Documentation
    url: https://docs.twenty.com/developers/extend/api
  - type: JSONSchema
    url: json-schema/twenty-company.json
  - type: JSONSchema
    url: json-schema/twenty-person.json
  - type: JSONSchema
    url: json-schema/twenty-opportunity.json
  - type: Examples
    url: examples/twenty-create-company.json
  - type: Examples
    url: examples/twenty-list-companies.json
  - type: Examples
    url: examples/twenty-create-custom-object.json
  - type: GraphQL
    url: graphql/twenty-graphql.md
- aid: twenty:twenty-people-api
  name: Twenty people API
  description: Person/contact CRM records
  tags:
  - people
  properties:
  - type: OpenAPI
    url: openapi/twenty-people-api-openapi.yml
  - type: Documentation
    url: https://docs.twenty.com/developers/extend/api
  - type: JSONSchema
    url: json-schema/twenty-company.json
  - type: JSONSchema
    url: json-schema/twenty-person.json
  - type: JSONSchema
    url: json-schema/twenty-opportunity.json
  - type: Examples
    url: examples/twenty-create-company.json
  - type: Examples
    url: examples/twenty-list-companies.json
  - type: Examples
    url: examples/twenty-create-custom-object.json
  - type: GraphQL
    url: graphql/twenty-graphql.md
- aid: twenty:twenty-relations-api
  name: Twenty relations API
  description: Custom relation metadata management
  tags:
  - relations
  properties:
  - type: OpenAPI
    url: openapi/twenty-relations-api-openapi.yml
  - type: Documentation
    url: https://docs.twenty.com/developers/extend/api
  - type: JSONSchema
    url: json-schema/twenty-company.json
  - type: JSONSchema
    url: json-schema/twenty-person.json
  - type: JSONSchema
    url: json-schema/twenty-opportunity.json
  - type: Examples
    url: examples/twenty-create-company.json
  - type: Examples
    url: examples/twenty-list-companies.json
  - type: Examples
    url: examples/twenty-create-custom-object.json
  - type: GraphQL
    url: graphql/twenty-graphql.md
- aid: twenty:twenty-tasks-api
  name: Twenty tasks API
  description: Task records associated with CRM objects
  tags:
  - tasks
  properties:
  - type: OpenAPI
    url: openapi/twenty-tasks-api-openapi.yml
  - type: Documentation
    url: https://docs.twenty.com/developers/extend/api
  - type: JSONSchema
    url: json-schema/twenty-company.json
  - type: JSONSchema
    url: json-schema/twenty-person.json
  - type: JSONSchema
    url: json-schema/twenty-opportunity.json
  - type: Examples
    url: examples/twenty-create-company.json
  - type: Examples
    url: examples/twenty-list-companies.json
  - type: Examples
    url: examples/twenty-create-custom-object.json
  - type: GraphQL
    url: graphql/twenty-graphql.md
common:
- type: AgenticAccess
  url: agentic-access/twenty-agentic-access.yml
- type: VulnerabilityDisclosure
  url: security/twenty-vulnerability-disclosure.yml
- type: DomainSecurity
  url: security/twenty-domain-security.yml
- type: Authentication
  url: authentication/twenty-authentication.yml
- type: Website
  url: https://twenty.com
- type: Documentation
  url: https://docs.twenty.com/developers/introduction
- type: GitHubOrg
  url: https://github.com/twentyhq
- type: LinkedIn
  url: https://www.linkedin.com/company/twenty
- type: Blog
  url: https://twenty.com/releases
- type: BlogRSS
  url: https://github.com/twentyhq/twenty/releases.atom
- type: Blog
  url: blogs/blogs.json
- type: Vocabulary
  url: vocabulary/twenty-vocabulary.yml
- type: JSONLDContext
  url: json-ld/twenty-context.jsonld
- type: Pricing
  url: https://twenty.com/pricing
- type: X
  url: https://x.com/twentycrm
- type: Plans
  url: plans/twenty-plans-pricing.yml
- type: RateLimits
  url: rate-limits/twenty-rate-limits.yml
- type: FinOps
  url: finops/twenty-finops.yml
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com