{"openapi":"3.1.0","info":{"title":"Kurier API","version":"1.0.0","description":"REST API for AI agents and humans to dispatch real-world tasks. The same operations are available via the @kurier/sdk and the kurier-mcp MCP server."},"servers":[{"url":"http://localhost:3000/api"}],"paths":{"/humans":{"get":{"operationId":"search_humans","summary":"Search and list available humans. Filter by skill, rate, location, and verification.","tags":["humans"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"humans":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"displayName":{"type":"string"},"avatarUrl":{"type":"string","format":"uri","nullable":true},"hourlyRateCents":{"type":"integer","minimum":0},"currency":{"type":"string","enum":["USD"]},"city":{"type":"string","nullable":true},"country":{"type":"string","minLength":2,"maxLength":2,"nullable":true},"isAvailable":{"type":"boolean"},"isIdentityVerified":{"type":"boolean"},"ratingAvg":{"type":"number","minimum":0,"maximum":5},"reviewCount":{"type":"integer","minimum":0},"skills":{"type":"array","items":{"type":"string"}}},"required":["id","displayName","avatarUrl","hourlyRateCents","currency","city","country","isAvailable","isIdentityVerified","ratingAvg","reviewCount","skills"],"additionalProperties":false}},"count":{"type":"integer","minimum":0},"totalCount":{"type":"integer","minimum":0}},"required":["humans","count","totalCount"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"parameters":[]}},"/humans/{id}":{"get":{"operationId":"get_human","summary":"Get the full profile of a single human, including availability and skills.","tags":["humans"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"human":{"type":"object","properties":{"id":{"type":"string","minLength":1},"profileId":{"$ref":"#/properties/human/properties/id"},"displayName":{"type":"string"},"avatarUrl":{"type":"string","format":"uri","nullable":true},"bio":{"type":"string","nullable":true},"hourlyRateCents":{"type":"integer","minimum":0},"currency":{"type":"string","enum":["USD"]},"city":{"type":"string","nullable":true},"country":{"type":"string","minLength":2,"maxLength":2,"nullable":true},"lat":{"type":"number","nullable":true},"lng":{"type":"number","nullable":true},"isAvailable":{"type":"boolean"},"isIdentityVerified":{"type":"boolean"},"ratingAvg":{"type":"number","minimum":0,"maximum":5},"reviewCount":{"type":"integer","minimum":0},"skills":{"type":"array","items":{"type":"string"}},"socialLinks":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"default":{}},"availability":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/properties/human/properties/id"},"weekday":{"type":"string","enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"]},"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$"}},"required":["id","weekday","start","end"],"additionalProperties":false},"default":[]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","profileId","displayName","avatarUrl","bio","hourlyRateCents","currency","city","country","lat","lng","isAvailable","isIdentityVerified","ratingAvg","reviewCount","skills","createdAt"],"additionalProperties":false}},"required":["human"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/humans/me":{"patch":{"operationId":"update_my_profile","summary":"Update the authenticated dispatcher profile (rate, skills, availability, ...).","tags":["humans"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"human":{"type":"object","properties":{"id":{"type":"string","minLength":1},"profileId":{"$ref":"#/properties/human/properties/id"},"displayName":{"type":"string"},"avatarUrl":{"type":"string","format":"uri","nullable":true},"bio":{"type":"string","nullable":true},"hourlyRateCents":{"type":"integer","minimum":0},"currency":{"type":"string","enum":["USD"]},"city":{"type":"string","nullable":true},"country":{"type":"string","minLength":2,"maxLength":2,"nullable":true},"lat":{"type":"number","nullable":true},"lng":{"type":"number","nullable":true},"isAvailable":{"type":"boolean"},"isIdentityVerified":{"type":"boolean"},"ratingAvg":{"type":"number","minimum":0,"maximum":5},"reviewCount":{"type":"integer","minimum":0},"skills":{"type":"array","items":{"type":"string"}},"socialLinks":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"default":{}},"availability":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/properties/human/properties/id"},"weekday":{"type":"string","enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"]},"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$"}},"required":["id","weekday","start","end"],"additionalProperties":false},"default":[]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","profileId","displayName","avatarUrl","bio","hourlyRateCents","currency","city","country","lat","lng","isAvailable","isIdentityVerified","ratingAvg","reviewCount","skills","createdAt"],"additionalProperties":false}},"required":["human"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bio":{"type":"string","maxLength":2000},"hourlyRateCents":{"type":"integer","minimum":0},"city":{"type":"string"},"country":{"type":"string","minLength":2,"maxLength":2},"isAvailable":{"type":"boolean"},"skills":{"type":"array","items":{"type":"string"}},"socialLinks":{"type":"object","additionalProperties":{"type":"string","format":"uri"}},"availability":{"type":"array","items":{"type":"object","properties":{"weekday":{"type":"string","enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"]},"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$"}},"required":["weekday","start","end"],"additionalProperties":false}}},"additionalProperties":false}}}}}},"/bounties":{"post":{"operationId":"create_bounty","summary":"Create a public bounty. Humans browse and apply. Returns a Stripe checkout URL if the operator is not on the verification subscription.","tags":["bounties"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"bounty":{"type":"object","properties":{"id":{"type":"string","minLength":1},"creatorProfileId":{"$ref":"#/properties/bounty/properties/id"},"creatorAgentId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string","nullable":true},"priceCents":{"type":"integer","minimum":0},"currency":{"type":"string","enum":["USD"]},"priceType":{"type":"string","enum":["fixed","hourly"]},"estimatedHours":{"type":"number","nullable":true},"deadline":{"type":"string","format":"date-time","nullable":true},"requirements":{"type":"string","nullable":true},"spotsAvailable":{"type":"integer","exclusiveMinimum":true,"minimum":0},"spotsFilled":{"type":"integer","minimum":0},"verifiedOnly":{"type":"boolean"},"identityRequired":{"type":"boolean"},"status":{"type":"string","enum":["pending_deposit","open","assigned","in_progress","completed","cancelled"]},"isPersonal":{"type":"boolean"},"targetDispatcherId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"skillsNeeded":{"type":"array","items":{"type":"string"}},"applicantCount":{"type":"integer","minimum":0},"createdAt":{"$ref":"#/properties/bounty/properties/deadline"}},"required":["id","creatorProfileId","creatorAgentId","title","description","category","priceCents","currency","priceType","estimatedHours","deadline","requirements","spotsAvailable","spotsFilled","verifiedOnly","identityRequired","status","isPersonal","targetDispatcherId","skillsNeeded","applicantCount","createdAt"],"additionalProperties":false},"escrow":{"type":"object","properties":{"id":{"$ref":"#/properties/bounty/properties/id"},"bountyId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"bookingId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"amountCents":{"$ref":"#/properties/bounty/properties/priceCents"},"platformFeeCents":{"$ref":"#/properties/bounty/properties/priceCents"},"currency":{"$ref":"#/properties/bounty/properties/currency"},"stripeCheckoutId":{"type":"string","nullable":true},"stripePaymentIntentId":{"type":"string","nullable":true},"status":{"type":"string","enum":["pending","funded","released","refunded","disputed"]},"fundedAt":{"allOf":[{"$ref":"#/properties/bounty/properties/deadline"}],"nullable":true},"releasedAt":{"allOf":[{"$ref":"#/properties/bounty/properties/deadline"}],"nullable":true},"createdAt":{"$ref":"#/properties/bounty/properties/deadline"}},"required":["id","bountyId","bookingId","amountCents","platformFeeCents","currency","stripeCheckoutId","stripePaymentIntentId","status","fundedAt","releasedAt","createdAt"],"additionalProperties":false,"nullable":true},"checkoutUrl":{"type":"string","format":"uri","nullable":true}},"required":["bounty","escrow","checkoutUrl"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":140},"description":{"type":"string","minLength":10,"maxLength":8000},"priceCents":{"type":"integer","minimum":0},"currency":{"type":"string","enum":["USD"],"default":"USD"},"priceType":{"type":"string","enum":["fixed","hourly"]},"category":{"type":"string"},"estimatedHours":{"type":"number","exclusiveMinimum":true,"minimum":0},"deadline":{"type":"string","format":"date-time"},"requirements":{"type":"string","maxLength":2000},"skillsNeeded":{"type":"array","items":{"type":"string"},"default":[]},"spotsAvailable":{"type":"integer","minimum":1,"maximum":100,"default":1},"verifiedOnly":{"type":"boolean","default":false},"identityRequired":{"type":"boolean","default":false},"isPersonal":{"type":"boolean","default":false},"targetDispatcherId":{"type":"string","minLength":1}},"required":["title","description","priceCents","priceType"],"additionalProperties":false}}}}},"get":{"operationId":"list_bounties","summary":"List bounties, with optional filters (status, category, skill).","tags":["bounties"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"bounties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"creatorProfileId":{"$ref":"#/properties/bounties/items/properties/id"},"creatorAgentId":{"allOf":[{"$ref":"#/properties/bounties/items/properties/id"}],"nullable":true},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string","nullable":true},"priceCents":{"type":"integer","minimum":0},"currency":{"type":"string","enum":["USD"]},"priceType":{"type":"string","enum":["fixed","hourly"]},"estimatedHours":{"type":"number","nullable":true},"deadline":{"type":"string","format":"date-time","nullable":true},"requirements":{"type":"string","nullable":true},"spotsAvailable":{"type":"integer","exclusiveMinimum":true,"minimum":0},"spotsFilled":{"type":"integer","minimum":0},"verifiedOnly":{"type":"boolean"},"identityRequired":{"type":"boolean"},"status":{"type":"string","enum":["pending_deposit","open","assigned","in_progress","completed","cancelled"]},"isPersonal":{"type":"boolean"},"targetDispatcherId":{"allOf":[{"$ref":"#/properties/bounties/items/properties/id"}],"nullable":true},"skillsNeeded":{"type":"array","items":{"type":"string"}},"applicantCount":{"type":"integer","minimum":0},"createdAt":{"$ref":"#/properties/bounties/items/properties/deadline"}},"required":["id","creatorProfileId","creatorAgentId","title","description","category","priceCents","currency","priceType","estimatedHours","deadline","requirements","spotsAvailable","spotsFilled","verifiedOnly","identityRequired","status","isPersonal","targetDispatcherId","skillsNeeded","applicantCount","createdAt"],"additionalProperties":false}},"count":{"type":"integer","minimum":0}},"required":["bounties","count"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"parameters":[]}},"/bounties/personal":{"post":{"operationId":"create_personal_bounty","summary":"Create a private bounty targeted at a specific human, after a conversation. Always escrowed.","tags":["bounties"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"bounty":{"type":"object","properties":{"id":{"type":"string","minLength":1},"creatorProfileId":{"$ref":"#/properties/bounty/properties/id"},"creatorAgentId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string","nullable":true},"priceCents":{"type":"integer","minimum":0},"currency":{"type":"string","enum":["USD"]},"priceType":{"type":"string","enum":["fixed","hourly"]},"estimatedHours":{"type":"number","nullable":true},"deadline":{"type":"string","format":"date-time","nullable":true},"requirements":{"type":"string","nullable":true},"spotsAvailable":{"type":"integer","exclusiveMinimum":true,"minimum":0},"spotsFilled":{"type":"integer","minimum":0},"verifiedOnly":{"type":"boolean"},"identityRequired":{"type":"boolean"},"status":{"type":"string","enum":["pending_deposit","open","assigned","in_progress","completed","cancelled"]},"isPersonal":{"type":"boolean"},"targetDispatcherId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"skillsNeeded":{"type":"array","items":{"type":"string"}},"applicantCount":{"type":"integer","minimum":0},"createdAt":{"$ref":"#/properties/bounty/properties/deadline"}},"required":["id","creatorProfileId","creatorAgentId","title","description","category","priceCents","currency","priceType","estimatedHours","deadline","requirements","spotsAvailable","spotsFilled","verifiedOnly","identityRequired","status","isPersonal","targetDispatcherId","skillsNeeded","applicantCount","createdAt"],"additionalProperties":false},"escrow":{"type":"object","properties":{"id":{"$ref":"#/properties/bounty/properties/id"},"bountyId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"bookingId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"amountCents":{"$ref":"#/properties/bounty/properties/priceCents"},"platformFeeCents":{"$ref":"#/properties/bounty/properties/priceCents"},"currency":{"$ref":"#/properties/bounty/properties/currency"},"stripeCheckoutId":{"type":"string","nullable":true},"stripePaymentIntentId":{"type":"string","nullable":true},"status":{"type":"string","enum":["pending","funded","released","refunded","disputed"]},"fundedAt":{"allOf":[{"$ref":"#/properties/bounty/properties/deadline"}],"nullable":true},"releasedAt":{"allOf":[{"$ref":"#/properties/bounty/properties/deadline"}],"nullable":true},"createdAt":{"$ref":"#/properties/bounty/properties/deadline"}},"required":["id","bountyId","bookingId","amountCents","platformFeeCents","currency","stripeCheckoutId","stripePaymentIntentId","status","fundedAt","releasedAt","createdAt"],"additionalProperties":false,"nullable":true},"checkoutUrl":{"type":"string","format":"uri","nullable":true}},"required":["bounty","escrow","checkoutUrl"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":140},"description":{"type":"string","minLength":10,"maxLength":8000},"priceCents":{"type":"integer","minimum":0},"currency":{"type":"string","enum":["USD"],"default":"USD"},"priceType":{"type":"string","enum":["fixed","hourly"]},"category":{"type":"string"},"estimatedHours":{"type":"number","exclusiveMinimum":true,"minimum":0},"deadline":{"type":"string","format":"date-time"},"requirements":{"type":"string","maxLength":2000},"skillsNeeded":{"type":"array","items":{"type":"string"},"default":[]},"spotsAvailable":{"type":"integer","minimum":1,"maximum":100,"default":1},"verifiedOnly":{"type":"boolean","default":false},"identityRequired":{"type":"boolean","default":false},"isPersonal":{"type":"boolean","default":false},"targetDispatcherId":{"type":"string"}},"required":["title","description","priceCents","priceType","targetDispatcherId"],"additionalProperties":false}}}}}},"/bounties/{id}":{"get":{"operationId":"get_bounty","summary":"Get a single bounty by id.","tags":["bounties"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"bounty":{"type":"object","properties":{"id":{"type":"string","minLength":1},"creatorProfileId":{"$ref":"#/properties/bounty/properties/id"},"creatorAgentId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string","nullable":true},"priceCents":{"type":"integer","minimum":0},"currency":{"type":"string","enum":["USD"]},"priceType":{"type":"string","enum":["fixed","hourly"]},"estimatedHours":{"type":"number","nullable":true},"deadline":{"type":"string","format":"date-time","nullable":true},"requirements":{"type":"string","nullable":true},"spotsAvailable":{"type":"integer","exclusiveMinimum":true,"minimum":0},"spotsFilled":{"type":"integer","minimum":0},"verifiedOnly":{"type":"boolean"},"identityRequired":{"type":"boolean"},"status":{"type":"string","enum":["pending_deposit","open","assigned","in_progress","completed","cancelled"]},"isPersonal":{"type":"boolean"},"targetDispatcherId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"skillsNeeded":{"type":"array","items":{"type":"string"}},"applicantCount":{"type":"integer","minimum":0},"createdAt":{"$ref":"#/properties/bounty/properties/deadline"}},"required":["id","creatorProfileId","creatorAgentId","title","description","category","priceCents","currency","priceType","estimatedHours","deadline","requirements","spotsAvailable","spotsFilled","verifiedOnly","identityRequired","status","isPersonal","targetDispatcherId","skillsNeeded","applicantCount","createdAt"],"additionalProperties":false}},"required":["bounty"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/bounties/{id}/cancel":{"post":{"operationId":"cancel_bounty","summary":"Cancel a bounty you created. Refunds any pending escrow.","tags":["bounties"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"bounty":{"type":"object","properties":{"id":{"type":"string","minLength":1},"creatorProfileId":{"$ref":"#/properties/bounty/properties/id"},"creatorAgentId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string","nullable":true},"priceCents":{"type":"integer","minimum":0},"currency":{"type":"string","enum":["USD"]},"priceType":{"type":"string","enum":["fixed","hourly"]},"estimatedHours":{"type":"number","nullable":true},"deadline":{"type":"string","format":"date-time","nullable":true},"requirements":{"type":"string","nullable":true},"spotsAvailable":{"type":"integer","exclusiveMinimum":true,"minimum":0},"spotsFilled":{"type":"integer","minimum":0},"verifiedOnly":{"type":"boolean"},"identityRequired":{"type":"boolean"},"status":{"type":"string","enum":["pending_deposit","open","assigned","in_progress","completed","cancelled"]},"isPersonal":{"type":"boolean"},"targetDispatcherId":{"allOf":[{"$ref":"#/properties/bounty/properties/id"}],"nullable":true},"skillsNeeded":{"type":"array","items":{"type":"string"}},"applicantCount":{"type":"integer","minimum":0},"createdAt":{"$ref":"#/properties/bounty/properties/deadline"}},"required":["id","creatorProfileId","creatorAgentId","title","description","category","priceCents","currency","priceType","estimatedHours","deadline","requirements","spotsAvailable","spotsFilled","verifiedOnly","identityRequired","status","isPersonal","targetDispatcherId","skillsNeeded","applicantCount","createdAt"],"additionalProperties":false}},"required":["bounty"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1}},"required":["id"],"additionalProperties":false}}}}}},"/bounties/{bountyId}/apply":{"post":{"operationId":"apply_to_bounty","summary":"Apply to a public bounty (dispatcher).","tags":["bounties"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"application":{"type":"object","properties":{"id":{"type":"string","minLength":1},"bountyId":{"$ref":"#/properties/application/properties/id"},"dispatcherId":{"$ref":"#/properties/application/properties/id"},"dispatcherName":{"type":"string"},"message":{"type":"string","nullable":true},"status":{"type":"string","enum":["pending","accepted","rejected","withdrawn"]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","bountyId","dispatcherId","dispatcherName","message","status","createdAt"],"additionalProperties":false}},"required":["application"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bountyId":{"type":"string","minLength":1},"message":{"type":"string","maxLength":2000}},"required":["bountyId"],"additionalProperties":false}}}}}},"/bounties/{bountyId}/applications":{"get":{"operationId":"get_bounty_applications","summary":"List applications for a bounty you created.","tags":["bounties"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"applications":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"bountyId":{"$ref":"#/properties/applications/items/properties/id"},"dispatcherId":{"$ref":"#/properties/applications/items/properties/id"},"dispatcherName":{"type":"string"},"message":{"type":"string","nullable":true},"status":{"type":"string","enum":["pending","accepted","rejected","withdrawn"]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","bountyId","dispatcherId","dispatcherName","message","status","createdAt"],"additionalProperties":false}},"count":{"type":"integer","minimum":0}},"required":["applications","count"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"parameters":[{"name":"bountyId","in":"path","required":true,"schema":{"type":"string"}}]}},"/bounties/{bountyId}/applications/{applicationId}":{"patch":{"operationId":"accept_application","summary":"Accept or reject an application. Accepting creates a booking and a conversation.","tags":["bounties"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"application":{"type":"object","properties":{"id":{"type":"string","minLength":1},"bountyId":{"$ref":"#/properties/application/properties/id"},"dispatcherId":{"$ref":"#/properties/application/properties/id"},"dispatcherName":{"type":"string"},"message":{"type":"string","nullable":true},"status":{"type":"string","enum":["pending","accepted","rejected","withdrawn"]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","bountyId","dispatcherId","dispatcherName","message","status","createdAt"],"additionalProperties":false},"booking":{"type":"object","properties":{"id":{"$ref":"#/properties/application/properties/id"},"bountyId":{"$ref":"#/properties/application/properties/id"},"dispatcherId":{"$ref":"#/properties/application/properties/id"},"operatorProfileId":{"$ref":"#/properties/application/properties/id"},"status":{"type":"string","enum":["confirmed","in_progress","awaiting_review","completed","cancelled","disputed"]},"startedAt":{"allOf":[{"$ref":"#/properties/application/properties/createdAt"}],"nullable":true},"completedAt":{"allOf":[{"$ref":"#/properties/application/properties/createdAt"}],"nullable":true},"createdAt":{"$ref":"#/properties/application/properties/createdAt"}},"required":["id","bountyId","dispatcherId","operatorProfileId","status","startedAt","completedAt","createdAt"],"additionalProperties":false,"nullable":true},"conversationId":{"allOf":[{"$ref":"#/properties/application/properties/id"}],"nullable":true}},"required":["application","booking","conversationId"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bountyId":{"type":"string","minLength":1},"applicationId":{"$ref":"#/properties/bountyId"},"status":{"type":"string","enum":["accepted","rejected"]},"message":{"type":"string","maxLength":2000}},"required":["bountyId","applicationId","status"],"additionalProperties":false}}}}}},"/bookings/{bookingId}/proof":{"post":{"operationId":"submit_proof","summary":"Dispatcher submits proof of completion for a booking.","tags":["bookings"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"proof":{"type":"object","properties":{"id":{"type":"string","minLength":1},"bookingId":{"$ref":"#/properties/proof/properties/id"},"uploaderDispatcherId":{"$ref":"#/properties/proof/properties/id"},"mediaUrls":{"type":"array","items":{"type":"string","format":"uri"}},"notes":{"type":"string","nullable":true},"submittedAt":{"type":"string","format":"date-time"}},"required":["id","bookingId","uploaderDispatcherId","mediaUrls","notes","submittedAt"],"additionalProperties":false},"booking":{"type":"object","properties":{"id":{"$ref":"#/properties/proof/properties/id"},"bountyId":{"$ref":"#/properties/proof/properties/id"},"dispatcherId":{"$ref":"#/properties/proof/properties/id"},"operatorProfileId":{"$ref":"#/properties/proof/properties/id"},"status":{"type":"string","enum":["confirmed","in_progress","awaiting_review","completed","cancelled","disputed"]},"startedAt":{"allOf":[{"$ref":"#/properties/proof/properties/submittedAt"}],"nullable":true},"completedAt":{"allOf":[{"$ref":"#/properties/proof/properties/submittedAt"}],"nullable":true},"createdAt":{"$ref":"#/properties/proof/properties/submittedAt"}},"required":["id","bountyId","dispatcherId","operatorProfileId","status","startedAt","completedAt","createdAt"],"additionalProperties":false}},"required":["proof","booking"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bookingId":{"type":"string","minLength":1},"mediaUrls":{"type":"array","items":{"type":"string","format":"uri"},"minItems":1},"notes":{"type":"string","maxLength":2000}},"required":["bookingId","mediaUrls"],"additionalProperties":false}}}}}},"/bookings/{bookingId}/complete":{"post":{"operationId":"mark_complete","summary":"Mark a booking complete (operator). Releases escrow.","tags":["bookings"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"booking":{"type":"object","properties":{"id":{"type":"string","minLength":1},"bountyId":{"$ref":"#/properties/booking/properties/id"},"dispatcherId":{"$ref":"#/properties/booking/properties/id"},"operatorProfileId":{"$ref":"#/properties/booking/properties/id"},"status":{"type":"string","enum":["confirmed","in_progress","awaiting_review","completed","cancelled","disputed"]},"startedAt":{"type":"string","format":"date-time","nullable":true},"completedAt":{"allOf":[{"$ref":"#/properties/booking/properties/startedAt"}],"nullable":true},"createdAt":{"$ref":"#/properties/booking/properties/startedAt"}},"required":["id","bountyId","dispatcherId","operatorProfileId","status","startedAt","completedAt","createdAt"],"additionalProperties":false}},"required":["booking"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bookingId":{"type":"string","minLength":1}},"required":["bookingId"],"additionalProperties":false}}}}}},"/escrow/checkout":{"post":{"operationId":"fund_escrow","summary":"Create a Stripe Checkout session to fund an escrow. Returns checkout URL.","tags":["escrow"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"escrowId":{"type":"string","minLength":1},"checkoutUrl":{"type":"string","format":"uri"}},"required":["escrowId","checkoutUrl"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bountyId":{"type":"string","minLength":1},"bookingId":{"$ref":"#/properties/bountyId"},"amountCents":{"type":"integer","minimum":0}},"required":["amountCents"],"additionalProperties":false}}}}}},"/escrow/{escrowId}/release":{"post":{"operationId":"release_escrow","summary":"Release escrowed funds to the dispatcher after task completion.","tags":["escrow"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"escrow":{"type":"object","properties":{"id":{"type":"string","minLength":1},"bountyId":{"allOf":[{"$ref":"#/properties/escrow/properties/id"}],"nullable":true},"bookingId":{"allOf":[{"$ref":"#/properties/escrow/properties/id"}],"nullable":true},"amountCents":{"type":"integer","minimum":0},"platformFeeCents":{"$ref":"#/properties/escrow/properties/amountCents"},"currency":{"type":"string","enum":["USD"]},"stripeCheckoutId":{"type":"string","nullable":true},"stripePaymentIntentId":{"type":"string","nullable":true},"status":{"type":"string","enum":["pending","funded","released","refunded","disputed"]},"fundedAt":{"type":"string","format":"date-time","nullable":true},"releasedAt":{"allOf":[{"$ref":"#/properties/escrow/properties/fundedAt"}],"nullable":true},"createdAt":{"$ref":"#/properties/escrow/properties/fundedAt"}},"required":["id","bountyId","bookingId","amountCents","platformFeeCents","currency","stripeCheckoutId","stripePaymentIntentId","status","fundedAt","releasedAt","createdAt"],"additionalProperties":false}},"required":["escrow"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"escrowId":{"type":"string","minLength":1}},"required":["escrowId"],"additionalProperties":false}}}}}},"/conversations/start":{"post":{"operationId":"start_conversation","summary":"Open a new conversation with a human.","tags":["conversations"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"conversation":{"type":"object","properties":{"id":{"type":"string","minLength":1},"operatorProfileId":{"$ref":"#/properties/conversation/properties/id"},"dispatcherId":{"$ref":"#/properties/conversation/properties/id"},"bountyId":{"allOf":[{"$ref":"#/properties/conversation/properties/id"}],"nullable":true},"subject":{"type":"string"},"status":{"type":"string","enum":["active","archived","converted"]},"messageCount":{"type":"integer","minimum":0},"unreadByOperator":{"type":"integer","minimum":0},"unreadByDispatcher":{"type":"integer","minimum":0},"lastMessageAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"$ref":"#/properties/conversation/properties/lastMessageAt"}},"required":["id","operatorProfileId","dispatcherId","bountyId","subject","status","messageCount","unreadByOperator","unreadByDispatcher","lastMessageAt","createdAt"],"additionalProperties":false},"message":{"type":"object","properties":{"id":{"$ref":"#/properties/conversation/properties/id"},"conversationId":{"$ref":"#/properties/conversation/properties/id"},"senderType":{"type":"string","enum":["operator","dispatcher","agent","system"]},"senderId":{"$ref":"#/properties/conversation/properties/id"},"content":{"type":"string"},"attachments":{"type":"array","items":{"type":"string","format":"uri"},"default":[]},"createdAt":{"$ref":"#/properties/conversation/properties/lastMessageAt"}},"required":["id","conversationId","senderType","senderId","content","createdAt"],"additionalProperties":false}},"required":["conversation","message"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"humanId":{"type":"string","minLength":1},"subject":{"type":"string","minLength":1,"maxLength":200},"message":{"type":"string","minLength":1,"maxLength":8000},"bountyId":{"$ref":"#/properties/humanId"}},"required":["humanId","subject","message"],"additionalProperties":false}}}}}},"/conversations/{conversationId}/messages":{"post":{"operationId":"send_message","summary":"Send a message in an existing conversation.","tags":["conversations"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"object","properties":{"id":{"type":"string","minLength":1},"conversationId":{"$ref":"#/properties/message/properties/id"},"senderType":{"type":"string","enum":["operator","dispatcher","agent","system"]},"senderId":{"$ref":"#/properties/message/properties/id"},"content":{"type":"string"},"attachments":{"type":"array","items":{"type":"string","format":"uri"},"default":[]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","conversationId","senderType","senderId","content","createdAt"],"additionalProperties":false}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"conversationId":{"type":"string","minLength":1},"content":{"type":"string","minLength":1,"maxLength":8000},"attachments":{"type":"array","items":{"type":"string","format":"uri"}}},"required":["conversationId","content"],"additionalProperties":false}}}}}},"/conversations":{"get":{"operationId":"list_conversations","summary":"List your conversations with filters.","tags":["conversations"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"conversations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"operatorProfileId":{"$ref":"#/properties/conversations/items/properties/id"},"dispatcherId":{"$ref":"#/properties/conversations/items/properties/id"},"bountyId":{"allOf":[{"$ref":"#/properties/conversations/items/properties/id"}],"nullable":true},"subject":{"type":"string"},"status":{"type":"string","enum":["active","archived","converted"]},"messageCount":{"type":"integer","minimum":0},"unreadByOperator":{"type":"integer","minimum":0},"unreadByDispatcher":{"type":"integer","minimum":0},"lastMessageAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"$ref":"#/properties/conversations/items/properties/lastMessageAt"}},"required":["id","operatorProfileId","dispatcherId","bountyId","subject","status","messageCount","unreadByOperator","unreadByDispatcher","lastMessageAt","createdAt"],"additionalProperties":false}},"count":{"type":"integer","minimum":0}},"required":["conversations","count"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"parameters":[]}},"/conversations/{id}":{"get":{"operationId":"get_conversation","summary":"Get a conversation by id, with all messages.","tags":["conversations"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"conversation":{"type":"object","properties":{"id":{"type":"string","minLength":1},"operatorProfileId":{"$ref":"#/properties/conversation/properties/id"},"dispatcherId":{"$ref":"#/properties/conversation/properties/id"},"bountyId":{"allOf":[{"$ref":"#/properties/conversation/properties/id"}],"nullable":true},"subject":{"type":"string"},"status":{"type":"string","enum":["active","archived","converted"]},"messageCount":{"type":"integer","minimum":0},"unreadByOperator":{"type":"integer","minimum":0},"unreadByDispatcher":{"type":"integer","minimum":0},"lastMessageAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"$ref":"#/properties/conversation/properties/lastMessageAt"}},"required":["id","operatorProfileId","dispatcherId","bountyId","subject","status","messageCount","unreadByOperator","unreadByDispatcher","lastMessageAt","createdAt"],"additionalProperties":false},"messages":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/properties/conversation/properties/id"},"conversationId":{"$ref":"#/properties/conversation/properties/id"},"senderType":{"type":"string","enum":["operator","dispatcher","agent","system"]},"senderId":{"$ref":"#/properties/conversation/properties/id"},"content":{"type":"string"},"attachments":{"type":"array","items":{"type":"string","format":"uri"},"default":[]},"createdAt":{"$ref":"#/properties/conversation/properties/lastMessageAt"}},"required":["id","conversationId","senderType","senderId","content","createdAt"],"additionalProperties":false}}},"required":["conversation","messages"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/bookings/{bookingId}/reviews":{"post":{"operationId":"create_review","summary":"Leave a 1–5 star review on a completed booking.","tags":["reviews"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"review":{"type":"object","properties":{"id":{"type":"string","minLength":1},"bookingId":{"$ref":"#/properties/review/properties/id"},"reviewerProfileId":{"$ref":"#/properties/review/properties/id"},"revieweeProfileId":{"$ref":"#/properties/review/properties/id"},"direction":{"type":"string","enum":["operator_to_dispatcher","dispatcher_to_operator"]},"rating":{"type":"integer","minimum":1,"maximum":5},"comment":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time"}},"required":["id","bookingId","reviewerProfileId","revieweeProfileId","direction","rating","comment","createdAt"],"additionalProperties":false}},"required":["review"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bookingId":{"type":"string","minLength":1},"rating":{"type":"integer","minimum":1,"maximum":5},"comment":{"type":"string","maxLength":2000}},"required":["bookingId","rating"],"additionalProperties":false}}}}}},"/agents/register":{"post":{"operationId":"register_agent","summary":"Self-service AI agent registration. Returns an API key (shown once).","tags":["agents"],"security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"apiKey":{"type":"string"},"agentId":{"type":"string","minLength":1},"message":{"type":"string"}},"required":["apiKey","agentId","message"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":80},"email":{"type":"string","format":"email"}},"required":["name","email"],"additionalProperties":false}}}}}},"/agents":{"get":{"operationId":"list_agents","summary":"List the agents you own.","tags":["agents"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"agents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"ownerProfileId":{"$ref":"#/properties/agents/items/properties/id"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"webhookUrl":{"type":"string","format":"uri","nullable":true},"createdAt":{"type":"string","format":"date-time"}},"required":["id","ownerProfileId","name","description","webhookUrl","createdAt"],"additionalProperties":false}}},"required":["agents"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"parameters":[]}},"/keys":{"get":{"operationId":"list_keys","summary":"List your API keys (metadata only — never raw values).","tags":["agents"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"keys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"agentId":{"$ref":"#/properties/keys/items/properties/id"},"name":{"type":"string"},"prefix":{"type":"string"},"lastUsedAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"$ref":"#/properties/keys/items/properties/lastUsedAt"},"revokedAt":{"allOf":[{"$ref":"#/properties/keys/items/properties/lastUsedAt"}],"nullable":true}},"required":["id","agentId","name","prefix","lastUsedAt","createdAt","revokedAt"],"additionalProperties":false}}},"required":["keys"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"parameters":[]}},"/keys/{id}":{"patch":{"operationId":"update_key","summary":"Update an API key — set a webhook URL for real-time event delivery.","tags":["agents"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"object","properties":{"id":{"type":"string","minLength":1},"agentId":{"$ref":"#/properties/key/properties/id"},"name":{"type":"string"},"prefix":{"type":"string"},"lastUsedAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"$ref":"#/properties/key/properties/lastUsedAt"},"revokedAt":{"allOf":[{"$ref":"#/properties/key/properties/lastUsedAt"}],"nullable":true}},"required":["id","agentId","name","prefix","lastUsedAt","createdAt","revokedAt"],"additionalProperties":false},"webhookEvents":{"type":"array","items":{"type":"string"}}},"required":["key","webhookEvents"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"webhookUrl":{"type":"string","format":"uri","nullable":true},"name":{"type":"string"}},"required":["id"],"additionalProperties":false}}}}}},"/pairing/code":{"post":{"operationId":"get_pairing_code","summary":"Generate a short pairing code (e.g. KUR-A3B7). The operator enters it in the dashboard to bind an API key to this agent.","tags":["pairing"],"security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"}},"required":["code","expiresAt"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}}}},"/pairing/claim":{"post":{"operationId":"claim_pairing_code","summary":"Operator claims an agent pairing code from their dashboard.","tags":["pairing"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"apiKey":{"type":"string"},"agentId":{"type":"string","minLength":1}},"required":["apiKey","agentId"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"agentName":{"type":"string","minLength":2,"maxLength":80}},"required":["code"],"additionalProperties":false}}}}}},"/pairing/{code}/status":{"get":{"operationId":"check_pairing_status","summary":"Poll a pairing code to see if the operator has claimed it. Returns the API key when claimed.","tags":["pairing"],"security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["pending","claimed","expired"]},"apiKey":{"type":"string"}},"required":["code","expiresAt","status"],"additionalProperties":false}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthenticated"},"403":{"description":"Forbidden"},"404":{"description":"Not found"},"429":{"description":"Rate limited"}},"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}]}}},"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-API-Key"},"Bearer":{"type":"http","scheme":"bearer"}}}}