{"openapi":"3.1.0","info":{"title":"30dayl COCO detection bundle API","version":"0.1.0","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme."},"servers":[{"url":"https://30dayl.com"}],"x-authentication-boundary":"Native Sites dispatch; ordinary status/pricing are readable when Site access permits. Job data is always account-owned.","paths":{"/api/status":{"get":{"summary":"Read actual limits and runtime/payment readiness","responses":{"200":{"description":"Status and hard limits"}}}},"/api/pricing":{"get":{"summary":"Read server-owned reference/display/exact-charge tuple","parameters":[{"name":"currency","in":"query","schema":{"type":"string","enum":["USD","EUR","GBP","JPY","SAR","AED","BHD","OMR","KWD"],"default":"USD"}}],"responses":{"200":{"description":"Dated FX/catalog, exact checkout charge, precision and settlement-unknown status"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}}},"/api/me":{"get":{"summary":"Read your native identity and service-registration state","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme.","responses":{"200":{"description":"Identity for this signed-in request"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}}},"/api/register":{"post":{"summary":"Register only after explicit service-terms acceptance","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"termsVersion":{"const":"2026-10-28"}},"additionalProperties":false,"required":["termsVersion"]}}}},"responses":{"200":{"description":"Registration recorded; no purchase"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}}},"/api/inspect":{"post":{"summary":"Inspect one COCO JSON within a bounded ZIP","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme. This does not charge or grant output access.","parameters":[{"name":"x-metadata-path","in":"header","schema":{"type":"string","default":"instances_train.json"},"description":"URI-encoded exact COCO JSON path in the archive."}],"requestBody":{"required":true,"content":{"application/zip":{"schema":{"type":"string","format":"binary","maxLength":4194304}}}},"responses":{"200":{"description":"Image identities/dimensions and class list"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"422":{"description":"Invalid ZIP/JSON or admission refusal"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}}},"/api/jobs":{"get":{"summary":"List your recent private jobs","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme.","responses":{"200":{"description":"Owned jobs only"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}},"post":{"summary":"Create an owned job with explicit split policy","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"metadataPath":{"type":"string","maxLength":240},"splits":{"type":"object","minProperties":2,"maxProperties":100,"additionalProperties":{"enum":["train","val","test"]}},"currency":{"enum":["USD","EUR","GBP","JPY","SAR","AED","BHD","OMR","KWD"]}},"additionalProperties":false,"required":["metadataPath","splits","currency"]}}}},"responses":{"200":{"description":"Not used"},"201":{"description":"Owned job awaiting ZIP; no payment created"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}}},"/api/jobs/{id}":{"get":{"summary":"Read owned job, quote, artifact identity and entitlement","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme.","responses":{"200":{"description":"Private job status"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^job_[a-f0-9-]{36}$"}}]},"/api/jobs/{id}/input":{"put":{"summary":"Validate/build a ZIP or rebuild a paid job from identical source","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme. Metadata path/splits are immutable for the job. A paid recovery requires the original source hash and never creates a second payment.","requestBody":{"required":true,"content":{"application/zip":{"schema":{"type":"string","format":"binary","maxLength":4194304}}}},"responses":{"200":{"description":"Prepared protected artifact and immutable quote"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"422":{"description":"Input refused or execution failed; no new purchase consumed"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^job_[a-f0-9-]{36}$"}}]},"/api/jobs/{id}/checkout":{"post":{"summary":"Create/replay one explicitly consented order","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme. Exact stored quote controls amount/currency. Missing all-four merchant readiness refuses checkout. Unknown payment outcomes must be recovered, not repeated.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"quoteId":{"type":"string"},"idempotencyKey":{"type":"string","minLength":16,"maxLength":80,"pattern":"^[-a-zA-Z0-9]+$"},"consentVersion":{"const":"2026-10-28"}},"additionalProperties":false,"required":["quoteId","idempotencyKey","consentVersion"]}}}},"responses":{"200":{"description":"Original order, exact charge tuple and provider-hosted URL"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^job_[a-f0-9-]{36}$"}}]},"/api/jobs/{id}/recover":{"post":{"summary":"Reconcile the original payment and entitlement","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme. A bounded same-reference lookup may recover an unknown provider binding. Ambiguous or incomplete matches do not trigger another charge.","responses":{"200":{"description":"Private job/order state"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^job_[a-f0-9-]{36}$"}}]},"/api/jobs/{id}/requote":{"post":{"summary":"Refresh an unpaid prepared job quote","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme. Existing active/uncertain orders cannot be silently replaced.","responses":{"200":{"description":"New explicit quote; accepted orders remain unchanged"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^job_[a-f0-9-]{36}$"}}]},"/api/jobs/{id}/download":{"get":{"summary":"Receive the verified-payment-protected ZIP","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme.","responses":{"200":{"description":"ZIP, attachment name and x-artifact-sha256 header","content":{"application/zip":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Sign-in required"},"402":{"description":"Verified entitlement required"},"410":{"description":"Reupload original input to recover"}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^job_[a-f0-9-]{36}$"}}]},"/api/jobs/{id}/receipt":{"post":{"summary":"Acknowledge received response bytes after SHA-256 verification","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme. Separate from download authorization or a claimed filesystem save.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"additionalProperties":false,"required":["sha256"]}}}},"responses":{"200":{"description":"Authenticated artifact acknowledgment recorded"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^job_[a-f0-9-]{36}$"}}]},"/api/jobs/{id}/files":{"delete":{"summary":"Delete this job’s stored files; retain paid recovery/accounting","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme.","responses":{"200":{"description":"Files removed; recovery requires identical source"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^job_[a-f0-9-]{36}$"}}]},"/api/jobs/{id}/help":{"post":{"summary":"Save a delivery/refund-review request","description":"Native Sites sign-in through the trusted dispatch boundary, plus service registration. Internal identity headers are not client credentials. Browser mutations require the same Origin. This API does not implement a separate bearer-key scheme. No automatic refund or provider contact is performed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","minLength":10,"maxLength":2000}},"additionalProperties":false,"required":["message"]}}}},"responses":{"200":{"description":"Saved request reference"},"400":{"description":"Invalid or unsupported fields"},"401":{"description":"Native Sites sign-in required"},"403":{"description":"Origin or ownership rejected"},"409":{"description":"Conflict, consent, quote or recovery requirement"},"503":{"description":"Capacity, configuration or merchant readiness unavailable"}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^job_[a-f0-9-]{36}$"}}]}}}