Files
upstream-twenty/packages/twenty-docs/l/pt/developers/extend/capabilities/apis.mdx
upstream-mirror e7da97194a
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s
snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
2026-09-17 23:28:13 +05:00

148 lines
5.5 KiB
Plaintext

---
title: APIs
description: Consulte e modifique seus dados de CRM programaticamente usando REST ou GraphQL.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
O Twenty foi desenvolvido para ser amigável ao desenvolvedor, oferecendo APIs poderosas que se adaptam ao seu modelo de dados personalizado. Oferecemos quatro tipos distintos de API para atender diferentes necessidades de integração.
## Abordagem Focada no Desenvolvedor
Twenty gera APIs especificamente para o seu modelo de dados:
* **Nenhum ID longo necessário**: Use os nomes dos seus objetos e campos diretamente nas endpoints
* **Objetos padrão e personalizados tratados igualmente**: Seus objetos personalizados recebem o mesmo tratamento de API que os incorporados
* **Endpoints dedicados**: Cada objeto e campo tem seu próprio endpoint de API
* **Documentação personalizada**: Gerada especificamente para o modelo de dados do seu workspace
<Note>
Sua documentação de API personalizada fica disponível em **Configurações → API & Webhooks** após criar uma chave de API. Como o Twenty gera APIs que correspondem ao seu modelo de dados personalizado, a documentação é exclusiva do seu workspace.
</Note>
## Os dois tipos de API
### Core API
Acessada em `/rest/` ou `/graphql/`
Trabalhe com seus **registros** (os dados):
* Criar, ler, atualizar e excluir Pessoas, Empresas, Oportunidades, etc.
* Consultar e filtrar dados
* Gerenciar relações de registros
### Metadata API
Acessada em `/rest/metadata/` ou `/metadata/`
Gerencie seu **workspace e modelo de dados**:
* Criar, modificar ou excluir objetos e campos
* Configurar as configurações do workspace
* Defina relacionamentos entre objetos
## REST vs GraphQL
As APIs Core e Metadata estão disponíveis nos formatos REST e GraphQL:
| Formato | Operações disponíveis |
| ----------- | --------------------------------------------------------------------------------- |
| **REST** | CRUD, operações em lote, upserts |
| **GraphQL** | Os mesmos + **upserts em lote**, consultas de relacionamento em uma única chamada |
Escolha com base nas suas necessidades — ambos os formatos acessam os mesmos dados.
## Endpoints de API
| Ambiente | URL base |
| ------------------ | ------------------------- |
| **Nuvem** | `https://api.twenty.com/` |
| **Auto-hospedado** | `https://{your-domain}/` |
## Autenticação
Toda solicitação de API requer uma chave de API no cabeçalho:
```
Authorization: Bearer YOUR_API_KEY
```
### Criar uma Chave de API
1. Vá para **Configurações → APIs & Webhooks**
2. Clique em **+ Criar chave**
3. Configurar:
* **Nome**: Nome descritivo para a chave
* **Data de expiração**: Quando a chave expira
4. Clique em **Salvar**
5. **Copie imediatamente** — a chave é exibida apenas uma vez
<VimeoEmbed videoId="928786722" title="Criando chave de API" />
<Warning>
Sua chave de API concede acesso a dados confidenciais. Não a compartilhe com serviços não confiáveis. Se for comprometida, desative-a imediatamente e gere uma nova.
</Warning>
### Atribuir uma função a uma chave de API
Para maior segurança, atribua uma função específica para limitar o acesso:
1. Vá para **Configurações → Membros → Funções**
2. Clique na função que deseja atribuir
3. Abra a aba de **Atribuição**
4. Em **Chaves de API**, clique em **+ Atribuir à chave de API**
5. Selecione a chave de API
A chave herdará as permissões dessa função. Veja [Permissões](/l/pt/user-guide/permissions-access/capabilities/permissions) para obter detalhes.
### Gerenciar Chaves de API
**Regenerar**: Configurações → APIs & Webhooks → Clique na chave → **Regenerar**
**Excluir**: Configurações → APIs & Webhooks → Clique na chave → **Excluir**
## Playground de API
Teste suas APIs diretamente no navegador com nosso playground integrado — disponível tanto para **REST** quanto para **GraphQL**.
### Acesse o Playground
1. Vá para **Configurações → APIs & Webhooks**
2. Crie uma chave de API (obrigatório)
3. Clique em **REST API** ou **GraphQL API** para abrir o playground
### O que você obtém
* **Documentação interativa**: Gerada para o seu modelo de dados específico
* **Testes ao vivo**: Execute chamadas de API reais no seu workspace
* **Explorador de esquema**: Navegue pelos objetos, campos e relacionamentos disponíveis
* **Construtor de solicitações**: Construa consultas com preenchimento automático
O playground reflete seus objetos e campos personalizados, portanto, a documentação está sempre precisa para o seu workspace.
## Operações em Lote
Tanto REST quanto GraphQL suportam operações em lote:
* **Tamanho do lote**: Até 60 registros por requisição
* **Operações**: Criar, atualizar e excluir vários registros
**Recursos exclusivos do GraphQL:**
* **Upsert em lote**: Criar ou atualizar em uma única chamada
* Use nomes de objetos no plural (por exemplo, `CreateCompanies` em vez de `CreateCompany`)
## Limites de taxa
As solicitações de API são limitadas para garantir a estabilidade da plataforma:
| Limite | Valor |
| ------------------- | ------------------------ |
| **Solicitações** | 100 chamadas por minuto |
| **Tamanho do lote** | 60 registros por chamada |
<Tip>
Use operações em lote para maximizar a taxa de transferência — processe até 60 registros em uma única chamada de API em vez de fazer solicitações individuais.
</Tip>