Criar Conexão de Credencial

Criar uma URL de navegador de curta duração para conectar um provedor OAuth ou reconectar uma credencial OAuth existente. Abra a URL em um navegador, entre como o dono da API key pessoal, conclua a autorização no provedor e depois atualize a lista de credenciais. Uma API key de workspace é rejeitada com 403; use uma API key pessoal.

POST/api/v2/credentials/connections
X-API-Key<token>

Sua API key do Studio, pessoal ou com escopo de workspace. Gere uma em Settings e depois API Keys. As operações que rejeitam API keys de workspace dizem isso na própria descrição.

Em: header

Corpo da requisição

application/json

Para uma nova conexão, informe providerId e displayName. Para uma reconexão, informe apenas credentialId; o nome de exibição existente é preservado.

Definições TypeScript

Use o tipo request body no TypeScript.

Corpo da resposta

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://agent-studio.seeyu.ai/api/v2/credentials/connections" \  -H "X-API-Key: YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "workspaceId": "string",    "displayName": "string",    "providerId": "quickbooks",    "oauthClientConfig": {      "clientId": "string",      "clientSecret": "string",      "environment": "sandbox",      "webhookVerifierToken": "string"    }  }'
{
  "data": {
    "authorizationUrl": "https://agent-studio.seeyu.ai/api/auth/oauth2/authorize?draftId=draft-123",
    "expiresAt": "2026-06-20T14:17:11.000Z"
  }
}
{
  "error": {
    "code": "BAD_REQUEST",
    "message": "Invalid request"
  }
}
{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required"
  }
}
{
  "error": {
    "code": "FORBIDDEN",
    "message": "Insufficient workspace permissions",
    "details": {
      "code": "INSUFFICIENT_WORKSPACE_ROLE"
    }
  }
}
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Not found"
  }
}
{
  "error": {
    "code": "CONFLICT",
    "message": "The request conflicts with the current state of the resource"
  }
}
{
  "error": {
    "code": "PAYLOAD_TOO_LARGE",
    "message": "Request body is too large"
  }
}
{
  "error": {
    "code": "UNSUPPORTED_MEDIA_TYPE",
    "message": "Request body must be sent as application/json"
  }
}
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "API rate limit exceeded",
    "details": {
      "retryAfter": "2026-01-01T00:00:30.000Z"
    }
  }
}
{
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Internal server error"
  }
}
{
  "error": {
    "code": "SERVICE_UNAVAILABLE",
    "message": "Service temporarily unavailable"
  }
}