{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/ploid/main/json-schema/ploid-search-handoff-response-schema.json", "title": "SearchHandoffResponse", "x-generated": "2026-10-07", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/ploid-openapi.yml#/components/schemas/SearchHandoffResponse", "type": "object", "additionalProperties": false, "required": [ "data", "meta" ], "properties": { "data": { "type": "object", "additionalProperties": false, "required": [ "mode", "set_id", "search_id", "status", "criteria", "pricing", "set_url", "items_url", "events_url", "request" ], "properties": { "mode": { "type": "string", "const": "async" }, "set_id": { "type": "string" }, "search_id": { "type": "string" }, "status": { "type": "string", "const": "running" }, "criteria": { "type": "array", "items": { "type": "string" }, "description": "Criteria every admitted row is verified against." }, "pricing": { "type": "object", "additionalProperties": true, "description": "Estimate; billing settles on admitted rows." }, "set_url": { "type": "string" }, "items_url": { "type": "string", "description": "Page admitted rows, usable while the search runs." }, "events_url": { "type": "string", "description": "Server-sent progress events." }, "request": { "type": "object", "additionalProperties": false, "required": [ "query", "category", "num_results" ], "properties": { "query": { "type": "string" }, "category": { "type": "string", "const": "people" }, "num_results": { "type": "integer", "minimum": 1 }, "criteria": { "type": "array", "items": { "type": "string" } }, "resolved_query": { "type": "string" }, "notes": { "type": "array", "items": { "type": "string" } } } } } }, "meta": { "$ref": "#/$defs/PublicCreditsResponseMeta" } }, "$defs": { "PublicCreditsResponseMeta": { "type": "object", "additionalProperties": false, "required": [ "request_id", "credits_charged" ], "properties": { "request_id": { "type": "string" }, "credits_charged": { "type": "number", "minimum": 0 }, "remaining_credits": { "type": "number", "minimum": 0 }, "cursor": { "type": [ "string", "null" ] }, "message": { "type": "string" } } } } }