OYA AI Inc. API

OYA AI Inc. API as documented publicly: 26 operations. Contract generated from the documentation by API Evangelist (2026-11-10); not the provider's own document.

GitHub OpenAPI

Operations 26

GET /api/agency/customers Account CLI Manage customer sub-accounts from your terminal. #
POST /api/agency/customers Account CLI Manage customer sub-accounts from your terminal. #
GET /api/agents list user's agents #
GET /api/agents/deleted The Deleted tab is backed by GET /api/agents/deleted #
GET /api/agents/{id}/config full config (soul, skills, etc.) #
POST /api/agents/{id}/deploy compile system prompt + index KB + mark deployed #
POST /api/agents/{id}/restore Restoring clears the deletion, brings the OAgent back online, and returns it to your main list #
POST /api/agents/{id}/routines create a routine #
GET /api/agents/{id}/runs recent runs (max 200, includes `job_id`) #
GET /api/agents/{id}/skills skills attached to an agent #
PUT /api/agents/{id}/skills/sync replace skill set (idempotent) #
PUT /api/agents/{id}/soul update persona / rules / welcome / mission #
GET /api/gateways/{platform}/install-url start OAuth or list existing connections #
POST /api/knowledge-base/agents/{id}/knowledge/assign assign a KB entry to an agent #
POST /api/knowledge-base/folders/{folderId}/upload upload a KB file #
GET /api/me Account CLI Manage customer sub-accounts from your terminal. #
GET /api/runs/{jobId} Hit GET /api/runs/{job_id} to check status. #
GET /api/skills skill catalog #
POST /api/skills/import-folder upload a custom skill (multipart) #
GET /api/skills/{id}/export download a skill (zip) #
GET /api/templates list templates #
POST /api/templates Creating a template ( POST /api/templates , or “Save as template” on an agent card) is open to every account , and each one is private to the account that owns it. #
GET /api/templates/{id} full template payload #
POST /api/triggers/{id}/webhook POST /api/triggers/{id}/webhook #
POST /api/v1/chat/completions POST /api/v1/chat/completions #
GET /v1/chat/completions OpenAI-compatible chat (per agent, via API key) #

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/getoya-ai:getoya-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

getoya-ai-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: OYA AI Inc. API
  version: '2026-11-10'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-10: 26 operation(s) read from 13 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; OYA AI Inc. has published no machine-readable contract
    that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 4
    documentation: 22
    pages-with-code: 6
    pages-read: 13
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-10'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://getoya.ai/llms-full.txt
  - https://dev.getoya.ai/integrations/webhook
  - https://getoya.ai/docs/developers/api-keys
  - https://getoya.ai/docs/developers/triggers
  - https://getoya.ai/docs/partners/account-cli
  - https://dev.getoya.ai/docs/developers/api-keys
  - https://dev.getoya.ai/docs/partners/account-cli
  - https://getoya.ai/docs/developers/github
  - https://dev.getoya.ai/docs/developers/github
  - https://dev.getoya.ai/docs/developers/triggers
  - https://getoya.ai/docs/partners/template-authoring
  - https://dev.getoya.ai/docs/partners/template-authoring
  - https://getoya.ai/docs/product/agents
paths:
  /api/agency/customers:
    get:
      operationId: get_api_agency_customers
      tags:
      - Api
      summary: Account CLI Manage customer sub-accounts from your terminal.
      x-source: https://getoya.ai/docs/partners/account-cli
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_agency_customers
      tags:
      - Api
      summary: Account CLI Manage customer sub-accounts from your terminal.
      x-source: https://getoya.ai/docs/partners/account-cli
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiAgencyCustomersRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/agents:
    get:
      operationId: get_api_agents
      tags:
      - Api
      summary: list user's agents
      x-source: https://getoya.ai/llms-full.txt
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/agents/deleted:
    get:
      operationId: get_api_agents_deleted
      tags:
      - Api
      summary: The Deleted tab is backed by GET /api/agents/deleted
      x-source: https://getoya.ai/docs/product/agents
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/agents/{id}/config:
    get:
      operationId: get_api_agents_id_config
      tags:
      - Api
      summary: full config (soul, skills, etc.)
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/agents/{id}/deploy:
    post:
      operationId: post_api_agents_id_deploy
      tags:
      - Api
      summary: compile system prompt + index KB + mark deployed
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/agents/{id}/restore:
    post:
      operationId: post_api_agents_id_restore
      tags:
      - Api
      summary: Restoring clears the deletion, brings the OAgent back online, and returns it to your main list
      x-source: https://getoya.ai/docs/product/agents
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/agents/{id}/routines:
    post:
      operationId: post_api_agents_id_routines
      tags:
      - Api
      summary: create a routine
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/agents/{id}/runs:
    get:
      operationId: get_api_agents_id_runs
      tags:
      - Api
      summary: recent runs (max 200, includes `job_id`)
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/agents/{id}/skills:
    get:
      operationId: get_api_agents_id_skills
      tags:
      - Api
      summary: skills attached to an agent
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/agents/{id}/skills/sync:
    put:
      operationId: put_api_agents_id_skills_sync
      tags:
      - Api
      summary: replace skill set (idempotent)
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutApiAgentsIdSkillsSyncRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/agents/{id}/soul:
    put:
      operationId: put_api_agents_id_soul
      tags:
      - Api
      summary: update persona / rules / welcome / mission
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/gateways/{platform}/install-url:
    get:
      operationId: get_api_gateways_platform_install_url
      tags:
      - Api
      summary: start OAuth or list existing connections
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: platform
        in: path
        required: true
        schema:
          type: string
      - name: agent_id
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/knowledge-base/agents/{id}/knowledge/assign:
    post:
      operationId: post_api_knowledge_base_agents_id_knowledge_assign
      tags:
      - Api
      summary: assign a KB entry to an agent
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/knowledge-base/folders/{folderId}/upload:
    post:
      operationId: post_api_knowledge_base_folders_folderId_upload
      tags:
      - Api
      summary: upload a KB file
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/me:
    get:
      operationId: get_api_me
      tags:
      - Api
      summary: Account CLI Manage customer sub-accounts from your terminal.
      x-source: https://getoya.ai/docs/partners/account-cli
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/runs/{jobId}:
    get:
      operationId: get_api_runs_jobId
      tags:
      - Api
      summary: Hit GET /api/runs/{job_id} to check status.
      x-source: https://dev.getoya.ai/integrations/webhook
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/skills:
    get:
      operationId: get_api_skills
      tags:
      - Api
      summary: skill catalog
      x-source: https://getoya.ai/llms-full.txt
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/skills/import-folder:
    post:
      operationId: post_api_skills_import_folder
      tags:
      - Api
      summary: upload a custom skill (multipart)
      x-source: https://getoya.ai/llms-full.txt
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiSkillsImportFolderRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/skills/{id}/export:
    get:
      operationId: get_api_skills_id_export
      tags:
      - Api
      summary: download a skill (zip)
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/templates:
    get:
      operationId: get_api_templates
      tags:
      - Api
      summary: list templates
      x-source: https://getoya.ai/llms-full.txt
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_templates
      tags:
      - Api
      summary: Creating a template ( POST /api/templates , or “Save as template” on an agent card) is open to every account , and each one is
        private to the account that owns it.
      x-source: https://getoya.ai/docs/partners/template-authoring
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiTemplatesRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/templates/{id}:
    get:
      operationId: get_api_templates_id
      tags:
      - Api
      summary: full template payload
      x-source: https://getoya.ai/llms-full.txt
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/triggers/{id}/webhook:
    post:
      operationId: post_api_triggers_id_webhook
      tags:
      - Api
      summary: POST /api/triggers/{id}/webhook
      x-source: https://getoya.ai/docs/developers/triggers
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiTriggersIdWebhookRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl command for easy testing Calling a Webhook Send a POST request to the webhook URL with a JSON body. Include the x-trigger-secret
          header if an HMAC secret was configured. bash curl -X POST "https://getoya.ai/api/triggers/{id}/webhook"  -H "Content-Type: application/json"  -H
          "x-trigger-secret: your_secret_here"  -d ''{"zip_code":"10001"}'' The webhook returns 202 Accepted with a job_id in the re'
  /api/v1/chat/completions:
    post:
      operationId: post_api_v1_chat_completions
      tags:
      - Api
      summary: POST /api/v1/chat/completions
      x-source: https://getoya.ai/docs/developers/api-keys
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ChatCompletionsRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1ChatCompletionsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl Use cURL to test your API key from the terminal. bash curl -X POST https://getoya.ai/api/v1/chat/completions  -H "Authorization:
          Bearer a2a_your_key_here"  -H "Content-Type: application/json"  -d ''{"model":"gemini/gemini-3.5-flash","messages":[{"role":"user","content":"Hello"}]}'' '
  /v1/chat/completions:
    get:
      operationId: get_v1_chat_completions
      tags:
      - Chat
      summary: OpenAI-compatible chat (per agent, via API key)
      x-source: https://getoya.ai/llms-full.txt
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
components:
  schemas:
    PostApiAgencyCustomersRequest:
      type: object
      properties:
        label:
          type: string
          description: Display name shown in the customers list. 1–120 chars.
        email:
          type: string
          description: Contact email for the future invite flow. Stored but not used today.
        invite:
          type: string
          description: Stub for v2 magic-link invite. No-op today; safe to omit.
        use:
          type: string
          description: Pin this new customer as your active target after creating it.
      required:
      - label
    PutApiAgentsIdSkillsSyncRequest:
      type: object
      properties:
        skills:
          type: array
      required:
      - skills
    PostApiSkillsImportFolderRequest:
      type: object
      properties:
        folder:
          type: string
      required:
      - folder
    PostApiTemplatesRequest:
      type: object
      properties:
        name:
          type: string
          description: Slugified into the template ID. Required only when neither --from-template nor --from-agent supplies one.
        display_name:
          type: string
          description: Pretty name shown in the gallery. Defaults to --name.
        description:
          type: string
          description: Gallery metadata description.
        category:
          type: string
          description: Gallery metadata category.
        icon:
          type: string
          description: Gallery metadata icon.
        color:
          type: string
          description: Gallery metadata color.
        from_template:
          type: string
          description: Load a YAML template (path, http(s) URL, or - for stdin).
        from_agent:
          type: string
          description: Copy soul + skill_ids + routines from an existing OAgent.
        include_kb:
          type: string
          description: With --from-agent, also embed the OAgent's KB entries.
        restrict_domain:
          type: string
          description: Limit who can see the template (repeatable).
    PostApiTriggersIdWebhookRequest:
      type: object
      properties:
        zip_code:
          type: string
    PostApiV1ChatCompletionsRequest:
      type: object
      properties:
        model:
          type: string
        messages:
          type: array
          items:
            type: object
            properties:
              role:
                type: string
              content:
                type: string
    PostApiV1ChatCompletionsResponse:
      type: object
      properties:
        role:
          type: string
        content:
          type: string
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Chat