Amdahl Platform API API

REST API for Amdahl, an eval harness for GTM outputs. Three surfaces: **Evals** grades what your agents write against your own customer conversations, **Search** answers questions over the same corpus in one synchronous call, and **Agents** runs async investigations (multi-turn Chat).

Operations 37

POST /api/platform/v1/agents/{session_id}/resume Resume Agent Session #
POST /api/platform/v1/agents/{session_id}/cancel Cancel Agent Session #
GET /api/platform/v1/connections/catalog List Connector Catalog #
GET /api/platform/v1/connections List Established Connections #
POST /api/platform/v1/connections Connect an Integration #
GET /api/platform/v1/connections/{id} Get Connection By Id #
DELETE /api/platform/v1/connections/{id} Disconnect an Integration #
PATCH /api/platform/v1/connections/{id} Update a Connection #
GET /api/platform/v1/connections/{id}/status Get Connection Sync State #
GET /api/platform/v1/connections/{id}/runs List Connection Sync Runs #
GET /api/platform/v1/connections/{id}/summary Get Connection Data Summary #
POST /api/platform/v1/connections/{id}/reconnect Reconnect an Integration #
PATCH /api/platform/v1/connections/{id}/call-filters Set Call Filters #
PATCH /api/platform/v1/connections/{id}/crm-recency Set CRM Recency Window #
PATCH /api/platform/v1/connections/{id}/comms-filter Set CRM Comms Filter #
POST /api/platform/v1/chat Chat #
GET /api/platform/v1/chats List Chats #
GET /api/platform/v1/chats/{id} Get Chat #
PATCH /api/platform/v1/chats/{id} Rename Chat #
GET /api/platform/v1/chats/{id}/runs/{run_id} Get Chat Run #
GET /api/platform/v1/chat/preferences Get Chat Preferences #
PATCH /api/platform/v1/chat/preferences Update Chat Preferences #
POST /api/platform/v1/search/query Routed Warehouse Search #
GET /api/platform/v1/search/fields Search Filter Fields #
GET /api/platform/v1/search/overview Workspace Data Overview #
POST /api/platform/v1/messages/optimize Optimize Outbound Message #
POST /api/platform/v1/messages/optimize/batch Optimize Outbound Messages In A Batch #
GET /api/platform/v1/messages/optimize/batches/{id} Get Optimize Batch #
GET /api/platform/v1/messages/optimize/runs/{id} Get Optimize Run #
POST /api/platform/v1/messages/optimize/runs/{id}/feedback Record Message Feedback #
POST /api/platform/v1/messages/optimize_prompt Grade Or Improve A Prompt #
GET /api/platform/v1/messages/optimize_prompt/{id} Get Prompt Run #
POST /api/platform/v1/research Start Research #
GET /api/platform/v1/research/{id} Get Research #
POST /api/platform/v1/research/{research_id}/respond Answer Research Question #
POST /api/platform/v1/research/{research_id}/cancel Cancel Research #
GET /api/platform/v1/setup/status Setup Status #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/amdahl-ai:amdahl-platform-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

amdahl-ai-api-openapi.json Raw ↑
{
  "openapi": "3.1.0",
  "info": {
    "title": "Amdahl Platform API",
    "version": "1.0.0",
    "description": "REST API for Amdahl, an eval harness for GTM outputs. Three surfaces: **Evals** grades what your agents write against your own customer conversations, **Search** answers questions over the same corpus in one synchronous call, and **Agents** runs async investigations (multi-turn Chat)."
  },
  "servers": [
    {
      "url": "/"
    }
  ],
  "security": [
    {
      "ApiKeyAuth": []
    },
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "assets",
      "description": "Artifacts - unified output storage with version history and hierarchy."
    },
    {
      "name": "context",
      "description": "Business context, substrate intelligence, remembered evidence, and Q&A."
    },
    {
      "name": "conversations",
      "description": ""
    },
    {
      "name": "data",
      "description": "Data exploration - SQL queries, hybrid search, and ML clusters."
    },
    {
      "name": "workflows",
      "description": "Workflow orchestration endpoints."
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "Platform API key (amdhl_...). Scopes are enforced per operation. The same key is also accepted as `Authorization: Bearer <key>` — one key works on both transports."
      },
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Bearer credential: an API key (amdhl_-prefixed values are validated as API keys), an OAuth access token, or a Supabase JWT. Role + scope enforcement applies."
      },
      "OAuth2": {
        "type": "oauth2",
        "description": "OAuth2 authorization code flow with scope granularity.",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "/oauth/authorize",
            "tokenUrl": "/oauth/token",
            "scopes": {
              "connections:delete": "Disconnect connections",
              "connections:read": "Read connections and the connector catalog",
              "connections:write": "Connect, reconnect, and configure connections",
              "conversations:read": "Read chats and their runs",
              "conversations:write": "Start, rename, and configure chats",
              "data:read": "Query and search data sources",
              "messages:execute": "Run the message optimizer on a draft message",
              "workflows:write": "Resume and cancel agent runs"
            }
          }
        }
      }
    },
    "schemas": {},
    "parameters": {}
  },
  "paths": {
    "/api/platform/v1/agents/{session_id}/resume": {
      "post": {
        "operationId": "agentsResume",
        "summary": "Resume Agent Session",
        "description": "Resume an agent run that is paused on pending user input. Use when replying to an outline approval prompt, a clarification question, or a continue/finish decision. The input payload must match the run's `pending_input_schema`. After a successful resume the run transitions back to running and proceeds from where it paused.",
        "tags": [
          "workflows"
        ],
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input - failed schema validation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - missing scope or role",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": [
              "workflows:write"
            ]
          },
          {
            "BearerAuth": [
              "workflows:write"
            ]
          }
        ],
        "x-scopes": [
          "workflows:write"
        ],
        "x-stability": "stable",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "input": {
                    "type": "object",
                    "description": "The user's resume payload. Must match the run's persisted pending_input_schema.",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "input"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/platform/v1/agents/{session_id}/cancel": {
      "post": {
        "operationId": "agentsCancel",
        "summary": "Cancel Agent Session",
        "description": "Cancel an in-flight agent run. Use when the user wants to stop a running agent before it finishes, or abandon a run that has gone sideways. Cascades to any sub-agents spawned from this run via agents.delegate — every live descendant is cancelled atomically. The runner bails at the next iteration boundary after observing the status change. Already-completed runs cannot be canceled. Pass a reason to record WHY the run was aborted in the audit trail.",
        "tags": [
          "workflows"
        ],
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input - failed schema validation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - missing scope or role",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": [
              "workflows:write"
            ]
          },
          {
            "BearerAuth": [
              "workflows:write"
            ]
          }
        ],
        "x-scopes": [
          "workflows:write"
        ],
        "x-stability": "stable",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "maxLength": 500,
                    "description": "Optional operator note describing why the run was canceled."
                  }
                },
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/api/platform/v1/connections/catalog": {
      "get": {
        "operationId": "connectionsListCatalog",
        "summary": "List Connector Catalog",
        "description": "Read the catalog of integrations a workspace can hook up - CRM, calls, comms, docs, support, social, and actions (outbound) - with each entry's connect flow, ownership, and the data streams it brings in. Read when rendering the \"add a connection\" picker or answering which providers are supported. Describes what CAN be connected, not what is already connected. Optional kind / category filters narrow the menu.",
        "tags": [
          "data"
        ],
        "parameters": [
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "description": "Filter to one ingestion stack. first_party (amdahl-data pullers) is the only stack today; use category=social to filter the social UI grouping.",
            "schema": {
              "type": "string",
              "enum": [
                "first_party"
              ],
              "description": "Filter to one ingestion stack. first_party (amdahl-data pullers) is the only stack today; use category=social to filter the social UI grouping."
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "Filter to one UI category.",
            "schema": {
              "type": "string",
              "enum": [
                "crm",
                "calls",
                "comms",
                "docs",
                "support",
                "social",
                "actions"
              ],
              "description": "Filter to one UI category."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input - failed schema validation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - missing scope or role",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": [
              "connections:read"
            ]
          },
          {
            "BearerAuth": [
              "connections:read"
            ]
          }
        ],
        "x-scopes": [
          "connections:read"
        ],
        "x-stability": "stable"
      }
    },
    "/api/platform/v1/connections": {
      "get": {
        "operationId": "connectionsList",
        "summary": "List Established Connections",
        "description": "Read the integrations a workspace has actually established, newest first, merging first-party data sources and tracked social accounts into one normalized list with a uniform status, scope, and last-synced field. Read when rendering the connections inventory or answering which integrations are live for the tenant. Defaults to ACTIVE connections; pass include_inactive=true to also return disconnected and never-synced sources.",
        "tags": [
          "data"
        ],
        "parameters": [
          {
            "name": "include_inactive",
            "in": "query",
            "required": false,
            "description": "Include disconnected and never-synced (abandoned / in-flight) connections. Defaults to false, which returns only active connections (connected/syncing or ever-synced).",
            "schema": {
              "type": "boolean",
              "description": "Include disconnected and never-synced (abandoned / in-flight) connections. Defaults to false, which returns only active connections (connected/syncing or ever-synced)."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input - failed schema validation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - missing scope or role",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": [
              "connections:read"
            ]
          },
          {
            "BearerAuth": [
              "connections:read"
            ]
          }
        ],
        "x-scopes": [
          "connections:read"
        ],
        "x-stability": "stable"
      },
      "post": {
        "operationId": "connectionsConnect",
        "summary": "Connect an Integration",
        "description": "Establish a new integration for a workspace, routing on the connector type: collect an API key, kick off an OAuth redirect, or track a social handle. Use when a user picks a provider from the catalog and wants it connected. Returns the created connection, or an OAuth authorize URL to redirect to. Creates and stores the connection without starting a sync.",
        "tags": [
          "data"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input - failed schema validation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "details": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "co

# --- truncated at 32 KB (346 KB total) ---
# Full source: https://artifacts.apis.io/amdahl-ai/openapi/_original/amdahl-ai-api-openapi.json