Criar projeto
tong_workspace_createCrie um recurso salvo na sua conta Tong com os campos abaixo.
/v1/tools/tong_workspace_create/operationsExemplo de solicitação#
curl -X POST 'https://platform.tongai.io/v1/tools/tong_workspace_create/operations' \ -H "Authorization: Bearer $TONG_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: 45be69f1-c266-4a09-a82c-bf3c6303eb03" \ -d '{ "input": { "body": { "name": "aaaa" } }}'Configuração
curl --versionPermissões#
Use uma chave API no servidor para sua conta, ou OAuth para a conta de cada cliente. Nunca envie chaves em prompts ou argumentos.
projects:writeCorpo da solicitação#
As solicitações REST envolvem os argumentos em input. As chamadas MCP enviam os mesmos argumentos diretamente.
bodyobjectObrigatórioMostrar campos aninhados
namestringObrigatórioComprimento mínimo: 1 caracteres.
Comprimento máximo: 100 caracteres.
"aaaa"Cabeçalhos da solicitação#
Authorization: Bearer $TONG_API_KEYContent-Type: application/jsonIdempotency-Key: 45be69f1-c266-4a09-a82c-bf3c6303eb03Mantenha um UUID por ação e reutilize após timeout ou nova tentativa. Entradas diferentes com o mesmo UUID são rejeitadas.
Campos de resposta#
Uma solicitação aceita não é uma geração concluída. Acompanhe o trabalho até o resultado estar pronto.
Aceita significa que a solicitação foi salva. Consulte a operação para acompanhar a execução.
{ "id": "e8aa0a87-6cd9-42eb-975a-b72bf43218c8", "tool": "tong_workspace_create", "category": "workspace", "channel": "api", "state": "queued", "status": "accepted", "stage": "admission", "dispatch_status": "pending", "created_at": "2026-10-22T09:00:00.000Z", "updated_at": "2026-10-22T09:00:00.000Z", "detail_expires_at": null, "detail_expired": false, "timing": { "dispatch_started_at": null, "acknowledged_at": null, "completed_at": null, "dispatch_acknowledgement_ms": null, "end_to_end_ms": null }, "review": null, "result": null, "error": null, "billing": { "status": "pending", "usage_credits": "0.000000", "wallet_debited_credits": "0.000000" }}idstringObrigatórioO ID exclusivo da operação salva.
Um UUID, por exemplo e8aa0a87-6cd9-42eb-975a-b72bf43218c8.
toolstringObrigatóriocategorystringObrigatóriochannelstringObrigatório"api""mcp"statestringObrigatórioO estado atual de execução do trabalho salvo.
"queued""running""waiting""needs_review""paused""reconciling""succeeded""failed""cancelled"statusstringObrigatórioO status geral para acompanhar a operação.
"accepted""running""needs_review""paused""reconciling""succeeded""failed""cancelled"stagestringObrigatórioA fase atual da operação.
"admission""dispatch""review""generation""reconciliation""complete"dispatch_statusstringObrigatórioIndica se a ferramenta aceitou a solicitação. A confirmação não significa que a geração terminou.
"pending""unknown""acknowledged"created_atstringObrigatórioData e hora ISO 8601, por exemplo 2026-10-22T09:00:00Z.
updated_atstringObrigatórioData e hora ISO 8601, por exemplo 2026-10-22T09:00:00Z.
detail_expires_atstring | nullObrigatórioQuando os detalhes salvos expiram. O valor null indica que não há expiração definida.
Data e hora ISO 8601, por exemplo 2026-10-22T09:00:00Z.
detail_expiredbooleanObrigatórioIndica se os detalhes salvos da operação expiraram.
timingobjectObrigatórioDatas e durações para acompanhar esta operação.
Mostrar campos aninhados
dispatch_started_atstring | nullObrigatórioData e hora ISO 8601, por exemplo 2026-10-22T09:00:00Z.
acknowledged_atstring | nullObrigatórioData e hora ISO 8601, por exemplo 2026-10-22T09:00:00Z.
completed_atstring | nullObrigatórioData e hora ISO 8601, por exemplo 2026-10-22T09:00:00Z.
dispatch_acknowledgement_msnumber | nullObrigatórioMínimo: 0.
end_to_end_msnumber | nullObrigatórioMínimo: 0.
reviewJSON | nullObrigatórioInformações de revisão quando a operação exige intervenção humana; caso contrário, null.
resultJSON | nullObrigatórioA saída desta ferramenta, ou null enquanto não houver saída disponível.
errorobject | nullObrigatórioO código de erro público se a operação falhou; caso contrário, null.
Mostrar campos aninhados
codestringObrigatóriobillingobjectObrigatórioUso de créditos e cobranças da carteira. A disponibilidade da saída e a liquidação são independentes.
Mostrar campos aninhados
statusstringObrigatório"none""pending""settled""released""reconciling"usage_creditsstringObrigatórioUma string decimal com seis casas decimais, por exemplo 1.250000.
wallet_debited_creditsstringObrigatórioUma string decimal com seis casas decimais, por exemplo 1.250000.
released_creditsstringOpcionalUma string decimal com seis casas decimais, por exemplo 1.250000.
refunded_creditsstringOpcionalUma string decimal com seis casas decimais, por exemplo 1.250000.
unfunded_creditsstringOpcionalUma string decimal com seis casas decimais, por exemplo 1.250000.
pending_creditsstringOpcionalUma string decimal com seis casas decimais, por exemplo 1.250000.
tokensobjectOpcionalMostrar campos aninhados
inputnumberOpcionalMínimo: 0.
outputnumberOpcionalMínimo: 0.
cachednumberOpcionalMínimo: 0.
cache_writenumberOpcionalMínimo: 0.
componentsobject[]OpcionalMostrar campos aninhados
idstringOpcionalsource_idstringObrigatóriotoolstringObrigatóriomodelstring | nullObrigatóriochannelstringObrigatório"api""mcp"credential_idstringObrigatóriokindstringObrigatório"text_pool""reasoning""generation"usage_creditsstringObrigatórioUma string decimal com seis casas decimais, por exemplo 1.250000.
wallet_debited_creditsstringObrigatórioUma string decimal com seis casas decimais, por exemplo 1.250000.
evidence_atstringOpcionalData e hora ISO 8601, por exemplo 2026-10-22T09:00:00Z.
updated_atstringOpcionalData e hora ISO 8601, por exemplo 2026-10-22T09:00:00Z.
quoteobjectOpcionalA configuração, o preço e os valores de envio quando há uma cotação.
Mostrar campos aninhados
idstringObrigatórioUm UUID, por exemplo e8aa0a87-6cd9-42eb-975a-b72bf43218c8.
operation_idstringObrigatórioUm UUID, por exemplo e8aa0a87-6cd9-42eb-975a-b72bf43218c8.
toolstringObrigatóriooperationstring | nullObrigatóriomodelstring | nullObrigatórioconfigurationobjectObrigatóriosubmit_valuestringObrigatóriosubmit_fieldstringObrigatórioquoted_creditsstring | nullObrigatórioUma string decimal com seis casas decimais, por exemplo 1.250000.
expires_atstring | nullObrigatórioData e hora ISO 8601, por exemplo 2026-10-22T09:00:00Z.
Chamada MCP#
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "tong_workspace_create", "arguments": { "body": { "name": "aaaa" } }, "_meta": { "io.tongai/idempotency-key": "45be69f1-c266-4a09-a82c-bf3c6303eb03" } }}As solicitações REST envolvem os argumentos em input. As chamadas MCP enviam os mesmos argumentos diretamente.
Resposta
{ "jsonrpc": "2.0", "id": 1, "result": { "structuredContent": { "id": "e8aa0a87-6cd9-42eb-975a-b72bf43218c8", "tool": "tong_workspace_create", "category": "workspace", "channel": "mcp", "state": "queued", "status": "accepted", "stage": "admission", "dispatch_status": "pending", "created_at": "2026-10-22T09:00:00.000Z", "updated_at": "2026-10-22T09:00:00.000Z", "detail_expires_at": null, "detail_expired": false, "timing": { "dispatch_started_at": null, "acknowledged_at": null, "completed_at": null, "dispatch_acknowledgement_ms": null, "end_to_end_ms": null }, "review": null, "result": null, "error": null, "billing": { "status": "pending", "usage_credits": "0.000000", "wallet_debited_credits": "0.000000" } }, "content": [ { "type": "text", "text": "{\"id\":\"e8aa0a87-6cd9-42eb-975a-b72bf43218c8\",\"tool\":\"tong_workspace_create\",\"category\":\"workspace\",\"channel\":\"mcp\",\"state\":\"queued\",\"status\":\"accepted\",\"stage\":\"admission\",\"dispatch_status\":\"pending\",\"created_at\":\"2026-10-22T09:00:00.000Z\",\"updated_at\":\"2026-10-22T09:00:00.000Z\",\"detail_expires_at\":null,\"detail_expired\":false,\"timing\":{\"dispatch_started_at\":null,\"acknowledged_at\":null,\"completed_at\":null,\"dispatch_acknowledgement_ms\":null,\"end_to_end_ms\":null},\"review\":null,\"result\":null,\"error\":null,\"billing\":{\"status\":\"pending\",\"usage_credits\":\"0.000000\",\"wallet_debited_credits\":\"0.000000\"}}" } ] }}Erros e limites#
| HTTP | Erro | Recuperação |
|---|---|---|
400 | Solicitação inválidaREQUEST_INVALID | Corrija os campos indicados pelo erro antes de tentar novamente. |
401 | Credencial inválidaCREDENTIAL_INVALID | Verifique a credencial, a validade e se foi revogada. |
402 | Créditos insuficientesINSUFFICIENT_CREDITS | Adicione créditos à conta da credencial e continue o trabalho salvo. |
403 | Permissão negadaSCOPE_REQUIRED | Use uma credencial com os escopos necessários e acesso ao recurso selecionado. |
404 | Recurso indisponívelRESOURCE_UNAVAILABLE | Verifique o ID do recurso e se pertence à conta autorizada. |
409 | Conflito de intençãoIDEMPOTENCY_CONFLICT | Reutilize uma intenção apenas com a solicitação original. Use um novo UUID para outra ação. |
429 | Limite de requisições atingidoRATE_LIMITED | Aguarde o prazo de Retry-After antes de repetir a mesma solicitação. |
503 | Temporariamente indisponívelDEPENDENCY_UNAVAILABLE | Aguarde Retry-After e repita com a mesma intenção. Verifique a operação salva após um tempo limite. |