AI Runs
Post Ai Run
Create an AI run. Body is discriminated by runType (e.g. brand-launch, product-ingest, research, framework types).
Required scopes: org:airuns:create
Authorization
bearerAuth AuthorizationBearer <token>
API key (prefix: cogn_) from Account → Developer
In: header
Path Parameters
orgId*string
Organization ID (prefix: org_)
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "http://localhost:3013/api/v1/org/string/ai-runs" \ -H "Content-Type: application/json" \ -d '{ "runType": "research", "productId": "string", "aiModel": "openai/gpt-5.5-pro", "sources": [ "brand_competitors" ], "insightIds": [ "string" ] }'{
"success": true,
"data": {
"id": "ar_123",
"sid": "ar_123",
"orgId": "o_123",
"brandId": "b_123",
"productId": "p_123",
"frameworkId": null,
"runType": "research",
"name": "Example AI Run",
"description": "Example description",
"stepDefinitions": [],
"status": "pending",
"phase": null,
"currentStepId": null,
"inputData": null,
"outputData": null,
"failedStepId": null,
"retryCount": 0,
"maxRetries": 3,
"createdBy": "u_123",
"createdAt": "2026-08-18T09:07:00.536Z",
"updatedAt": "2026-08-18T09:07:00.536Z"
},
"message": "Success",
"traceId": "req_abc123"
}{
"success": false,
"message": "Invalid data",
"errors": [
{
"code": 400,
"message": "Invalid data"
}
],
"traceId": "req_xxx"
}{
"success": false,
"message": "Unauthorized",
"errors": [
{
"code": 401,
"message": "Unauthorized"
}
],
"traceId": "req_xxx"
}{
"success": false,
"message": "Forbidden",
"errors": [
{
"code": 403,
"message": "Forbidden"
}
],
"traceId": "req_xxx"
}{
"success": false,
"message": "Not found",
"errors": [
{
"code": 404,
"message": "Not found"
}
],
"traceId": "req_xxx"
}{
"success": false,
"message": "Conflict",
"errors": [
{
"code": 409,
"message": "Conflict"
}
],
"traceId": "req_xxx"
}{
"success": false,
"message": "string",
"errors": [
{
"code": 0,
"message": "string",
"details": {}
}
],
"traceId": "string",
"params": {},
"readableMessage": "string"
}{
"success": false,
"message": "Rate limit exceeded",
"errors": [],
"traceId": "req_xxx"
}{
"success": false,
"message": "Unexpected error",
"errors": [
{
"code": 500,
"message": "Unexpected error"
}
],
"traceId": "req_xxx"
}