Primeiros passos

URL base

Todas as requisições da API vão para:

https://agent-studio.seeyu.ai

Este guia cobre a API v2, em /api/v2/ — é ela que os SDKs e todos os endpoints em Endpoints usam. A caixa de entrada do Chat é servida por uma superfície v1 separada e mais antiga, em /api/v1/chat/, com formatos diferentes de resposta e de erro — veja Chat API (v1).

Início rápido

Obtenha sua chave de API

Acesse a plataforma Studio, vá em Settings, abra Studio Keys e clique em Create. Veja Autenticação para detalhes sobre os tipos de chave.

Encontre o ID do seu workflow

Abra um workflow no editor do Studio. O ID do workflow está na URL:

https://agent-studio.seeyu.ai/workspace/{workspaceId}/w/{workflowId}

Você também pode usar o endpoint List Workflows para obter todos os IDs de workflow de um workspace.

Faça o deploy do seu workflow

Um workflow precisa ter deploy antes de poder ser executado pela API. Clique no botão Deploy na barra de ferramentas do editor ou use o dashboard para gerenciar os deploys.

Faça sua primeira requisição

curl -X POST https://agent-studio.seeyu.ai/api/v2/workflows/{workflowId}/execute \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{"input": {}}'
const response = await fetch(
  `https://agent-studio.seeyu.ai/api/v2/workflows/${workflowId}/execute`,
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.STUDIO_API_KEY!,
    },
    body: JSON.stringify({ input: {} }),
  }
)

const data = await response.json()
console.log(data.data.output)
import requests
import os

response = requests.post(
    f"https://agent-studio.seeyu.ai/api/v2/workflows/{workflow_id}/execute",
    headers={
        "Content-Type": "application/json",
        "X-API-Key": os.environ["STUDIO_API_KEY"],
    },
    json={"input": {}},
)

data = response.json()
print(data["data"]["output"])

Execução síncrona vs. assíncrona

Por padrão, as execuções de workflow são síncronas — a API bloqueia até o workflow terminar e devolve o resultado direto.

Para workflows longos, use a execução assíncrona passando async: true:

curl -X POST https://agent-studio.seeyu.ai/api/v2/workflows/{workflowId}/execute \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{"input": {}, "async": true}'

Quem chama com chave de API pode enviar X-Run-Id: my-run-123 para escolher o ID da execução. IDs de execução não podem ser reutilizados; um ID duplicado retorna 409.

Isso retorna imediatamente com um runId e uma statusUrl:

{
  "data": {
    "runId": "c7a92e15-3f4b-4d8c-a1e6-9b0d5f2c8e74",
    "statusUrl": "https://agent-studio.seeyu.ai/api/v2/workflows/{workflowId}/runs/c7a92e15-3f4b-4d8c-a1e6-9b0d5f2c8e74"
  }
}

Consulte o endpoint de status da execução até o status ser terminal:

curl "https://agent-studio.seeyu.ai/api/v2/workflows/{workflowId}/runs/{runId}?includeOutput=true" \
  -H "X-API-Key: YOUR_API_KEY"

As transições de status da execução seguem: queued → running → completed, failed, cancelled ou paused. O campo data.output é preenchido nas execuções concluídas quando includeOutput=true.

Formato das respostas

As respostas de sucesso da v2 envolvem o recurso de execução em data:

{
  "data": {
    "runId": "c7a92e15-3f4b-4d8c-a1e6-9b0d5f2c8e74",
    "workflowId": "{workflowId}",
    "status": "completed",
    "output": { "result": "Hello, world!" },
    "error": null,
    "durationMs": 842
  }
}

Tratamento de erros

A API usa os códigos de status HTTP padrão. Os erros da v2 incluem um código estável e uma mensagem legível por humanos:

{
  "error": {
    "code": "NOT_FOUND",
    "message": "Workflow not found"
  }
}
StatusSignificadoO que fazer
400Parâmetros de requisição inválidosConfira o array details para ver os erros de cada campo
401Chave de API ausente ou inválidaVerifique seu header X-API-Key
403Acesso negadoConfirme se você tem permissão para este recurso
404Recurso não encontradoConfirme se o ID existe e pertence ao seu workspace
402Limite de uso excedidoUSAGE_LIMIT_EXCEEDED — o plano não cobre esta chamada
429Limite de requisições excedidoAguarde o tempo indicado no header Retry-After

Campos não reconhecidos são rejeitados

Todo endpoint da v2 valida a requisição contra o schema publicado — parâmetros de path, query string e body — e responde 400 para qualquer campo que ele não declare. Um parâmetro escrito errado é um erro, não uma operação silenciosa: ?limt=20 falha em vez de devolver uma lista sem limite sem avisar.

Isso vale também para os endpoints que não declaram nenhum parâmetro de query. Não acrescente tags de rastreamento, cache busters ou outros parâmetros extras a uma URL da v2; envie apenas o que o endpoint documenta.

{
  "error": {
    "code": "BAD_REQUEST",
    "message": "Invalid request",
    "details": [
      { "code": "unrecognized_keys", "keys": ["limt"], "path": [], "message": "Unrecognized key: \"limt\"" }
    ]
  }
}

Use Get Billing Status para inspecionar o uso atual de créditos e de armazenamento.

Limites de requisições

Os limites de requisições dependem do seu plano de assinatura e valem separadamente para execuções síncronas e assíncronas.

Como ler sua cota

Toda resposta traz o estado do bucket em que a requisição foi contabilizada. Leia esses headers em vez de fixar um limite no código — o teto muda junto com o seu plano, e X-RateLimit-Limit é o valor autoritativo para a sua chave naquele momento.

HeaderValor
X-RateLimit-LimitRequisições permitidas na janela atual
X-RateLimit-RemainingRequisições ainda disponíveis
X-RateLimit-ResetTimestamp ISO 8601 de quando a janela é reabastecida

Como os buckets são separados

A v2 mede por operação e por sujeito. Uma chave que esgota o orçamento em POST /api/v2/workflows/{id}/execute continua conseguindo ler logs. Cada requisição é verificada contra todos os sujeitos a que a chave se resolve — a própria chave de API, mais o usuário dono no caso de uma chave pessoal ou o workspace no caso de uma chave de workspace — e o bucket mais restritivo decide.

A v1 é mais grosseira: um único bucket compartilhado por usuário em todos os endpoints v1.

Quando você é limitado

Uma requisição barrada retorna 429 com o código de erro RATE_LIMITED:

{
  "error": {
    "code": "RATE_LIMITED",
    "message": "API rate limit exceeded",
    "details": { "retryAfter": "2026-09-08T17:45:00.000Z" }
  }
}

O Retry-After dá a espera em segundos inteiros e details.retryAfter traz o mesmo instante como timestamp. Espere até lá em vez de tentar de novo na hora — uma retentativa antes do reset é contabilizada no bucket e empurra o reset para mais longe.

Restrições por plano

No plano gratuito, executar um workflow de forma programática — API pública, chave de API ou servidor MCP — retorna 402 com USAGE_LIMIT_EXCEEDED e a mensagem Programmatic workflow execution requires a paid plan. Upgrade to Pro or higher to use the API. As leituras não são afetadas.

Paginação

Os endpoints de listagem (workflows, logs, logs de auditoria) usam paginação por cursor:

# First page
curl "https://agent-studio.seeyu.ai/api/v2/logs?workspaceId=WORKSPACE_ID&limit=20" \
  -H "X-API-Key: YOUR_API_KEY"

# Next page — use the nextCursor from the previous response
curl "https://agent-studio.seeyu.ai/api/v2/logs?workspaceId=WORKSPACE_ID&limit=20&cursor=abc123" \
  -H "X-API-Key: YOUR_API_KEY"

A resposta inclui o campo nextCursor. Quando nextCursor está ausente ou é null, você chegou à última página.