{"openapi":"3.1.0","info":{"title":"Arclight Agents inquiry API","version":"1.1.0","description":"Initial text-only inquiries. Evidence is accepted through invited private uploads, never this endpoint. Human confirmation and Arclight review are required."},"servers":[{"url":"https://www.arclightaction.com"}],"paths":{"/api/agents/submissions":{"post":{"operationId":"submitInquiry","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Arclight Agents initial inquiry","type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":2,"maxLength":120},"email":{"type":"string","minLength":3,"maxLength":254,"format":"email"},"title":{"type":"string","minLength":5,"maxLength":160},"organization":{"type":"string","minLength":0,"maxLength":160},"summary":{"type":"string","minLength":20,"maxLength":3000},"datesAndOutcome":{"type":"string","minLength":0,"maxLength":800},"country":{"type":"string","minLength":0,"maxLength":80},"desiredOutcome":{"type":"string","minLength":0,"maxLength":500},"agentName":{"type":"string","minLength":0,"maxLength":120},"agentPlatform":{"type":"string","minLength":0,"maxLength":120},"campaign":{"type":"string","enum":["distrokid-cancellation","new-issue"]},"submittedBy":{"type":"string","enum":["human","agent"]},"evidenceAvailable":{"type":"array","minItems":1,"maxItems":5,"uniqueItems":true,"items":{"type":"string","enum":["receipts","support-correspondence","screenshots","public-sources","other"]}},"reviewPermission":{"const":true},"authorizedToShare":{"const":true},"noSensitiveInformation":{"const":true},"noticeVersion":{"const":"2026-10-11-v1.1"},"website":{"type":"string","const":"","description":"Anti-spam honeypot. Omit this field or leave it empty."},"turnstileToken":{"type":"string","maxLength":2048,"description":"Browser human-verification token. Direct agent API requests omit it and send no Origin header."}},"required":["campaign","submittedBy","name","email","title","summary","evidenceAvailable","reviewPermission","authorizedToShare","noSensitiveInformation","noticeVersion"],"allOf":[{"if":{"properties":{"submittedBy":{"const":"agent"}},"required":["submittedBy"]},"then":{"required":["agentName","agentPlatform"],"properties":{"agentName":{"type":"string","minLength":1,"maxLength":120},"agentPlatform":{"type":"string","minLength":1,"maxLength":120}}}}],"description":"Text-only inquiry. No file bytes, evidence URLs, final human attestations, health information, credentials, or confidential whistleblower materials. Consent declared by an agent remains provisional until the person confirms. Runtime also screens obvious prohibited information."}}}},"responses":{"202":{"description":"Generic acknowledgment identical for valid new, duplicate, and already-confirmed inquiries. Does not reveal existence, reference, or status, or guarantee delivery.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["message"],"properties":{"message":{"const":"If this is a new inquiry, check your email to confirm."}}}}}},"400":{"description":"Invalid or prohibited content. errors names unexpected fields and gives the expected noticeVersion. website must be omitted or empty."},"403":{"description":"Origin not allowed. Direct agent HTTP clients omit Origin and turnstileToken; browser requests require the human check."},"429":{"description":"Rate limit reached. JSON names limit, maximum, windowSeconds, resetsAt (UTC), and retryAfterSeconds.","headers":{"Retry-After":{"description":"Seconds until the hit fixed window resets.","schema":{"type":"integer","minimum":1}}}},"503":{"description":"Intake not configured, or submission/confirmation-email delivery unavailable. Dependency failures include Retry-After: 60; retry the identical inquiry."}}}}}}