{"openapi":"3.1.0","info":{"title":"@mailwoman/libpostal","version":"7.8.1","description":"libpostal drop-in — a libpostal-compatible parse/expand HTTP API over Mailwoman's neural address parser. The lowest-dependency drop-in: parse needs no gazetteer. Run it with `npx @mailwoman/libpostal serve`.","license":{"name":"AGPL-3.0-only OR LicenseRef-Commercial","identifier":"AGPL-3.0-only"},"contact":{"name":"Sister Software","url":"https://mailwoman.sister.software"}},"externalDocs":{"description":"Switching from libpostal","url":"https://mailwoman.sister.software/docs/concepts/switching-from-libpostal"},"servers":[{"url":"http://{host}:{port}","variables":{"host":{"default":"127.0.0.1"},"port":{"default":"8081"}}}],"tags":[{"name":"parsing","description":"Free-text address parsing and component expansion."},{"name":"meta","description":"Health and deploy-time operations."}],"security":[],"components":{"schemas":{"LibpostalComponent":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"]},"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]},"ParseRequest":{"type":"object","properties":{"query":{"type":"string"},"address":{"type":"string"}}},"ExpandResponse":{"type":"object","properties":{"expansions":{"type":"array","items":{"type":"string"}}},"required":["expansions"]},"ExpandRequest":{"type":"object","properties":{"address":{"type":"string"}}}},"parameters":{}},"paths":{"/":{"get":{"operationId":"getRoot","summary":"Landing page","tags":["meta"],"responses":{"200":{"description":"HTML landing page.","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/parse":{"get":{"operationId":"parseGet","summary":"Parse an address (query string)","tags":["parsing"],"parameters":[{"schema":{"type":"string","description":"The address to parse. `address` is accepted as an alias."},"required":false,"description":"The address to parse. `address` is accepted as an alias.","name":"query","in":"query"},{"schema":{"type":"string","description":"Alias for `query`."},"required":false,"description":"Alias for `query`.","name":"address","in":"query"}],"responses":{"200":{"description":"The ordered libpostal components.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LibpostalComponent"}}}}},"400":{"description":"The required `query` (or `address`) parameter is missing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"An unexpected engine fault. A clean JSON error, never a stack trace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"parsePost","summary":"Parse an address (JSON body)","tags":["parsing"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseRequest"}}}},"responses":{"200":{"description":"The ordered libpostal components.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LibpostalComponent"}}}}},"400":{"description":"The required `query` (or `address`) parameter is missing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"An unexpected engine fault. A clean JSON error, never a stack trace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/expand":{"get":{"operationId":"expandGet","summary":"Expand an address (query string)","tags":["parsing"],"parameters":[{"schema":{"type":"string","description":"The address to expand."},"required":false,"description":"The address to expand.","name":"address","in":"query"}],"responses":{"200":{"description":"The deterministic expansion set.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpandResponse"}}}},"400":{"description":"The required `address` parameter is missing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"An unexpected engine fault. A clean JSON error, never a stack trace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501":{"description":"The backing engine method is not wired for this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"expandPost","summary":"Expand an address (JSON body)","tags":["parsing"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpandRequest"}}}},"responses":{"200":{"description":"The deterministic expansion set.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpandResponse"}}}},"400":{"description":"The required `address` parameter is missing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"An unexpected engine fault. A clean JSON error, never a stack trace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501":{"description":"The backing engine method is not wired for this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"webhooks":{}}
