DataGrout API

DataGrout API as documented publicly: 21 operations. Contract generated from the documentation by API Evangelist (2026-11-05); not the provider's own document.

Operations 21

POST /answers Ask a question in plain language. #
GET /api/v1/servers/{uuid} GET /api/v1/servers/{uuid} #
POST /api/v1/servers/{uuid}/answers POST /api/v1/servers/{uuid}/answers #
POST /api/v1/servers/{uuid}/conclusions POST /api/v1/servers/{uuid}/conclusions #
POST /api/v1/servers/{uuid}/memories/warehouses/facts POST /api/v1/servers/{uuid}/memories/warehouses/facts #
POST /api/v1/servers/{uuid}/transforms POST /api/v1/servers/{uuid}/transforms #
POST /api/v1/servers/{uuid}/webhooks POST /api/v1/servers/{uuid}/webhooks #
POST /api/v1/servers/{uuid}/webhooks/{webhookid}/test POST /api/v1/servers/{uuid}/webhooks/{webhookId}/test #
GET /ca.pem Signature Verification – CTC signatures can be verified by anyone with the DG CA public key, which is served at GET /ca.pem. #
POST /conclusions Typed questions answered by rules over the facts you send. #
GET /install.sh GET /install.sh #
GET /mcp GET /mcp #
POST /memories/{name}/facts Store facts #
POST /memories/{name}/recall Recall #
POST /oauth/token POST /oauth/token #
GET /server GET / reads and costs nothing, which makes it the right check for whether a credential works. #
POST /skills/{skillId}/runs Run previously verified work again, with no planning. #
GET /tasks/{taskId} Background work task status and result. #
POST /transforms Reshape or aggregate data on DataGrout’s servers. #
GET /webhook GET /webhook #
POST /webhooks Register a URL to receive webhook events. #

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/datagrout-ai:datagrout-ai-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

datagrout-ai-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: DataGrout API
  version: '2026-11-05'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-05: 21 operation(s) read from 11 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; DataGrout has published no machine-readable contract
    that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 14
    documentation: 7
    pages-with-code: 9
    pages-read: 11
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-05'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://docs.datagrout.ai/rest-api
  - https://docs.datagrout.ai/webhooks
  - https://docs.datagrout.ai/quick-start
  - https://library.datagrout.ai/quick-start
  - https://docs.datagrout.ai/policy-security
  - https://docs.datagrout.ai/cognitive-trust-certificates
  - https://docs.datagrout.ai/authentication
  - https://docs.datagrout.ai/jsonrpc
  - https://docs.datagrout.ai/interaction-settings
  - https://docs.datagrout.ai/sap-private-connector
  - https://docs.datagrout.ai/mcp-inspector
servers:
- url: https://gateway.datagrout.ai
paths:
  /answers:
    post:
      operationId: post_answers
      tags:
      - Answers
      summary: Ask a question in plain language.
      description: Plans and runs work against connected systems, returning an answer and verification status.
      x-source: https://docs.datagrout.ai/rest-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAnswersRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAnswersResponse'
      x-evidence:
        kind: documentation
  /api/v1/servers/{uuid}:
    get:
      operationId: get_api_v1_servers_uuid
      tags:
      - Api
      summary: GET /api/v1/servers/{uuid}
      x-source: https://docs.datagrout.ai/rest-api
      parameters:
      - name: uuid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1ServersUuidResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://gateway.datagrout.ai/api/v1/servers/YOUR_UUID  -H \"Authorization: Bearer YOUR_TOKEN\"\n { \"id\": \"YOUR_UUID\"\
          , \"name\": \"Sales data\" }\n GET / reads and costs nothing, which makes it the right check for whether a credential works. \n Answers\
          \ \n POST /answers\n Ask a question in plain language. DataGrout plans the work, runs it against your connected systems, then checks\
          \ the result against the "
  /api/v1/servers/{uuid}/answers:
    post:
      operationId: post_api_v1_servers_uuid_answers
      tags:
      - Api
      summary: POST /api/v1/servers/{uuid}/answers
      x-source: https://docs.datagrout.ai/rest-api
      parameters:
      - name: uuid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ServersUuidAnswersRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1ServersUuidAnswersResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://gateway.datagrout.ai/api/v1/servers/YOUR_UUID/answers  -H \"Authorization: Bearer YOUR_TOKEN\"  -H \"Content-Type:\
          \ application/json\"  -d '{\"question\": \"Total open opportunity value by region this quarter\"}'\n {\n \"answer\": [\n { \"region\"\
          : \"North\", \"total\": 184000 },\n { \"region\": \"South\", \"total\": 92500 }\n ],\n \"verified\": true,\n \"certificate\": { \"id\"\
          : \"ctc_...\", \"url\": \"https://ctc.d"
  /api/v1/servers/{uuid}/conclusions:
    post:
      operationId: post_api_v1_servers_uuid_conclusions
      tags:
      - Api
      summary: POST /api/v1/servers/{uuid}/conclusions
      x-source: https://docs.datagrout.ai/rest-api
      parameters:
      - name: uuid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ServersUuidConclusionsRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1ServersUuidConclusionsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://gateway.datagrout.ai/api/v1/servers/YOUR_UUID/conclusions  -H \"Authorization: Bearer YOUR_TOKEN\"  -H\
          \ \"Content-Type: application/json\"  -d '{\n \"require\": [\"invoice-rules\"],\n \"records\": {\n \"invoice\": [{\"id\": \"inv_42\"\
          , \"amount\": 1200, \"due_absolute_days\": 20522}],\n \"today\": {\"absolute_days\": 20590}\n },\n \"questions\": {\n \"fee\": {\"goal\"\
          : \"late_fee(inv_42, Fee)\"},\n \"level\": {\"goal\": "
  /api/v1/servers/{uuid}/memories/warehouses/facts:
    post:
      operationId: post_api_v1_servers_uuid_memories_warehouses_facts
      tags:
      - Api
      summary: POST /api/v1/servers/{uuid}/memories/warehouses/facts
      x-source: https://docs.datagrout.ai/rest-api
      parameters:
      - name: uuid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ServersUuidMemoriesWarehousesFactsRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1ServersUuidMemoriesWarehousesFactsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://gateway.datagrout.ai/api/v1/servers/YOUR_UUID/memories/warehouses/facts  -H \"Authorization: Bearer YOUR_TOKEN\"\
          \  -H \"Content-Type: application/json\"  -d '{\"statement\": \"Warehouse North stocks 40 pallets of item A.\"}'\n Returns 201 Created\
          \ : \n {\n \"stored\": 3,\n \"facts\": [\n { \"id\": \"f1a2b3c4d5e6\", \"name\": \"Warehouse North\", \"type\": \"entity\" }\n ],\n\
          \ \"message\": \"Remembered 3 facts.\"\n}"
  /api/v1/servers/{uuid}/transforms:
    post:
      operationId: post_api_v1_servers_uuid_transforms
      tags:
      - Api
      summary: POST /api/v1/servers/{uuid}/transforms
      x-source: https://docs.datagrout.ai/rest-api
      parameters:
      - name: uuid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ServersUuidTransformsRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1ServersUuidTransformsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://gateway.datagrout.ai/api/v1/servers/YOUR_UUID/transforms  -H \"Authorization: Bearer YOUR_TOKEN\"  -H \"\
          Content-Type: application/json\"  -d '{\"goal\": \"total units by city\", \"data\": [{\"city\": \"Lisbon\", \"units\": 31}, {\"city\"\
          : \"Porto\", \"units\": 12}, {\"city\": \"Lisbon\", \"units\": 7}]}'\n {\n \"result\": [\n { \"city\": \"Lisbon\", \"sum_units\": 38\
          \ },\n { \"city\": \"Porto\", \"sum_units\": 12 }\n ],\n \"c"
  /api/v1/servers/{uuid}/webhooks:
    post:
      operationId: post_api_v1_servers_uuid_webhooks
      tags:
      - Api
      summary: POST /api/v1/servers/{uuid}/webhooks
      x-source: https://docs.datagrout.ai/webhooks
      parameters:
      - name: uuid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ServersUuidWebhooksRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://gateway.datagrout.ai/api/v1/servers/YOUR_UUID/webhooks  -H \"Authorization: Bearer YOUR_TOKEN\"  -H \"\
          Content-Type: application/json\"  -d '{\"url\": \"https://hooks.example.com/datagrout\", \"events\": [\"run.completed\", \"task.failed\"\
          ]}'\n Field \n Required \n Meaning \n url \n yes \n Where to POST events. Must be https , and must not name a private, loopback or link-local\
          \ address. \n events \n"
  /api/v1/servers/{uuid}/webhooks/{webhookid}/test:
    post:
      operationId: post_api_v1_servers_uuid_webhooks_webhookid_test
      tags:
      - Api
      summary: POST /api/v1/servers/{uuid}/webhooks/{webhookId}/test
      x-source: https://docs.datagrout.ai/webhooks
      parameters:
      - name: uuid
        in: path
        required: true
        schema:
          type: string
      - name: webhookid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ServersUuidWebhooksWebhookidTestRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://gateway.datagrout.ai/api/v1/servers/YOUR_UUID/webhooks/WEBHOOK_ID/test  -H \"Authorization: Bearer YOUR_TOKEN\"\
          \  -H \"Content-Type: application/json\"  -d '{\"event\": \"run.completed\"}'\n Sends one delivery of event to the webhook’s URL right\
          \ away, exactly as a real one is sent, with placeholder values in data ( run_id is 0 , ids end in _sample ). event defaults to the first\
          \ event th"
  /ca.pem:
    get:
      operationId: get_ca_pem
      tags:
      - Ca
      summary: Signature Verification – CTC signatures can be verified by anyone with the DG CA public key, which is served at GET /ca.pem.
      x-source: https://docs.datagrout.ai/policy-security
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /conclusions:
    post:
      operationId: post_conclusions
      tags:
      - Conclusions
      summary: Typed questions answered by rules over the facts you send.
      description: Runs rule‑based logic batteries against supplied facts and returns proven, refuted or unknown answers.
      x-source: https://docs.datagrout.ai/rest-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostConclusionsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostConclusionsResponse'
      x-evidence:
        kind: documentation
  /install.sh:
    get:
      operationId: get_install_sh
      tags:
      - Install
      summary: GET /install.sh
      x-source: https://docs.datagrout.ai/sap-private-connector
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -fsSL https://get.netbird.io/install.sh | sh\nnetbird up\n Create a setup key in the NetBird dashboard for the DataGrout\
          \ relay. \n Step 2: Generate a VPN Client Profile \n Create credentials that the DataGrout relay will use to connect. \n WireGuard \n\
          \ wg genkey | tee client-private.key | wg pubkey > client-public.key\n Add the client as a peer on your server, then create a client\
          \ config: \n [Interfa"
  /mcp:
    get:
      operationId: get_mcp
      tags:
      - Mcp
      summary: GET /mcp
      x-source: https://docs.datagrout.ai/mcp-inspector
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl buttons. \n A connection status badge shows whether the session is initialized. A rate limit indicator shows remaining\
          \ calls per hour. \n Getting Started \n Test a DataGrout Server \n Open the MCP Inspector \n Click Your Servers in Quick Start and select\
          \ a server \n The URL and authentication fill automatically \n Click Execute Request with the Initialize action selected \n Once initialized,\
          \ switch t"
  /memories/{name}/facts:
    post:
      operationId: post_memories_name_facts
      tags:
      - Memories
      summary: Store facts
      description: Adds plain‑language facts to a named memory.
      x-source: https://docs.datagrout.ai/rest-api
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostMemoriesNameFactsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostMemoriesNameFactsResponse'
      x-evidence:
        kind: documentation
  /memories/{name}/recall:
    post:
      operationId: post_memories_name_recall
      tags:
      - Memories
      summary: Recall
      description: Queries a memory for facts matching the question.
      x-source: https://docs.datagrout.ai/rest-api
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostMemoriesNameRecallRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostMemoriesNameRecallResponse'
      x-evidence:
        kind: documentation
  /oauth/token:
    post:
      operationId: post_oauth_token
      tags:
      - Oauth
      summary: POST /oauth/token
      x-source: https://docs.datagrout.ai/authentication
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://gateway.datagrout.ai/oauth/token  -H \"Content-Type: application/x-www-form-urlencoded\"  -d \"grant_type=client_credentials\"\
          \  -d \"client_id=YOUR_CLIENT_ID\"  -d \"client_secret=YOUR_CLIENT_SECRET\"\n Use the returned access token as a bearer token. Tokens\
          \ are short-lived and must be refreshed. \n Authorization Code Flow \n Redirect the user to the DataGrout authorization endpoint \n\
          \ Us"
  /server:
    get:
      operationId: get_server
      tags:
      - Server
      summary: GET / reads and costs nothing, which makes it the right check for whether a credential works.
      description: Returns basic information about the server to verify that the access token is valid.
      x-source: https://docs.datagrout.ai/rest-api
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetServerResponse'
      x-evidence:
        kind: documentation
  /skills/{skillId}/runs:
    post:
      operationId: post_skills_skillId_runs
      tags:
      - Skills
      summary: Run previously verified work again, with no planning.
      description: Executes a saved skill (verified work) without replanning.
      x-source: https://docs.datagrout.ai/rest-api
      parameters:
      - name: skillId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSkillsSkillidRunsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSkillsSkillidRunsResponse'
      x-evidence:
        kind: documentation
  /tasks/{taskId}:
    get:
      operationId: get_tasks_taskId
      tags:
      - Tasks
      summary: Background work task status and result.
      description: Polls a background task for its current status and final result.
      x-source: https://docs.datagrout.ai/rest-api
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTasksTaskidResponse'
      x-evidence:
        kind: documentation
  /transforms:
    post:
      operationId: post_transforms
      tags:
      - Transforms
      summary: Reshape or aggregate data on DataGrout’s servers.
      description: Accepts inline data or a reference and returns the transformed result.
      x-source: https://docs.datagrout.ai/rest-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTransformsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTransformsResponse'
      x-evidence:
        kind: documentation
  /webhook:
    get:
      operationId: get_webhook
      tags:
      - Webhook
      summary: GET /webhook
      x-source: https://docs.datagrout.ai/interaction-settings
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl testing. \n Webhooks \n Receive real-time notifications when events occur on your server: \n Toggle Enable Webhook \n Enter\
          \ your Webhook URL (e.g. https://your-server.com/webhook ) \n Enter a Secret for signature verification \n Select which events trigger\
          \ notifications:\n Tool Created / Tool Updated \n Tool Call Completed / Succeeded / Failed \n Integration Added / Removed \n Response\
          \ Payload \n Contro"
  /webhooks:
    post:
      operationId: post_webhooks
      tags:
      - Webhooks
      summary: Register a URL to receive webhook events.
      description: Creates a webhook subscription for run and task events.
      x-source: https://docs.datagrout.ai/rest-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostWebhooksRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
components:
  schemas:
    PostAnswersRequest:
      type: object
      properties:
        question:
          type: string
          description: The question
        inputs:
          type: object
          description: Values the question needs, as an object
      required:
      - question
    PostAnswersResponse:
      type: object
      properties:
        answer:
          type: array
          description: Array of answer objects
        verified:
          type: boolean
          description: True when DataGrout’s verifier accepted the answer
        certificate:
          type: object
          description: Certificate of execution
        skill_id:
          type: string
          description: ID of the saved skill
        skill_expires:
          type: boolean
          description: Whether the skill ID is temporary
        execution_id:
          type: string
          description: Execution identifier
        reference:
          type: string
          description: Reference ID for later use
        usage:
          type: object
          description: Credits usage details
    GetApiV1ServersUuidResponse:
      type: object
      properties:
        stored:
          type: integer
        facts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              type:
                type: string
        message:
          type: string
    PostApiV1ServersUuidAnswersRequest:
      type: object
      properties:
        question:
          type: string
    PostApiV1ServersUuidAnswersResponse:
      type: object
      properties:
        stored:
          type: integer
        facts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              type:
                type: string
        message:
          type: string
    PostApiV1ServersUuidConclusionsRequest:
      type: object
      properties:
        require:
          type: array
          items:
            type: string
        records:
          type: object
          properties:
            invoice:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                  amount:
                    type: integer
                  due_absolute_days:
                    type: integer
            today:
              type: object
              properties:
                absolute_days:
                  type: integer
        questions:
          type: object
          properties:
            fee:
              type: object
              properties:
                goal:
                  type: string
            level:
              type: object
              properties:
                goal:
                  type: string
                type:
                  type: string
                criteria:
                  type: array
                  items:
                    type: string
    PostApiV1ServersUuidConclusionsResponse:
      type: object
      properties:
        result:
          type: array
          items: {}
        certificate:
          type: object
          properties:
            id:
              type: string
            url:
              type: string
        execution_id:
          type: string
        usage:
          type: object
          properties:
            credits_charged:
              type: integer
            credits_remaining:
              type: integer
    PostApiV1ServersUuidMemoriesWarehousesFactsRequest:
      type: object
      properties:
        statement:
          type: string
    PostApiV1ServersUuidMemoriesWarehousesFactsResponse:
      type: object
      properties:
        stored:
          type: integer
        facts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              type:
                type: string
        message:
          type: string
    PostApiV1ServersUuidTransformsRequest:
      type: object
      properties:
        goal:
          type: string
        data:
          type: array
          items:
            type: object
            properties:
              city:
                type: string
              units:
                type: integer
    PostApiV1ServersUuidTransformsResponse:
      type: object
      properties:
        stored:
          type: integer
        facts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              type:
                type: string
        message:
          type: string
    PostApiV1ServersUuidWebhooksRequest:
      type: object
      properties:
        url:
          type: string
        events:
          type: array
          items:
            type: string
    PostApiV1ServersUuidWebhooksWebhookidTestRequest:
      type: object
      properties:
        event:
          type: string
    PostConclusionsRequest:
      type: object
      properties:
        questions:
          type: object
          description: Keyed questions with goals or plain language
        require:
          type: array
          description: Battery ids to use
        records:
          type: object
          description: Facts as records shaped by the battery’s input schema
        facts:
          type: array
          description: Typed facts
        reference:
          type: string
          description: Reference to earlier response
        rules:
          type: array
          description: Prolog clauses for this request only
        namespace:
          type: string
          description: Memory to draw conclusions from
        explain:
          type: boolean
          description: Add base facts each answer rests on
      required:
      - questions
    PostConclusionsResponse:
      type: object
      properties:
        answers:
          type: object
          description: Map of question keys to answer objects
        mode:
          type: string
          description: Execution mode (e.g., scratch)
        input:
          type: object
          description: Counts of input facts
        usage:
          type: object
          description: Credits usage details
    PostMemoriesNameFactsRequest:
      type: object
      properties:
        statement:
          type: string
          description: Facts in plain language
      required:
      - statement
    PostMemoriesNameFactsResponse:
      type: object
      properties:
        stored:
          type: integer
          description: Number of facts stored
        facts:
          type: array
          description: Array of stored fact descriptors
        message:
          type: string
          description: Result message
    PostMemoriesNameRecallRequest:
      type: object
      properties:
        question:
          type: string
          description: What to look up
      required:
      - question
    PostMemoriesNameRecallResponse:
      type: object
      properties:
        results:
          type: array
          description: Aggregated results
        total:
          type: integer
          description: Total matching facts
        has_more:
          type: boolean
          description: Whether more results exist
        interpretation:
          type: string
          description: How DataGrout read the question
        message:
          type: string
          description: Result message
    GetServerResponse:
      type: object
      properties:
        id:
          type: string
          description: Server UUID
        name:
          type: string
          description: Server name
    PostSkillsSkillidRunsRequest:
      type: object
      properties:
        inputs:
          type: object
          description: Values the skill takes
    PostSkillsSkillidRunsResponse:
      type: object
      properties:
        result:
          type: array
          description: Result of the skill run
        certificate:
          type: object
          description: Certificate of execution
        execution_id:
          type: string
          description: Execution identifier
        usage:
          type: object
          description: Credits usage details
    GetTasksTaskidResponse:
      type: object
      properties:
        id:
          type: string
          description: Task ID
        status:
          type: string
          description: Task status (running, completed, failed, cancelled)
        result:
          type: object
          description: Result payload (same shape as direct request response)
        created_at:
          type: string
          description: Creation timestamp
        updated_at:
          type: string
          description: Last update timestamp
    PostTransformsRequest:
      type: object
      properties:
        goal:
          type: string
          description: What the result should be
        data:
          type: array
          description: The data, as an array or object
        reference:
          type: string
          description: A reference from an earlier response
      required:
      - goal
    PostTransformsResponse:
      type: object
      properties:
        result:
          type: array
          description: Transformed data
        certificate:
          type: object
          description: Certificate of execution
        execution_id:
          type: string
          description: Execution identifier
        reference:
          type: string
          description: Reference ID for later use
        usage:
          type: object
          description: Credits usage details
    PostWebhooksRequest:
      type: object
      properties:
        url:
          type: string
          description: Callback URL to receive events
      required:
      - url
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Answers
- name: Api
- name: Ca
- name: Conclusions
- name: Install
- name: Mcp
- name: Memories
- name: Oauth
- name: Server
- name: Skills
- name: Tasks
- name: Transforms
- name: Webhook
- name: Webhooks