Genius Decision App Agents API

The Agents API from Genius Decision App — 5 operation(s) for agents.

GitHub OpenAPI

Operations 7

GET /agents/manifest.json Read current policy, availability, endpoints and limits without authentication #
POST /api/agents/register Create an isolated machine space without human login #
POST /api/agents/demo Run a fixed synthetic example without a preexisting account or credential #
GET /api/agents/me Inspect own machine identity, token metadata and quotas #
DELETE /api/agents/me Delete the entire own machine/demo space and credentials #
POST /api/agents/token Replace current machine credential before expiry #
DELETE /api/agents/token Revoke only the current machine/demo credential #

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/geniusdecision-app:geniusdecision-app-agents-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

geniusdecision-app-agents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Genius Decision — agent integration Agents API
  version: 0.2.0
  description: 'Genius bounded beta: HTTP agent integration subset. Public discovery; no-human-registration synthetic demo; automatic machine registration for synthetic/non-personal data; separate existing human-account keys. Machine Bearer keys are scoped, revocable and expire after 7 days (demo: 1 hour). Rotation only retains/reduces scopes. Human keys retain full account permissions. No MCP or OAuth. HTTP acceptance is distinct from formal admission and empirical evidence. Body limit 128 KiB; input limit 110000 JSON bytes. Declared choice profile: /static/decisions.html; explicit review and confirmation required. No general narrative solver or real-world CAG/PVS claim.'
servers:
- url: /
security:
- AccountBearer: []
tags:
- name: Agents
paths:
  /agents/manifest.json:
    get:
      operationId: discoverDirectAgentAccess
      summary: Read current policy, availability, endpoints and limits without authentication
      security: []
      responses:
        '200':
          description: Discovery document; no account data.
          content:
            application/json:
              schema:
                type: object
        default:
          description: HTTP failure, not a motor result. 400 invalid policy/scopes/input; 401 missing/revoked/expired credential; 403 missing permission; 409 changed policy; 429 shared quota; 503 paused/backup/registration unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Agents
  /api/agents/register:
    post:
      operationId: registerGeniusAgent
      summary: Create an isolated machine space without human login
      description: 'Only synthetic or non-personal data. No email, password, adult confirmation or human consent fields. Response secret is shown once. Not idempotent; avoid blind retries after a lost response. Default scopes are cases:read, cases:write, jobs:run and account:delete. Twin access is opt-in via twins:read, twins:write, twins:evaluate and twins:delete. Twin REST contracts: https://github.com/pedrosalvadeo/genius-decision-open/blob/main/beta/docs/AGENT_TWIN.md. Read twin.available in the agent manifest before use.'
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentRegistration'
      responses:
        '201':
          description: Machine identity and scoped credential.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentBootstrap'
        default:
          description: HTTP failure, not a motor result. 400 invalid policy/scopes/input; 401 missing/revoked/expired credential; 403 missing permission; 409 changed policy; 429 shared quota; 503 paused/backup/registration unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Agents
  /api/agents/demo:
    post:
      operationId: tryGeniusDemo
      summary: Run a fixed synthetic example without a preexisting account or credential
      description: Real engine, temporary isolated space. Key permits cases:read and account:delete. No custom input, writes or renewal. Access expires in 1 hour, active data is removed by hourly cleanup subject to durable deletion recording; encrypted backups up to 7 days. Not idempotent.
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                example:
                  enum:
                  - hours-known
                  - hours-unknown
                  - fdq-frontier
                  - fdq-selector
              required:
              - example
              additionalProperties: false
      responses:
        '202':
          description: Job queued. Keep credential private; poll with Bearer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentDemo'
        default:
          description: HTTP failure, not a motor result. 400 invalid policy/scopes/input; 401 missing/revoked/expired credential; 403 missing permission; 409 changed policy; 429 shared quota; 503 paused/backup/registration unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Agents
  /api/agents/me:
    get:
      operationId: inspectGeniusAgent
      summary: Inspect own machine identity, token metadata and quotas
      responses:
        '200':
          description: No token secret returned.
          content:
            application/json:
              schema:
                type: object
                properties:
                  agent:
                    $ref: '#/components/schemas/AgentIdentity'
                  credential:
                    type: object
                    properties:
                      token_id:
                        type: string
                      scopes:
                        type: array
                        minItems: 1
                        maxItems: 9
                        uniqueItems: true
                        items:
                          enum:
                          - cases:read
                          - cases:write
                          - jobs:run
                          - cases:delete
                          - account:delete
                          - twins:read
                          - twins:write
                          - twins:evaluate
                          - twins:delete
                      expires_at:
                        type: integer
                    required:
                    - token_id
                    - scopes
                    - expires_at
                  limits:
                    type: object
                required:
                - agent
                - credential
                - limits
        default:
          description: HTTP failure, not a motor result. 400 invalid policy/scopes/input; 401 missing/revoked/expired credential; 403 missing permission; 409 changed policy; 429 shared quota; 503 paused/backup/registration unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Agents
    delete:
      operationId: deleteGeniusAgentSpace
      summary: Delete the entire own machine/demo space and credentials
      description: Destructive; requires explicit account:delete scope. Does not affect any other account.
      x-required-agent-scope: account:delete
      responses:
        '204':
          description: Deleted with durable privacy record.
        default:
          description: HTTP failure, not a motor result. 400 invalid policy/scopes/input; 401 missing/revoked/expired credential; 403 missing permission; 409 changed policy; 429 shared quota; 503 paused/backup/registration unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Agents
  /api/agents/token:
    post:
      operationId: rotateGeniusAgentCredential
      summary: Replace current machine credential before expiry
      description: 'Old token is revoked immediately. No scope escalation; omit scopes to retain. Demo credentials cannot rotate. A lost rotation response may lose access: no recovery or blind retry.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                scopes:
                  type: array
                  minItems: 1
                  maxItems: 9
                  uniqueItems: true
                  items:
                    enum:
                    - cases:read
                    - cases:write
                    - jobs:run
                    - cases:delete
                    - account:delete
                    - twins:read
                    - twins:write
                    - twins:evaluate
                    - twins:delete
              additionalProperties: false
      responses:
        '200':
          description: Replacement credential, valid 7 days.
          content:
            application/json:
              schema:
                type: object
                properties:
                  credential:
                    $ref: '#/components/schemas/AgentCredential'
                required:
                - credential
        default:
          description: HTTP failure, not a motor result. 400 invalid policy/scopes/input; 401 missing/revoked/expired credential; 403 missing permission; 409 changed policy; 429 shared quota; 503 paused/backup/registration unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Agents
    delete:
      operationId: revokeGeniusAgentCredential
      summary: Revoke only the current machine/demo credential
      description: Data remains until inactivity retention or prior explicit deletion. No automatic credential recovery.
      responses:
        '204':
          description: Revoked.
        default:
          description: HTTP failure, not a motor result. 400 invalid policy/scopes/input; 401 missing/revoked/expired credential; 403 missing permission; 409 changed policy; 429 shared quota; 503 paused/backup/registration unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Agents
components:
  schemas:
    AgentIdentity:
      type: object
      properties:
        id:
          type: string
        kind:
          enum:
          - agent
          - demo
        policy_version:
          type: string
        created_at:
          type: integer
        expires_at:
          type:
          - integer
          - 'null'
          description: Demo space expiry as Unix seconds; null for persistent spaces with inactivity retention.
      required:
      - id
      - kind
      - policy_version
      - expires_at
    AgentCredential:
      type: object
      properties:
        token:
          type: string
        token_type:
          const: Bearer
        token_id:
          type: string
        scopes:
          type: array
          minItems: 1
          maxItems: 9
          uniqueItems: true
          items:
            enum:
            - cases:read
            - cases:write
            - jobs:run
            - cases:delete
            - account:delete
            - twins:read
            - twins:write
            - twins:evaluate
            - twins:delete
        expires_at:
          type: integer
          description: Unix seconds. Token is issued only once; never log or put it in a chat, URL or case.
      required:
      - token
      - token_type
      - token_id
      - scopes
      - expires_at
    Job:
      type: object
      properties:
        id:
          type: string
        case_id:
          type: string
        revision:
          type: integer
        status:
          enum:
          - queued
          - running
          - completed
          - failed
          - cancelled
          - interrupted
        error:
          type:
          - string
          - 'null'
        created_at:
          type: integer
        started_at:
          type:
          - integer
          - 'null'
        finished_at:
          type:
          - integer
          - 'null'
        result:
          type:
          - object
          - 'null'
          description: Preserve the complete response envelope. See full documentation for RC01 semantics.
        result_json:
          type:
          - string
          - 'null'
          description: Original result JSON text; preserve exactly to avoid numeric rounding.
        admission:
          type:
          - object
          - 'null'
        artifacts:
          type:
          - object
          - 'null'
          properties:
            url:
              type: string
            sha256:
              type: string
            size:
              type: integer
      required:
      - id
      - case_id
      - revision
      - status
      - result
      - result_json
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
          required:
          - code
          - message
      required:
      - error
    AgentRegistration:
      type: object
      properties:
        policy_version:
          type: string
          description: Read the current value from /agents/manifest.json.
        data_policy_acknowledged:
          const: true
          description: 'Technical acknowledgment: synthetic/non-personal data only. Not human consent or permission for other people''s data.'
        scopes:
          type: array
          minItems: 1
          maxItems: 9
          uniqueItems: true
          items:
            enum:
            - cases:read
            - cases:write
            - jobs:run
            - cases:delete
            - account:delete
            - twins:read
            - twins:write
            - twins:evaluate
            - twins:delete
      required:
      - policy_version
      - data_policy_acknowledged
      additionalProperties: false
    AgentBootstrap:
      type: object
      properties:
        agent:
          $ref: '#/components/schemas/AgentIdentity'
        credential:
          $ref: '#/components/schemas/AgentCredential'
        limits:
          type: object
      required:
      - agent
      - credential
      - limits
    AgentDemo:
      allOf:
      - $ref: '#/components/schemas/AgentBootstrap'
      - type: object
        properties:
          job:
            $ref: '#/components/schemas/Job'
          poll_url:
            type: string
        required:
        - job
        - poll_url
  securitySchemes:
    AccountBearer:
      type: http
      scheme: bearer
      description: HTTPS Authorization Bearer only. ga_ machine credentials carry enforced scopes and expiry for their own isolated space. gb_ human-account API keys retain full-account access. Neither is a JWT. No key in a query string.
externalDocs:
  description: Full API contract and limitations
  url: https://geniusdecision.app/static/api.html
x-genius-mcp-available: true
x-genius-credential-scope:
  human: full-account
  automatic_agent: enforced-scopes-and-expiry
x-genius-client-safety:
  human_consent_never_inferred: true
  automatic_agent_data_policy: synthetic_or_non_personal_only
  synthetic_examples_are_not_empirical_evidence: true
  no_automatic_write_retries: true
x-genius-mcp:
  url: /mcp
  transport: streamable-http
  protocol_versions:
  - '2026-07-28'
  - '2025-11-25'
  - '2025-06-18'
  - '2025-03-26'
  public_tools:
  - get_capabilities
  - read_demo_result
  - run_demo
  private_authentication: scoped-machine-bearer-header
  oauth: false
x-genius-saved-demo:
  json: /static/demo-result.json
  html: /static/demo.html
  live_execution_on_get: false
  evidence_origin: synthetic