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