{"openapi":"3.1.0","info":{"title":"SeaOtter buyer API","description":"Everything a buyer does on the page, for the buyer's agent.","version":"1"},"paths":{"/api/v1/ask/threads":{"get":{"tags":["ask"],"summary":"List Requests","description":"This buyer's requests: what waits on them first, then the newest, and ``next_before`` reads on to the oldest. Each row\nopens through the one session read. An order waiting on its buyer stands first and in its own place too.","operationId":"list_requests_api_v1_ask_threads_get","parameters":[{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Before"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Requests Api V1 Ask Threads Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/waiting":{"get":{"tags":["ask"],"summary":"Read Waiting","description":"This buyer's open orders, and which of them wait on an act of theirs.","operationId":"read_waiting_api_v1_ask_waiting_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Read Waiting Api V1 Ask Waiting Get"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/balance":{"get":{"tags":["ask"],"summary":"Read Balance","description":"Money that came back from orders. It pays for the next one first, or goes back to the card that paid it.","operationId":"read_balance_api_v1_ask_balance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Read Balance Api V1 Ask Balance Get"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/movements":{"get":{"tags":["ask"],"summary":"Read Movements","description":"Every recent movement of this buyer's money, newest first, from the ledger.","operationId":"read_movements_api_v1_ask_movements_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Read Movements Api V1 Ask Movements Get"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/balance/refund":{"post":{"tags":["ask"],"summary":"Refund Balance","description":"Send returned money back to the card that paid for it.","operationId":"refund_balance_api_v1_ask_balance_refund_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Refund Balance Api V1 Ask Balance Refund Post"}}}}},"x-seaotter-scope":"buyer.pay"}},"/api/v1/ask/parity":{"get":{"tags":["ask"],"summary":"Compare Orders","description":"A person's order and an agent's order for the same request, digest by digest. A difference is a break.","operationId":"compare_orders_api_v1_ask_parity_get","parameters":[{"name":"human","in":"query","required":true,"schema":{"type":"string","title":"Human"}},{"name":"agent","in":"query","required":true,"schema":{"type":"string","title":"Agent"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Compare Orders Api V1 Ask Parity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/{order_id}":{"get":{"tags":["ask"],"summary":"Read","operationId":"read_api_v1_ask__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"after_seq","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"After Seq"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/{order_id}/digests":{"get":{"tags":["ask"],"summary":"Read Digests","description":"The order's canonical digests: the same request made by a person or an agent carries the same six.","operationId":"read_digests_api_v1_ask__order_id__digests_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Digests Api V1 Ask  Order Id  Digests Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/{order_id}/receipt":{"get":{"tags":["ask"],"summary":"Read Receipt","operationId":"read_receipt_api_v1_ask__order_id__receipt_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Receipt Api V1 Ask  Order Id  Receipt Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/{order_id}/timeline":{"get":{"tags":["ask"],"summary":"Read Timeline","description":"Everything that happened to this order, in order: system events, delivered versions and the thread.","operationId":"read_timeline_api_v1_ask__order_id__timeline_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"after_seq","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"After Seq"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Timeline Api V1 Ask  Order Id  Timeline Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/events/jobs/{order_id}/stream":{"get":{"tags":["ask"],"summary":"Follow Order","description":"The same rows as the timeline, as they are committed. A person and an agent read this one stream.","operationId":"follow_order_api_v1_events_jobs__order_id__stream_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/{order_id}/versions/{version}/compare":{"get":{"tags":["ask"],"summary":"Compare Version","description":"What changed from the version before, in the words a person reads.","operationId":"compare_version_api_v1_ask__order_id__versions__version__compare_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Compare Version Api V1 Ask  Order Id  Versions  Version  Compare Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/{order_id}/workspace":{"get":{"tags":["ask"],"summary":"Read Workspace","description":"Every published version as it landed: its files, each file's address, the marks on it, what the team agreed to share and\nwhat the order keeps. Absent until someone holds the work.","operationId":"read_workspace_api_v1_ask__order_id__workspace_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Workspace Api V1 Ask  Order Id  Workspace Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/{order_id}/workspace/compare":{"get":{"tags":["ask"],"summary":"Compare Workspace","description":"Any two published versions, file by file, and in each file that changed, the lines that did.","operationId":"compare_workspace_api_v1_ask__order_id__workspace_compare_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"older","in":"query","required":true,"schema":{"type":"integer","title":"Older"}},{"name":"newer","in":"query","required":true,"schema":{"type":"integer","title":"Newer"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Compare Workspace Api V1 Ask  Order Id  Workspace Compare Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/{order_id}/workspace/marks":{"post":{"tags":["ask"],"summary":"Mark Workspace","description":"A line pinned to a version: it reads on that version and goes to whoever holds the work. A mark asking for more than was\nagreed is refused as ``outside_agreement``, as any line is.","operationId":"mark_workspace_api_v1_ask__order_id__workspace_marks_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMark"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mark Workspace Api V1 Ask  Order Id  Workspace Marks Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.request"}},"/api/v1/ask/{order_id}/activity":{"get":{"tags":["ask"],"summary":"Read Activity","description":"What the checking agent is doing now: its steps and what its browser shows. Ask again every second or so while\n``state`` is running. ``frame=false`` leaves the picture out.","operationId":"read_activity_api_v1_ask__order_id__activity_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"frame","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Frame"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Activity Api V1 Ask  Order Id  Activity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/{order_id}/replay":{"get":{"tags":["ask"],"summary":"Read Replay","description":"The order on one line of time, for one delivered version's check: what happened, what the agent did, what each sentence\ncame to, and the money, each row with its moment in the recording, or REPLAY_JOIN_ABSENT where it has none.","operationId":"read_replay_api_v1_ask__order_id__replay_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Replay Api V1 Ask  Order Id  Replay Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/ask/{order_id}/tell-me":{"post":{"tags":["ask"],"summary":"Tell Me","description":"This order was told not yet, and its buyer asks for one mail when someone can take it.","operationId":"tell_me_api_v1_ask__order_id__tell_me_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Tell Me Api V1 Ask  Order Id  Tell Me Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.request"}},"/api/v1/ask/{order_id}/thread":{"post":{"tags":["ask"],"summary":"Write Line","description":"The buyer's line to whoever holds the work. An agent acting for the buyer writes as that agent. A line asking for\nmore than was agreed is refused as ``outside_agreement``, which names what it asked for and the change door.","operationId":"write_line_api_v1_ask__order_id__thread_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThreadLine"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Write Line Api V1 Ask  Order Id  Thread Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.request"}},"/api/v1/ask/{order_id}/materials":{"post":{"tags":["ask"],"summary":"Add Material","description":"A picture, a recording, a sketch, a text file or a link for this order. The body is the file. It may come before the\norder's first words; once the order is signed it needs ``grant=order``, the buyer's explicit grant, or nothing is kept.\nThe same file again is the same file. A refusal says why in ``locale``, and keeps nothing.","operationId":"add_material_api_v1_ask__order_id__materials_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"request_id","in":"query","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"name","in":"query","required":false,"schema":{"type":"string","default":"","title":"Name"}},{"name":"url","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},{"name":"grant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grant"}},{"name":"locale","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Add Material Api V1 Ask  Order Id  Materials Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":null}},"/api/v1/ask/{order_id}/materials/{digest}/revoke":{"post":{"tags":["ask"],"summary":"Revoke Material","description":"The buyer takes a grant back. The worker's next read is refused.","operationId":"revoke_material_api_v1_ask__order_id__materials__digest__revoke_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"digest","in":"path","required":true,"schema":{"type":"string","title":"Digest"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Revoke Material Api V1 Ask  Order Id  Materials  Digest  Revoke Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.sign"}},"/api/v1/ask/{order_id}/change":{"post":{"tags":["ask"],"summary":"Change Order","description":"A change of scope: a new agreement of its own, approved and priced apart. The signed one stays as it was.","operationId":"change_order_api_v1_ask__order_id__change_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderChange"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.request"}},"/api/v1/ask/{order_id}/fragments":{"post":{"tags":["ask"],"summary":"Fragment","operationId":"fragment_api_v1_ask__order_id__fragments_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Turn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":null}},"/api/v1/ask/{order_id}/order/accept":{"post":{"tags":["ask"],"summary":"Accept Order","description":"The buyer's accept, with their answer on each sentence of their own judgment: the draw follows in the same act.\nThe order read says what accepting ends, in ``review.accepting``, before anyone can name the review_id it takes.","operationId":"accept_order_api_v1_ask__order_id__order_accept_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderAccept"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.decide"}},"/api/v1/ask/{order_id}/order/reject":{"post":{"tags":["ask"],"summary":"Reject Order","description":"The buyer sends the delivery back, answering each sentence of their own judgment and giving a reason, like a\nfailed check. No money moves. A reason asking for more than was agreed is refused as ``outside_agreement``.","operationId":"reject_order_api_v1_ask__order_id__order_reject_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderReject"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.decide"}},"/api/v1/ask/{order_id}/order/dispute":{"post":{"tags":["ask"],"summary":"Dispute Order","description":"The buyer takes the delivery straight to a person, with a reason. No money moves and no fix round is spent.","operationId":"dispute_order_api_v1_ask__order_id__order_dispute_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderDispute"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.decide"}},"/api/v1/ask/{order_id}/order/say":{"post":{"tags":["ask"],"summary":"Say To The Person","description":"The buyer's words to the person deciding, however the dispute opened.","operationId":"say_to_the_person_api_v1_ask__order_id__order_say_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderSay"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.decide"}},"/api/v1/ask/{order_id}/order/feedback":{"post":{"tags":["ask"],"summary":"Close Order","operationId":"close_order_api_v1_ask__order_id__order_feedback_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderFeedback"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Close Order Api V1 Ask  Order Id  Order Feedback Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.decide"}},"/api/v1/buyer-agent/intents/{order_id}/owner-funding":{"post":{"tags":["ask"],"summary":"Mint Owner Funding","description":"Pay the amounts the buyer was shown: the balance at once, or one Stripe TEST Checkout for the card's part.","operationId":"mint_owner_funding_api_v1_buyer_agent_intents__order_id__owner_funding_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnerFunding"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mint Owner Funding Api V1 Buyer Agent Intents  Order Id  Owner Funding Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.pay"},"get":{"tags":["ask"],"summary":"Read Owner Funding","description":"What paying would take now. Reading moves nothing.","operationId":"read_owner_funding_api_v1_buyer_agent_intents__order_id__owner_funding_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Owner Funding Api V1 Buyer Agent Intents  Order Id  Owner Funding Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/dispatch/a2a/protocol/negotiate":{"post":{"tags":["protocol"],"summary":"Negotiate","description":"Agree the exact version and what you can do. The answer is the tuple every later profile call carries, or a 426 that\nsays what differs. Nothing is lowered to make it pass, and the attempt shows on your owner's page either way.","operationId":"negotiate_api_v1_dispatch_a2a_protocol_negotiate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Negotiation"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Negotiate Api V1 Dispatch A2A Protocol Negotiate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":null}},"/api/v1/dispatch/a2a":{"post":{"tags":["a2a"],"summary":"Jsonrpc","description":"A2A over JSON-RPC: SendMessage, GetTask, ListTasks, CancelTask and SubscribeToTask, for a buyer's key or a worker's.","operationId":"jsonrpc_api_v1_dispatch_a2a_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/dispatch/a2a/tasks/{task_id}":{"get":{"tags":["a2a"],"summary":"Read Task","description":"One order as a task: its A2A state, and the phase the extension names.","operationId":"read_task_api_v1_dispatch_a2a_tasks__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Task Api V1 Dispatch A2A Tasks  Task Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/dispatch/a2a/tasks/{task_id}/events":{"get":{"tags":["a2a"],"summary":"Follow Task","description":"Everything that happened to this order that this key may read, then each event as it lands. Reconnect with\nLast-Event-ID for exactly what you missed: a cursor from another order or past the log is refused, never guessed.","operationId":"follow_task_api_v1_dispatch_a2a_tasks__task_id__events_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/marketplace/trust":{"get":{"tags":["marketplace","trust","consent"],"summary":"Read Trust State","description":"Current versioned state + this tenant's audit trail.","operationId":"read_trust_state_api_v1_marketplace_trust_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Read Trust State Api V1 Marketplace Trust Get"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/public/market":{"get":{"tags":["public"],"summary":"Read Market","operationId":"read_market_api_v1_public_market_get","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Locale"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Market Api V1 Public Market Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":null}},"/api/v1/public/outcomes":{"get":{"tags":["public"],"summary":"Read Outcomes","operationId":"read_outcomes_api_v1_public_outcomes_get","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Locale"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Outcomes Api V1 Public Outcomes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":null}},"/api/v1/public/replay":{"get":{"tags":["public"],"summary":"Read Replay","operationId":"read_replay_api_v1_public_replay_get","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Locale"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Replay Api V1 Public Replay Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":null}},"/api/v1/public/routes":{"get":{"tags":["public"],"summary":"Read Routes","operationId":"read_routes_api_v1_public_routes_get","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Locale"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Routes Api V1 Public Routes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":null}},"/api/v1/agents/contract":{"get":{"tags":["agents"],"summary":"Read Contract","description":"What an agent needs to start: the scopes, the doors, the MCP tools and the webhook signature.","operationId":"read_contract_api_v1_agents_contract_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Read Contract Api V1 Agents Contract Get"}}}}},"x-seaotter-scope":null}},"/api/v1/agents/connect":{"post":{"tags":["agents"],"summary":"Write Card","operationId":"write_card_api_v1_agents_connect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Card"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Write Card Api V1 Agents Connect Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":null}},"/api/v1/agents/connect/{agent_id}/claim":{"post":{"tags":["agents"],"summary":"Claim Key","operationId":"claim_key_api_v1_agents_connect__agent_id__claim_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Claim"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Claim Key Api V1 Agents Connect  Agent Id  Claim Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":null}},"/api/v1/agents/me":{"get":{"tags":["agents"],"summary":"Read Me","operationId":"read_me_api_v1_agents_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Read Me Api V1 Agents Me Get"}}}}},"x-seaotter-scope":null}},"/api/v1/agents/me/heartbeat":{"post":{"tags":["agents"],"summary":"Heartbeat","description":"I am here. Any call with the key says so, and this one says only that, for a key with nothing else to do.","operationId":"heartbeat_api_v1_agents_me_heartbeat_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Heartbeat Api V1 Agents Me Heartbeat Post"}}}}},"x-seaotter-scope":null}},"/api/v1/agents/me/webhook":{"put":{"tags":["agents"],"summary":"Set Webhook","operationId":"set_webhook_api_v1_agents_me_webhook_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Set Webhook Api V1 Agents Me Webhook Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"},"delete":{"tags":["agents"],"summary":"Remove Webhook","operationId":"remove_webhook_api_v1_agents_me_webhook_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Remove Webhook Api V1 Agents Me Webhook Delete"}}}}},"x-seaotter-scope":"buyer.read"}},"/api/v1/mcp":{"post":{"tags":["mcp"],"summary":"Mcp","operationId":"mcp_api_v1_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-seaotter-scope":null}},"/api/v1/ask/{order_id}/invoices":{"get":{"tags":["invoices"],"summary":"Read Invoices","description":"The invoice for this order, or what it waits for. It is written the first time it can be.","operationId":"read_invoices_api_v1_ask__order_id__invoices_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Invoices Api V1 Ask  Order Id  Invoices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-seaotter-scope":"buyer.read"}}},"components":{"schemas":{"Card":{"properties":{"name":{"type":"string","maxLength":80,"minLength":1,"title":"Name"},"harness":{"type":"string","maxLength":80,"minLength":1,"title":"Harness"},"role":{"type":"string","maxLength":80,"minLength":1,"title":"Role"},"scopes":{"items":{"type":"string"},"type":"array","maxItems":5,"minItems":1,"title":"Scopes"}},"additionalProperties":false,"type":"object","required":["name","harness","role","scopes"],"title":"Card","description":"Who the agent says it is and what it asks for. Grants nothing until the owner approves it."},"Claim":{"properties":{"claim_secret":{"type":"string","title":"Claim Secret"}},"additionalProperties":false,"type":"object","required":["claim_secret"],"title":"Claim"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Negotiation":{"properties":{"supported_versions":{"items":{"type":"string","maxLength":80,"minLength":1},"type":"array","maxItems":8,"minItems":1,"title":"Supported Versions"},"capabilities":{"items":{"type":"string","maxLength":80,"minLength":1},"type":"array","maxItems":16,"title":"Capabilities"},"implementation":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"Implementation"},"implementation_version":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"Implementation Version"}},"additionalProperties":false,"type":"object","required":["supported_versions","capabilities"],"title":"Negotiation"},"OrderAccept":{"properties":{"review_id":{"type":"string","title":"Review Id"},"holds":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Holds","default":{}}},"type":"object","required":["review_id"],"title":"OrderAccept"},"OrderChange":{"properties":{"request_id":{"type":"string","pattern":"^[A-Za-z0-9_.:\\-]{1,128}$","title":"Request Id"},"words":{"type":"string","maxLength":2000,"minLength":1,"title":"Words"},"idle_due_at":{"type":"string","title":"Idle Due At"}},"additionalProperties":false,"type":"object","required":["request_id","words","idle_due_at"],"title":"OrderChange"},"OrderDispute":{"properties":{"review_id":{"type":"string","title":"Review Id"},"reason":{"type":"string","maxLength":2000,"minLength":1,"title":"Reason"}},"type":"object","required":["review_id","reason"],"title":"OrderDispute"},"OrderFeedback":{"properties":{"choice":{"type":"string","enum":["what_i_asked","close_not_quite","missed","skipped"],"title":"Choice"},"words":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Words"}},"type":"object","required":["choice"],"title":"OrderFeedback","description":"The buyer's one closing word on an order that ended with work paid for. Skipping is kept as their choice."},"OrderReject":{"properties":{"review_id":{"type":"string","title":"Review Id"},"reason":{"type":"string","maxLength":2000,"minLength":1,"title":"Reason"},"holds":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Holds","default":{}}},"type":"object","required":["review_id","reason"],"title":"OrderReject"},"OrderSay":{"properties":{"words":{"type":"string","maxLength":2000,"minLength":1,"title":"Words"}},"type":"object","required":["words"],"title":"OrderSay"},"OwnerFunding":{"properties":{"quote_id":{"type":"string","title":"Quote Id"},"from_balance_pence":{"type":"integer","minimum":0.0,"title":"From Balance Pence"},"by_card_pence":{"type":"integer","minimum":0.0,"title":"By Card Pence"}},"type":"object","required":["quote_id","from_balance_pence","by_card_pence"],"title":"OwnerFunding","description":"The buyer's act repeats the two amounts it was shown, so money moves only on what the buyer read."},"ThreadLine":{"properties":{"request_id":{"type":"string","pattern":"^[A-Za-z0-9_.:\\-]{1,128}$","title":"Request Id"},"words":{"type":"string","maxLength":4000,"minLength":1,"title":"Words"}},"additionalProperties":false,"type":"object","required":["request_id","words"],"title":"ThreadLine"},"Turn":{"properties":{"request_id":{"type":"string","maxLength":128,"minLength":1,"title":"Request Id"},"expected_revision":{"type":"integer","minimum":0.0,"title":"Expected Revision"},"fragment":{"oneOf":[{"$defs":{"AccessDeclaration":{"additionalProperties":false,"description":"Required access, declared by the owner rather than inferred from prose.","properties":{"required_external_accounts":{"title":"Required External Accounts","type":"boolean"},"required_personal_data":{"title":"Required Personal Data","type":"boolean"}},"required":["required_external_accounts","required_personal_data"],"title":"AccessDeclaration","type":"object"},"AgreementTerms":{"properties":{"terms_version":{"const":"protocol_b.v1","title":"Terms Version","type":"string"},"holdout_schema":{"const":2,"title":"Holdout Schema","type":"integer"},"work_class":{"minLength":1,"title":"Work Class","type":"string"},"platforms":{"items":{"minLength":1,"type":"string"},"minItems":1,"title":"Platforms","type":"array"},"deliver_by":{"minimum":0,"title":"Deliver By","type":"integer"},"claim_window_s":{"minimum":0,"title":"Claim Window S","type":"integer"},"make_window_s":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Make Window S"},"rework_rounds":{"minimum":0,"title":"Rework Rounds","type":"integer"},"platform_sla_s":{"minimum":0,"title":"Platform Sla S","type":"integer"},"review_window_s":{"minimum":0,"title":"Review Window S","type":"integer"},"ruling_sla_s":{"minimum":0,"title":"Ruling Sla S","type":"integer"},"response_window_s":{"minimum":0,"title":"Response Window S","type":"integer"},"silence":{"title":"Silence","type":"boolean"},"platform_default":{"const":"refund_buyer_pay_worker_net","title":"Platform Default","type":"string"},"take_on_dispute_bp":{"const":0,"title":"Take On Dispute Bp","type":"integer"},"order_declaration":{"anyOf":[{"$ref":"#/$defs/OrderDeclaration"},{"type":"null"}],"default":null},"access_declaration":{"anyOf":[{"$ref":"#/$defs/AccessDeclaration"},{"type":"null"}],"default":null},"ruling_calendar":{"anyOf":[{"const":"mon_fri","type":"string"},{"type":"null"}],"default":null,"title":"Ruling Calendar"},"keep_files_s":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Keep Files S"},"keep_bytes":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Keep Bytes"},"rights":{"anyOf":[{"const":"named_sources","type":"string"},{"type":"null"}],"default":null,"title":"Rights"}},"required":["terms_version","holdout_schema","work_class","platforms","deliver_by","claim_window_s","rework_rounds","platform_sla_s","review_window_s","ruling_sla_s","response_window_s","silence","platform_default","take_on_dispute_bp"],"title":"AgreementTerms","type":"object"},"OrderDeclaration":{"additionalProperties":false,"description":"The pricing owner's explicit order shape; absence is not one order.","properties":{"order_count":{"minimum":0,"title":"Order Count","type":"integer"},"delivery_kind":{"enum":["digital","physical","service"],"title":"Delivery Kind","type":"string"}},"required":["order_count","delivery_kind"],"title":"OrderDeclaration","type":"object"},"SaidTake":{"additionalProperties":false,"description":"One take as it was heard, and what SeaOtter said back to it. It stays on the order whatever became of the words.","properties":{"ref":{"minLength":1,"title":"Ref","type":"string"},"text":{"minLength":1,"title":"Text","type":"string"},"language":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Language"},"receipt":{"title":"Receipt","type":"string"},"reply":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Reply"},"reply_receipt":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Reply Receipt"}},"required":["ref","text","receipt"],"title":"SaidTake","type":"object"},"StartSource":{"additionalProperties":false,"properties":{"ref":{"minLength":1,"title":"Ref","type":"string"},"kind":{"enum":["text","asr"],"title":"Kind","type":"string"},"text":{"minLength":1,"title":"Text","type":"string"},"final":{"const":true,"title":"Final","type":"boolean"},"language":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Language"},"receipt":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Receipt"}},"required":["ref","kind","text","final"],"title":"StartSource","type":"object"}},"additionalProperties":false,"properties":{"action":{"const":"start","title":"Action","type":"string"},"text":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Text"},"source_kind":{"anyOf":[{"const":"text","type":"string"},{"type":"null"}],"default":null,"title":"Source Kind"},"sources":{"anyOf":[{"items":{"$ref":"#/$defs/StartSource"},"minItems":1,"type":"array"},{"type":"null"}],"default":null,"title":"Sources"},"said":{"anyOf":[{"items":{"$ref":"#/$defs/SaidTake"},"maxItems":40,"type":"array"},{"type":"null"}],"default":null,"title":"Said"},"idle_due_at":{"minLength":1,"title":"Idle Due At","type":"string"},"locale":{"minLength":1,"title":"Locale","type":"string"},"time_zone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Time Zone"},"terms":{"anyOf":[{"$ref":"#/$defs/AgreementTerms"},{"type":"null"}],"default":null}},"required":["action","idle_due_at","locale"],"title":"StartSession","type":"object"},{"additionalProperties":false,"properties":{"action":{"const":"resume","title":"Action","type":"string"}},"required":["action"],"title":"Resume","type":"object"},{"additionalProperties":false,"properties":{"action":{"const":"continue","title":"Action","type":"string"},"idle_due_at":{"minLength":1,"title":"Idle Due At","type":"string"}},"required":["action","idle_due_at"],"title":"Continue","type":"object"},{"additionalProperties":false,"properties":{"action":{"const":"withdraw","title":"Action","type":"string"}},"required":["action"],"title":"Withdraw","type":"object"},{"additionalProperties":false,"description":"New words for a need that is not sold: the same order, drafted again.","properties":{"action":{"const":"reword","title":"Action","type":"string"},"text":{"minLength":1,"title":"Text","type":"string"}},"required":["action","text"],"title":"Reword","type":"object"},{"additionalProperties":false,"description":"The buyer's own words: an answer to the open question, or more to add while the words are not yet sealed.","properties":{"action":{"const":"answer","title":"Action","type":"string"},"text":{"maxLength":4000,"minLength":1,"title":"Text","type":"string"}},"required":["action","text"],"title":"Answer","type":"object"},{"additionalProperties":false,"description":"The buyer takes the set minimum they read: the only way an unmeasured price becomes a quote.","properties":{"action":{"const":"choose_floor","title":"Action","type":"string"},"floor_minor":{"exclusiveMinimum":0,"title":"Floor Minor","type":"integer"},"draft_rev":{"minimum":1,"title":"Draft Rev","type":"integer"}},"required":["action","floor_minor","draft_rev"],"title":"ChooseFloor","type":"object"},{"additionalProperties":false,"description":"Who is buying, from where: the buyer's own words for the decision and the agreement's parties.","properties":{"action":{"const":"decide_eligibility","title":"Action","type":"string"},"country":{"pattern":"^[A-Z]{2}$","title":"Country","type":"string"},"buyer_kind":{"enum":["b2c","b2b"],"title":"Buyer Kind","type":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string"},"company_number":{"anyOf":[{"maxLength":40,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Company Number"}},"required":["action","country","buyer_kind","name"],"title":"DecideEligibility","type":"object"},{"additionalProperties":false,"description":"Yes or no to the silence term. The answer is sealed at approval, and neither answer approves anything.","properties":{"action":{"const":"answer_silence","title":"Action","type":"string"},"consent":{"title":"Consent","type":"boolean"}},"required":["action","consent"],"title":"AnswerSilence","type":"object"},{"additionalProperties":false,"properties":{"action":{"const":"reserve_review","title":"Action","type":"string"},"clause_id":{"minLength":1,"title":"Clause Id","type":"string"},"owner":{"minLength":1,"title":"Owner","type":"string"}},"required":["action","clause_id","owner"],"title":"ReserveReview","type":"object"},{"additionalProperties":false,"description":"The buyer's words for one sentence. The classifier reads them before this act takes any lock.","properties":{"action":{"const":"rewrite_sentence","title":"Action","type":"string"},"clause_id":{"minLength":1,"title":"Clause Id","type":"string"},"text":{"maxLength":2000,"minLength":1,"title":"Text","type":"string"}},"required":["action","clause_id","text"],"title":"RewriteSentence","type":"object"},{"additionalProperties":false,"description":"The buyer leaves one sentence out of the agreement.","properties":{"action":{"const":"strike_sentence","title":"Action","type":"string"},"clause_id":{"minLength":1,"title":"Clause Id","type":"string"}},"required":["action","clause_id"],"title":"StrikeSentence","type":"object"},{"additionalProperties":false,"description":"The buyer's nonvoice approve of the exact current words, checks and quote (E1-SEAL v2 clause 4).","properties":{"action":{"const":"approve","title":"Action","type":"string"},"words_hash":{"pattern":"^[0-9a-f]{64}$","title":"Words Hash","type":"string"},"draft_rev":{"minimum":1,"title":"Draft Rev","type":"integer"},"agreement_hash":{"minLength":1,"title":"Agreement Hash","type":"string"},"origin":{"enum":["tap","keyboard","assistive","api"],"title":"Origin","type":"string"},"ticked":{"items":{"type":"string"},"minItems":1,"title":"Ticked","type":"array"},"same_team_as":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Same Team As"}},"required":["action","words_hash","draft_rev","agreement_hash","origin","ticked"],"title":"Approve","type":"object"}]}},"additionalProperties":false,"type":"object","required":["request_id","expected_revision","fragment"],"title":"Turn"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"Webhook":{"properties":{"url":{"type":"string","maxLength":500,"minLength":8,"title":"Url"}},"additionalProperties":false,"type":"object","required":["url"],"title":"Webhook"},"WorkspaceMark":{"properties":{"request_id":{"type":"string","pattern":"^[A-Za-z0-9_.:\\-]{1,128}$","title":"Request Id"},"version":{"type":"integer","minimum":1.0,"title":"Version"},"path":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Path"},"quote":{"anyOf":[{"type":"string","maxLength":300,"minLength":1},{"type":"null"}],"title":"Quote"},"words":{"type":"string","maxLength":4000,"minLength":1,"title":"Words"}},"additionalProperties":false,"type":"object","required":["request_id","version","words"],"title":"WorkspaceMark","description":"A line pinned to one version, to a file of it, or to words in that file."}},"securitySchemes":{"key":{"type":"http","scheme":"bearer"}}},"security":[{"key":[]}]}