{"openapi":"3.1.0","info":{"title":"Asigurare Călătorie public API","version":"1.0.0","summary":"Read-only product, health, and guide endpoints for asiguraricalatorie.","description":"Public read API for Asigurare Călătorie (asiguraricalatorie). No API key. Stable paths are /api/v1. A breaking change ships under a new major path such as /api/v2. A retired version sends an RFC 8594 Sunset header and a Link rel=deprecation to /developers#versioning. Clients should stay within 120 requests per IP per 60 seconds. Checkout and policy issue are website flows, not API operations."},"servers":[{"url":"https://asiguraricalatorie.ro","description":"Production read API."},{"url":"https://sandbox.asiguraricalatorie.ro","description":"Sandbox read API. Same paths. It does not issue a live policy."}],"security":[],"tags":[{"name":"product","description":"What this site sells and when to call it."},{"name":"guides","description":"Short explainers for medical, storno, and baggage cover."},{"name":"meta","description":"Health and discovery."}],"paths":{"/api/v1/health":{"get":{"operationId":"getHealth","summary":"Public API health","description":"Report that the public read API process is answering. This is not the kamal-proxy /healthz check and it does not call an insurer.","tags":["meta"],"responses":{"200":{"description":"The public API is answering.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"description":"The request does not match the operation schema.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"The path or guide slug does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"The HTTP method is not allowed. Public operations are GET.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"The client exceeded 120 requests per 60 seconds.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"The server failed while reading a public document.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"parameters":[{"name":"locale","in":"query","required":false,"description":"Language of the text fields. The API serves Romanian (ro) only.","schema":{"type":"string","enum":["ro"]}}]}},"/api/v1/product":{"get":{"operationId":"getProduct","summary":"Product summary","description":"Return the public product summary for Asigurare Călătorie: when to use the site, links to docs, and contact. No quotes and no personal data.","tags":["product"],"responses":{"200":{"description":"Product summary.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"400":{"description":"The request does not match the operation schema.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"The path or guide slug does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"The HTTP method is not allowed. Public operations are GET.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"The client exceeded 120 requests per 60 seconds.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"The server failed while reading a public document.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"parameters":[{"name":"locale","in":"query","required":false,"description":"Language of the text fields. The API serves Romanian (ro) only.","schema":{"type":"string","enum":["ro"]}}]}},"/api/v1/guides":{"get":{"operationId":"listGuides","summary":"List travel-insurance guides","description":"List the public explainers an agent can fetch by slug. Each item has a title, a one-line summary, and the URL of the full guide. The full list fits one page, so nextCursor is null.","tags":["guides"],"parameters":[{"name":"locale","in":"query","required":false,"description":"Language of the text fields. The API serves Romanian (ro) only.","schema":{"type":"string","enum":["ro"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of guides to return. The catalog has three guides.","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"description":"Opaque page cursor. Omit it for the first page. This catalog has no second page.","schema":{"type":"string"}}],"responses":{"200":{"description":"Guide index.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuideList"}}}},"400":{"description":"The request does not match the operation schema.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"The path or guide slug does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"The HTTP method is not allowed. Public operations are GET.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"The client exceeded 120 requests per 60 seconds.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"The server failed while reading a public document.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/guides/{slug}":{"get":{"operationId":"getGuide","summary":"Read one guide","description":"Return one public explainer. Unknown slugs respond with problem+json code not_found. Slugs are medical, storno, and baggage.","tags":["guides"],"parameters":[{"name":"locale","in":"query","required":false,"description":"Language of the text fields. The API serves Romanian (ro) only.","schema":{"type":"string","enum":["ro"]}},{"name":"slug","in":"path","required":true,"description":"Guide slug. Use a value from listGuides.","schema":{"type":"string","enum":["medical","storno","baggage"]}}],"responses":{"200":{"description":"One guide.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Guide"}}}},"400":{"description":"The request does not match the operation schema.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"The path or guide slug does not exist.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"The HTTP method is not allowed. Public operations are GET.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"The client exceeded 120 requests per 60 seconds.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"The server failed while reading a public document.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"schemas":{"Problem":{"type":"object","additionalProperties":false,"required":["type","title","status","code","detail","message","hint","resolution"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"code":{"type":"string"},"detail":{"type":"string"},"message":{"type":"string"},"hint":{"type":"string"},"resolution":{"type":"string"}}},"Health":{"type":"object","additionalProperties":false,"required":["ok","service","environment"],"properties":{"ok":{"type":"boolean"},"service":{"type":"string"},"environment":{"type":"string","enum":["production","sandbox"]}}},"Product":{"type":"object","additionalProperties":true,"required":["name","slug","url","description","whenToUse","buyUrl","openapiUrl"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string","format":"uri"},"description":{"type":"string"},"whenToUse":{"type":"array","items":{"type":"string"}},"buyUrl":{"type":"string","format":"uri"},"openapiUrl":{"type":"string","format":"uri"}},"example":{"name":"Asigurare Călătorie","slug":"asiguraricalatorie","url":"https://asiguraricalatorie.ro/","description":"Compare and buy travel insurance online for a trip that starts in Romania. Medical cover, trip cancellation (storno), and baggage when the product includes it. Up to 6 travelers. You pay the premium by card in RON. The policy PDF arrives by email.","languages":["ro"],"buyUrl":"https://asiguraricalatorie.ro/cumpara/date","docsUrl":"https://asiguraricalatorie.ro/developers","openapiUrl":"https://asiguraricalatorie.ro/openapi.json","llmsUrl":"https://asiguraricalatorie.ro/llms.txt","sitemapUrl":"https://asiguraricalatorie.ro/sitemap-index.xml","aboutUrl":"https://asiguraricalatorie.ro/about","contactUrl":"https://asiguraricalatorie.ro/contact","privacyUrl":"https://asiguraricalatorie.ro/privacy","contact":{"email":"office@sunergos.ro","telephone":"+40721339939","contactType":"customer support"},"broker":{"name":"Renomia Insurance Reinsurance Broker SRL","register":"RBK-009","email":"office@ro.renomia.com"},"whenToUse":["Compare travel medical insurance before a trip abroad.","Buy one order for up to 6 travelers and receive each policy PDF by email.","Buy a medical policy for a child on a school trip abroad, with a parent or another adult (18 or older) as the contractor.","Read what storno and baggage options mean before you pay."],"doNotUseFor":["RCA car insurance","CASCO car insurance","home insurance","CASS insured-status checks"],"version":"v1","rateLimit":{"requests":120,"windowSeconds":60,"scope":"per client IP on /api/v1"}}},"Guide":{"type":"object","additionalProperties":false,"required":["slug","title","summary","body"],"properties":{"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"body":{"type":"string"}}},"GuideList":{"type":"object","additionalProperties":false,"required":["items","limit","nextCursor"],"properties":{"limit":{"type":"integer"},"nextCursor":{"type":["string","null"]},"items":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["slug","title","summary","url"],"properties":{"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}}}}}