{ "openapi": "3.0.3", "info": { "title": "Agencii Platform API", "version": "1.0.0", "description": "Reference documentation for the Agencii Platform API. Provides endpoints allowing you to run your agents on custom backends or on other unsupported channels. ⚡ Live Postman Example: https://www.postman.com/vrsen-ai/agencii-api/overview" }, "servers": [ { "url": "https://agency-swarm-app-japboyzddq-uc.a.run.app", "description": "Production server" } ], "components": { "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Platform token required for authentication. Find or create one inside Profile Icon > API Keys. Example: Bearer sk-agencii-..." } }, "schemas": { "Attachment": { "type": "object", "description": "Object representing a file attachment.", "properties": { "file_id": { "type": "string", "description": "The unique identifier for the file. Example: file-0SY0lLXWCSSBIOb2gu8UolxH" }, "tools": { "type": "array", "items": { "$ref": "#/components/schemas/Tool" }, "description": "An array of tool objects specifying tools to be used with the file. Example: [{ \"type\": \"file_search\" }]" } }, "required": ["file_id", "tools"] }, "Tool": { "type": "object", "description": "Object representing a tool to be used.", "properties": { "type": { "type": "string", "description": "The type of tool to be used. Example: file_search" } }, "required": ["type"] }, "GetResponseRequest": { "type": "object", "description": "Request body for the /get_response endpoint.", "properties": { "message": { "type": "string", "description": "The message content to be processed by the agent. Example: \"Hey! How are you?\"" }, "apiIntegrationId": { "type": "string", "description": "The unique identifier for the API integration being used. Example: \"dpCD7snQ0tCWrdtp6UhZ\"" }, "chatId": { "type": "string", "description": "The unique identifier for the chat session. If provided, continues the chat with the previous context. Example: \"plOQeH3hW7UKiACqEdAx\"", "nullable": true }, "attachments": { "type": "array", "items": { "$ref": "#/components/schemas/Attachment" }, "description": "An array of attachment objects to include files and specify tools for processing. Example: [{\"file_id\": \"file-123\", \"tools\": [{\"type\": \"file_search\"}]}]", "nullable": true }, "additionalInstructions": { "type": "string", "description": "Appends additional instructions at the end of the agent's instructions for the run. Useful for modifying behavior per-run. Example: \"User name: John Smith\"", "nullable": true }, "aliasChatId": { "type": "string", "description": "An alternative to chatId which allows using custom identifiers for persisting chats through third party integrations. Example: \"custom-identifier\"", "nullable": true } }, "required": ["message", "apiIntegrationId"] }, "GetResponseResponse": { "type": "object", "description": "Response body for the /get_response endpoint when textOnly mode is disabled.", "properties": { "chatId": { "type": "string", "description": "The unique identifier for the chat session. Example: \"FVfA971B3fnBH4S1OKlo\"" }, "createdAt": { "type": "string", "format": "date-time", "description": "The timestamp when the response was created (ISO 8601 format). Example: \"2024-08-06T02:02:37.533913\"" }, "threadId": { "type": "string", "description": "The unique identifier for the underlying thread. Example: \"thread_ruUj69CyW2STm8Zog0HXkvIJ\"" }, "assistantId": { "type": "string", "description": "The unique identifier for the assistant that responded. Example: \"J3NQwdHxqm9jvWFpOwFk\"" }, "name": { "type": "string", "description": "The name of the API integration used. Example: \"Test API Integration\"" }, "message": { "$ref": "#/components/schemas/Message", "description": "The message object containing the agent's response details." }, "numMessages": { "type": "integer", "description": "The total number of messages in the chat thread. Example: 2" }, "aliasChatId": { "type": "string", "description": "Alternative chat identifier used for persisting chats through third party integrations. Example: \"r14ud3CyX21Tm8Zog0HKJkvZJ\"" } } }, "Message": { "type": "object", "description": "Object representing a message within the chat.", "properties": { "id": { "type": "string", "description": "The unique identifier for the message. Example: \"msg_nH4zWgFW7dCUoNQ5msLJNBUd\"" }, "content": { "type": "string", "description": "The content of the message. Example: \"The secret phrase is: **papaya tangerine**.\"" }, "role": { "type": "string", "description": "The role of the message sender (e.g., 'assistant', 'user'). Example: \"assistant\"" }, "type": { "type": "string", "description": "The type of message (e.g., 'text'). Example: \"text\"" }, "createdAt": { "type": "string", "format": "date-time", "description": "The timestamp when the message was created (ISO 8601 format). Example: \"2024-08-06T02:02:37.533913\"" }, "references": { "type": "array", "items": { "type": "string" }, "description": "An array of references associated with the message." }, "fileIds": { "type": "array", "items": { "type": "string" }, "description": "An array of file IDs associated with the message. Example: [\"file-wRZy12uetHH9dVEpR6PhE92j\"]" }, "assistantData": { "type": "object", "nullable": true, "description": "Additional assistant-related data." }, "functions": { "type": "object", "nullable": true, "description": "Additional function-related data." } } }, "CreateNewChatRequest": { "type": "object", "description": "Request body for the /create_new_chat endpoint.", "properties": { "apiIntegrationId": { "type": "string", "description": "The unique identifier of the API integration for which to create the chat. Example: \"dpCD7snQ0tCWrdtp6UhZ\"" } }, "required": ["apiIntegrationId"] }, "CreateNewChatResponse": { "type": "object", "description": "Response body for the /create_new_chat endpoint.", "properties": { "chatId": { "type": "string", "description": "The unique identifier for the newly created chat. Example: \"FVfA971B3fnBH4S1OKlo\"" } } }, "ErrorResponse": { "type": "object", "description": "Standard error response format.", "properties": { "detail": { "type": "string", "description": "A detailed error message." } } } } }, "security": [ { "BearerAuth": [] } ], "paths": { "/create_new_chat": { "post": { "summary": "Create new chat", "description": "Creates a new chat instance for a user based on a provided API integration. Requires a valid platform token in the headers for authentication. Ensure the apiIntegrationId corresponds to an existing integration.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateNewChatRequest" } } } }, "responses": { "200": { "description": "Chat created successfully. Returns the unique chatId for the new chat.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateNewChatResponse" } } } }, "400": { "description": "Bad Request. Occurs if the request body is missing required fields or the JSON payload is malformed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "detail": "Your JSON payload is missing required fields. Please consult the documentation." } } } }, "401": { "description": "Unauthorized. Occurs if the Authorization header is missing or contains an invalid token.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "detail": "Invalid or missing authorization token." } } } }, "500": { "description": "Internal Server Error. Occurs if there is an issue on the server side while processing the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "detail": "An unexpected error occurred while processing your request." } } } } }, "security": [ { "BearerAuth": [] } ] } }, "/get_response": { "post": { "summary": "Get response", "description": "Processes a message using the specified API integration and returns a response from the agent. Requires a valid platform token. Ensure the apiIntegrationId is valid. Supports continuing existing chats via chatId or aliasChatId and attaching files with tools.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetResponseRequest" } } } }, "responses": { "200": { "description": "Successful response. The format varies depending on the `textOnly` mode configured for the API Integration. If `textOnly` is enabled, the response is plain text. Otherwise, it's application/json.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetResponseResponse" } }, "text/plain": { "schema": { "type": "string", "example": "This is a final message response from the bot." } } } }, "400": { "description": "Bad Request. Occurs if the request body is missing required fields or the JSON payload is malformed.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "detail": "Your JSON payload is missing required fields. Please consult the documentation." } } } }, "401": { "description": "Unauthorized. Occurs if the Authorization header is missing or contains an invalid token.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "detail": "Invalid or missing authorization token." } } } }, "500": { "description": "Internal Server Error. Occurs if there is an issue on the server side while processing the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "detail": "An unexpected error occurred while processing your request." } } } } }, "security": [ { "BearerAuth": [] } ] } } } }