Ploid Harness API

The Harness API from Ploid — 2 operation(s) for harness.

Operations 2

POST /v1/harness/context Load canonical Ploid memory for another agent runtime #
POST /v1/harness/chat/completions Run a bounded tool-calling model request #

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/ploid:ploid-harness-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

ploid-harness-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ploid Harness API
  version: 2.0.0
  description: 'Operations tagged Harness across 2 of this provider''s published API definitions: ploid-openapi.json, ploid-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.ploid.com
security:
- bearerAuth: []
- apiKeyAuth: []
tags:
- name: Harness
paths:
  /v1/harness/context:
    post:
      operationId: getHarnessContext
      summary: Load canonical Ploid memory for another agent runtime
      description: Returns the calling user's bounded Ploid user, company, and relevant memory context without running a model. Requires agent:chat.
      tags:
      - Harness
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                query:
                  type: string
                  maxLength: 20000
      responses:
        '200':
          description: Canonical context block.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                - data
                properties:
                  data:
                    type: object
                    additionalProperties: false
                    required:
                    - context
                    properties:
                      context:
                        type: string
                        maxLength: 32000
        '401':
          description: Missing, invalid, expired, or revoked API credential.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '402':
          description: The workspace does not currently have active public-API access, or the requested operation exceeds available ACU or an API-key budget.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '403':
          description: The credential lacks the required scope, its owning user is inactive, or this workspace does not include the requested API capability.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '413':
          description: Request body exceeds 128 KB.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '422':
          description: Strict validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '429':
          description: The organization or API-key per-minute rate limit was exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
                minimum: 1
    servers:
    - url: https://api.ploid.com
  /v1/harness/chat/completions:
    post:
      operationId: createHarnessChatCompletion
      summary: Run a bounded tool-calling model request
      description: OpenAI-compatible chat-completion transport with Ploid-owned model routing. Requests are capped at 128 KB, 100 messages, 32 tools, 4,096 output tokens, a 90-second total upstream lifetime, and a 1 MB response. stream=true returns SSE and must omit Idempotency-Key. Requires agent:chat.
      tags:
      - Harness
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      parameters:
      - name: Idempotency-Key
        in: header
        required: false
        description: Recommended on non-streaming POSTs. Reusing the same key and authenticated request within 24 hours replays the original response and bills once. Live SSE responses reject this header; use a durable async run for replayable work.
        schema:
          type: string
          maxLength: 255
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HarnessChatCompletionRequest'
      responses:
        '200':
          description: Completed JSON response or terminally metered SSE stream.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HarnessChatCompletionResponse'
            text/event-stream:
              schema:
                type: string
                description: 'Sanitized OpenAI-compatible SSE ending in data: [DONE].'
        '401':
          description: Missing, invalid, expired, or revoked API credential.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '402':
          description: The workspace does not currently have active public-API access, or the requested operation exceeds available ACU or an API-key budget.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '403':
          description: The credential lacks the required scope, its owning user is inactive, or this workspace does not include the requested API capability.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '409':
          description: Idempotency-Key is in progress or was reused for a different request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '413':
          description: Request body exceeds 128 KB.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '422':
          description: Strict validation failed, or Idempotency-Key was used with a live stream.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '429':
          description: The organization or API-key per-minute rate limit was exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
                minimum: 1
        '502':
          description: The routed model returned an invalid response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '503':
          description: Harness is unavailable or exceeded its total upstream deadline.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
    servers:
    - url: https://api.ploid.com
components:
  schemas:
    PublicApiError:
      type: object
      additionalProperties: false
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          - request_id
          properties:
            code:
              type: string
            message:
              type: string
            request_id:
              type: string
            http_status:
              type: integer
              minimum: 400
              maximum: 599
              description: Semantic status when an error terminates a response after streaming headers opened.
            retryable:
              type: boolean
            unavailable_fields:
              type: array
              items:
                type: string
                enum:
                - work_email
                - personal_email
                - phone
                - profile
                - email
              description: Requested enrichment fields that could not complete. Present when all requested fields are unavailable.
            usage:
              type: object
              additionalProperties: false
              required:
              - acu_used
              - billed
              - free
              - not_found
              properties:
                acu_used:
                  type: number
                  minimum: 0
                acu_remaining:
                  type: number
                  minimum: 0
                acu_value_usd:
                  type: number
                  const: 0.1
                billed:
                  type: array
                  items:
                    type: string
                free:
                  type: array
                  items:
                    type: string
                not_found:
                  type: array
                  items:
                    type: string
          additionalProperties: true
    HarnessChatCompletionResponse:
      type: object
      additionalProperties: true
      description: OpenAI-compatible completion payload with internal model/provider routing metadata removed.
    HarnessChatCompletionRequest:
      type: object
      additionalProperties: false
      required:
      - messages
      properties:
        model:
          type: string
          enum:
          - ploid/atlas
          - ploid/ox
          default: ploid/atlas
          description: Ploid Atlas uses Luna; Ploid Ox uses Sol.
        messages:
          type: array
          minItems: 1
          maxItems: 100
          items:
            type: object
            additionalProperties: true
        tools:
          type: array
          maxItems: 64
          items:
            type: object
            additionalProperties: true
        tool_choice:
          oneOf:
          - type: string
            maxLength: 100
          - type: object
            additionalProperties: true
        parallel_tool_calls:
          type: boolean
        response_format:
          type: object
          additionalProperties: true
        stream:
          type: boolean
          default: false
        stream_options:
          type: object
          additionalProperties: false
          properties:
            include_usage:
              type: boolean
        temperature:
          type: number
          minimum: 0
          maximum: 2
        top_p:
          type: number
          minimum: 0
          maximum: 1
        stop:
          oneOf:
          - type: string
            maxLength: 500
          - type: array
            maxItems: 4
            items:
              type: string
              maxLength: 500
        seed:
          type: integer
        max_tokens:
          type: integer
          minimum: 1
          maximum: 4096
          description: Requested output budget.
        max_completion_tokens:
          type: integer
          minimum: 1
          maximum: 4096
          description: Requested output budget.
      x-max-utf8-bytes: 8388608
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
x-refined-from:
- ploid-openapi.json
- ploid-openapi.yml