{"openapi":"3.1.0","info":{"title":"Ponte Portugal public contact API","version":"1.0.0","description":"Submit a relocation-support enquiry to Ponte Portugal. This endpoint is for initial contact, not legal, tax, immigration, financial, medical, or emergency advice. API version 1 is the current stable contract; see https://ponteportugal.com/developers for compatibility and deprecation policy."},"servers":[{"url":"https://ponteportugal.com","description":"Production"}],"paths":{"/api/contact":{"post":{"operationId":"submitRelocationEnquiry","summary":"Submit a relocation-support enquiry","description":"Sends an enquiry to Ponte Portugal's public contact inbox. Do not submit identity numbers, bank details, credentials, or document uploads.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactEnquiry"}}}},"responses":{"200":{"description":"The enquiry was accepted for delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactAccepted"}}}},"400":{"description":"The JSON payload is invalid or missing required fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"405":{"description":"The endpoint only accepts POST.","headers":{"Allow":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"The enquiry could not be delivered.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The contact service is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ContactEnquiry":{"type":"object","additionalProperties":true,"required":["name","email","helpWith"],"properties":{"name":{"type":"string","minLength":1,"description":"Contact's name."},"email":{"type":"string","format":"email","description":"Reply-to email address."},"helpWith":{"oneOf":[{"type":"string","minLength":1},{"type":"array","minItems":1,"items":{"type":"string","minLength":1}}],"description":"The relocation topic or topics needing help."},"from":{"type":"string","description":"Optional country or place the person is relocating from."},"message":{"type":"string","description":"Optional context. Do not include sensitive data."},"attribution":{"type":"object","description":"Optional guide-attribution data supplied by Ponte's website."}}},"ContactAccepted":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean","const":true}}},"Error":{"type":"object","required":["error","code","message","hint"],"properties":{"error":{"type":"string","description":"Legacy human-readable error summary."},"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable explanation."},"hint":{"type":"string","description":"Safe next action for the caller."}}}}},"x-api-versioning":{"currentVersion":"1","responseHeader":"API-Version","policyUrl":"https://ponteportugal.com/developers#api-compatibility-and-deprecation","policy":"Ponte maintains backwards-compatible changes within version 1. A breaking replacement will use a new documented version before the current contract is retired. A scheduled retirement will be announced with Deprecation and Sunset response headers and on the policy page."}}