Saltar al contenido principal
Twenty implementa OAuth 2.0 con código de autorización + PKCE para aplicaciones orientadas al usuario y credenciales de cliente para acceso de servidor a servidor. Los clientes se registran dinámicamente mediante RFC 7591 — sin configuración manual en un panel.

Cuándo usar OAuth

EscenarioMétodo de autenticación
Scripts internos, automatizaciónClave de API
Aplicación externa que actúa en nombre de un usuarioOAuth — Código de autorización
De servidor a servidor, sin contexto de usuarioOAuth — Credenciales de cliente
Aplicación de Twenty con extensiones de UIAplicaciones (OAuth se gestiona automáticamente)

Registrar un cliente

Twenty admite el registro dinámico de clientes según RFC 7591. No se necesita configuración manual — regístrelo de forma programática:
POST /oauth/register
Content-Type: application/json

{
  "client_name": "My Integration",
  "redirect_uris": ["https://myapp.com/callback"],
  "grant_types": ["authorization_code"],
  "token_endpoint_auth_method": "client_secret_post"
}
Respuesta:
{
  "client_id": "abc123",
  "client_secret": "secret456",
  "client_name": "My Integration",
  "redirect_uris": ["https://myapp.com/callback"]
}
Almacene el client_secret de forma segura — no se puede recuperar más tarde.

Ámbitos

ÁmbitoAcceso
apiAcceso completo de lectura/escritura a las API de Core y Metadata
profileLeer la información de perfil del usuario autenticado
Solicite los ámbitos como una cadena separada por espacios: scope=api profile

Flujo de código de autorización

Use este flujo cuando su aplicación actúe en nombre de un usuario de Twenty.

1. Redirija al usuario para autorizar

GET /oauth/authorize?
  client_id=YOUR_CLIENT_ID&
  response_type=code&
  redirect_uri=https://myapp.com/callback&
  scope=api&
  state=random_state_value&
  code_challenge=CHALLENGE&
  code_challenge_method=S256
ParámetroObligatorioDescripción
client_idSu ID de cliente registrado
response_typeDebe ser code
redirect_uriDebe coincidir con un URI de redirección registrado
scopeNoÁmbitos separados por espacios (valor predeterminado: api)
stateRecomendadoCadena aleatoria para evitar ataques CSRF
code_challengeRecomendadoDesafío PKCE (hash SHA-256 del verificador, codificado en base64url)
code_challenge_methodRecomendadoDebe ser S256 al usar PKCE
El usuario ve una pantalla de consentimiento y aprueba o deniega el acceso.

2. Gestione el callback

Tras la autorización, Twenty redirige de vuelta a su redirect_uri:
https://myapp.com/callback?code=AUTH_CODE&state=random_state_value
Verifique que state coincida con lo que envió.

3. Intercambie el código por tokens

POST /oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&
code=AUTH_CODE&
redirect_uri=https://myapp.com/callback&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET&
code_verifier=YOUR_PKCE_VERIFIER
Respuesta:
{
  "access_token": "eyJhbG...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "refresh_token": "dGhpcyBpcyBh..."
}

4. Use el token de acceso

GET /rest/companies
Authorization: Bearer ACCESS_TOKEN

5. Actualice cuando caduque

POST /oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&
refresh_token=YOUR_REFRESH_TOKEN&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET

Flujo de credenciales de cliente

Para integraciones de servidor a servidor sin interacción del usuario:
POST /oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET&
scope=api
El token devuelto tiene acceso a nivel de espacio de trabajo, no está vinculado a ningún usuario específico.

Descubrimiento del servidor

Twenty publica su configuración de OAuth en un endpoint de descubrimiento estándar:
GET /.well-known/oauth-authorization-server
Esto devuelve todos los endpoints, los tipos de concesión compatibles, los ámbitos y las capacidades — útil para crear clientes OAuth genéricos.

Resumen de Puntos de Acceso de API

EndpointPropósito
/.well-known/oauth-authorization-serverDescubrimiento de metadatos del servidor
/oauth/registerRegistro dinámico de clientes
/oauth/authorizeAutorización del usuario
/oauth/tokenIntercambio y renovación de tokens
EntornoURL base
Nubehttps://api.twenty.com
Autoalojamientohttps://{your-domain}

OAuth frente a claves de API

Claves APIOAuth
ConfiguraciónGenerar en AjustesRegistrar un cliente, implementar el flujo
Contexto del usuarioNinguno (a nivel de espacio de trabajo)Permisos de un usuario específico
Ideal paraScripts, herramientas internasAplicaciones externas, integraciones multiusuario
Rotación de tokensManualAutomática mediante tokens de actualización
Acceso con ámbitosAcceso completo a la APIGranular mediante ámbitos