POST
/api/v1/draftsRecebe a primeira imagem + legenda do agente externo e abre o fluxo de aprovacao.
OpenAPI + Operacao
O v1 prioriza REST com bearer token. O review segue por links assinados e a publicacao final vai para o Instagram via Graph API.
/api/v1/draftsRecebe a primeira imagem + legenda do agente externo e abre o fluxo de aprovacao.
/api/v1/drafts/{draftId}/versionsRecebe uma nova versao do mesmo draft depois de uma regeneracao.
/api/v1/drafts/{draftId}Consulta status operacional, ultima versao, imagem publica e review URL.
callbackUrlQuando o aprovador pede nova imagem, o worker envia `action: regenerate_image` para o webhook do agente junto do `draftId`, legenda atual, metadata e motivo.
/api/openapi.json{
"openapi": "3.1.0",
"info": {
"title": "Auto Postagem API",
"version": "1.0.0",
"description": "API principal para receber drafts de post vindos de agentes externos e acompanhar o fluxo de aprovacao/publicacao."
},
"servers": [
{
"url": "{APP_URL}",
"description": "Configure com a URL do deploy"
}
],
"paths": {
"/api/v1/drafts": {
"post": {
"summary": "Cria um draft inicial",
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"required": [
"image",
"caption",
"callbackUrl"
],
"properties": {
"image": {
"type": "string",
"format": "binary"
},
"caption": {
"type": "string"
},
"metadata": {
"type": "string",
"description": "JSON serializado com metadados extras"
},
"externalReference": {
"type": "string"
},
"callbackUrl": {
"type": "string",
"format": "uri"
},
"targetAccount": {
"type": "string"
}
}
}
}
}
},
"responses": {
"201": {
"description": "Draft criado com sucesso"
}
}
}
},
"/api/v1/drafts/{draftId}": {
"get": {
"summary": "Consulta um draft",
"security": [
{
"bearerAuth": []
}
],
"parameters": [
{
"name": "draftId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Status detalhado do draft"
}
}
}
},
"/api/v1/drafts/{draftId}/versions": {
"post": {
"summary": "Anexa uma nova versao do draft",
"security": [
{
"bearerAuth": []
}
],
"parameters": [
{
"name": "draftId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"required": [
"image",
"caption",
"callbackUrl"
],
"properties": {
"image": {
"type": "string",
"format": "binary"
},
"caption": {
"type": "string"
},
"metadata": {
"type": "string",
"description": "JSON serializado com metadados extras"
},
"externalReference": {
"type": "string"
},
"callbackUrl": {
"type": "string",
"format": "uri"
},
"targetAccount": {
"type": "string"
}
}
}
}
}
},
"responses": {
"201": {
"description": "Nova versao registrada"
}
}
}
}
},
"components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "API Token"
}
}
}
}