{"openapi":"3.1.0","info":{"title":"Proofly API","version":"1.0.0","description":"Server-to-server API for Proofly Pro workspaces. Test mode only. Scopes: read:references, read:requests, write:requests, write:conversions. Webhook events: request.created, request.accepted, request.declined, request.expired, request.completed, proof.uploaded, conversion.recorded, payout.released."},"servers":[{"url":"https://getproofly.com/api/public/v1"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"prf_test_… key from Settings → Developers"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"Request":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"enum":["pending","accepted","declined","expired","completed"]},"prospect_name":{"type":"string"},"pain_point":{"type":"string"},"request_type":{"enum":["Phone call","Text","Virtual meeting"]},"scheduled_at":{"type":"string","format":"date-time"},"reference_id":{"type":["string","null"]},"request_cents":{"type":"integer"},"bonus_cents":{"type":"integer"},"deal_cents":{"type":"integer"},"tip_cents":{"type":"integer"},"became_customer_at":{"type":["string","null"]},"simulated":{"type":"boolean"}}},"Reference":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"title":{"type":"string"},"company":{"type":"string"},"industry":{"type":"string"},"city":{"type":"string"},"employee_range":{"type":"string"},"status":{"type":"string"},"verified_customer":{"type":"boolean"},"stats":{"type":"object"},"custom_properties":{"type":"object"}}}}},"paths":{"/references":{"get":{"summary":"List references (no email or phone)","x-scope":"read:references","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","maximum":100}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"}},{"name":"q","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Page of references"},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/requests":{"get":{"summary":"List requests","x-scope":"read:requests","responses":{"200":{"description":"Page of requests"},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Create a request","x-scope":"write:requests","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["reference_ids","prospect_name","pain_point","request_type","scheduled_at","requested_by_email"],"properties":{"reference_ids":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":10},"prospect_name":{"type":"string"},"pain_point":{"type":"string"},"request_type":{"enum":["Phone call","Text","Virtual meeting"]},"scheduled_at":{"type":"string","format":"date-time"},"meeting_url":{"type":"string","format":"uri"},"requested_by_email":{"type":"string","format":"email"}}}}}},"responses":{"201":{"description":"Created"},"400":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/requests/{id}":{"get":{"summary":"Get a request","x-scope":"read:requests","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Request"},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/requests/{id}/conversion":{"post":{"summary":"Record \"Became a customer\" with optional tip","x-scope":"write:conversions","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":255},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["deal_cents","closed_by_email"],"properties":{"deal_cents":{"type":"integer"},"tip_cents":{"type":"integer"},"closed_by_email":{"type":"string","format":"email"}}}}}},"responses":{"200":{"description":"Recorded"},"400":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}