Admin · API Documentation

Continuity API

The provider-neutral AiM Continuity API lets any approved AI assistant read organizational records and submit recommendations. External AI can never delete records, approve its own work, or change configuration.

Base API URL

https://your-app.example.com

Authentication

Bearer token (server-side secret).

Authorization: Bearer ••••••••••••••••

The actual API key is stored only in the secure server secrets vault and is never exposed in frontend code or on this page. OAuth support is architected for future per-customer connections.

Endpoints

MethodPathDescription
GET/api/healthService health check (public).
POST/api/continuity/intakePrimary universal intake endpoint.
POST/api/continuity/testCreate a test PENDING_REVIEW recommendation.
GET/api/projectsList all projects.
GET/api/projects/:idGet a single project.
POST/api/projectsSubmit a project (creates pending recommendation).
PATCH/api/projects/:idUpdate a project (creates pending recommendation).
GET/api/conversationsList all conversations.
POST/api/conversationsSubmit a conversation.
PATCH/api/conversations/:idUpdate a conversation.
GET/api/tasksList all tasks.
POST/api/tasksSubmit a task.
PATCH/api/tasks/:idUpdate a task.
GET/api/decisionsList all decisions.
POST/api/decisionsSubmit a decision.
PATCH/api/decisions/:idUpdate a decision.
POST/api/ideasSubmit an idea.
POST/api/assetsSubmit an asset.
GET/api/workstreamsList workstreams.
GET/api/recommendations/pendingList pending recommendations.
GET/api/search?q=Search across all records.

Required Headers

  • AuthorizationBearer token (required for all private endpoints)
  • Content-Typeapplication/json (for POST/PATCH)

Example Request

Primary universal intake endpoint.

bash
curl -X POST https://your-app.example.com/api/continuity/intake \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "provider": "chatgpt",
  "source": "ai_assistant",
  "integration_id": "int_chatgpt_01",
  "external_conversation_id": "conv_abc123",
  "conversation": {
    "title": "Pricing model options for the new tier",
    "recommended_title": "Pricing model options",
    "summary": "Discussed single vs three-tier pricing.",
    "date": "2026-09-10",
    "status": "PROPOSED"
  },
  "organization": {
    "primary_project": "Website Redesign",
    "workstream": "Pricing",
    "related_projects": ["Brand Strategy"],
    "brands": ["Acme"],
    "websites": ["acme.com"]
  },
  "decisions": [
    { "title": "Three-tier model proposed", "status": "PROPOSED" }
  ],
  "tasks": [
    { "title": "Cross-reference pricing conversation", "priority": "high", "status": "OPEN" }
  ],
  "ideas": [
    { "title": "Usage-based add-on tier" }
  ],
  "assets": [
    { "name": "Pricing deck (v3)", "type": "Document", "url": "https://acme.com/deck.pdf" }
  ],
  "recommendations": [
    { "action": "ASSIGN_TO_PROJECT", "reason": "New conversation with detected decisions.", "confidence": 0.82 }
  ]
}'

Example Response

json
{
  "ok": true,
  "status": "PENDING_REVIEW",
  "recommendation_id": "rec_a1b2c3d4",
  "duplicate_detected": false,
  "warnings": []
}

Continuity Intake Schema

Not every field is required. Validate before storing.

json
{
  "provider": "chatgpt | claude | gemini | microsoft_copilot | custom",
  "source": "string (optional)",
  "integration_id": "string (optional)",
  "external_conversation_id": "string (optional)",
  "conversation": {
    "title": "string",
    "recommended_title": "string (optional)",
    "summary": "string (optional)",
    "date": "string (optional)",
    "status": "string (optional)"
  },
  "organization": {
    "primary_project": "string (optional)",
    "workstream": "string (optional)",
    "related_projects": ["string"],
    "brands": ["string"],
    "websites": ["string"]
  },
  "decisions": [{ "title": "string", "description": "string", "status": "string" }],
  "tasks": [{ "title": "string", "description": "string", "priority": "string", "status": "string" }],
  "ideas": [{ "title": "string", "description": "string" }],
  "assets": [{ "name": "string", "type": "string", "url": "string" }],
  "recommendations": [{ "action": "string", "reason": "string", "confidence": "number 0-1" }],
  "relationships": [{ "from_type": "string", "from_id": "string", "to_type": "string", "to_id": "string" }]
}

HTTP Error Codes

200Success (read operations).
202Accepted — recommendation created as PENDING_REVIEW.
400Validation failed or malformed JSON.
401Unauthorized — missing or invalid bearer token.
404Resource not found.
429Rate limit exceeded. Retry after the indicated seconds.
500Server error during intake processing.
503Server API key not configured.

Safety Rule

External AI integrations may read organizational records, submit recommendations, and create pending records. They may not delete projects, conversations, decisions, or assets, change authentication, modify system configuration, or automatically approve their own recommendations. Permanent organizational changes require human approval.