Build with it
FAQ
The questions developers ask before and during integration — licensing, pricing, coverage, SDKs and error handling. Each answer stands alone.
Frequently asked questions
- Do I need a Royal Mail PAF licence to use Postio?
- No. Postio is licensed for the Royal Mail Postcode Address File and you use address data under that licence. When you call the API you agree to the PAF end-user terms — you do not need to hold your own PAF licence.
- How much does the Postio API cost?
- Postio is pay-per-lookup with no minimum and no contract. The first 100 lookups are free with no card required. See the pricing page for current per-service rates.
- What is included in the free tier?
- Every new account gets 100 free lookups with no card required. In addition, the /connect and /address/search endpoints are always free (monitored for abuse), and any query that returns no match is never charged.
- What address coverage does Postio have?
- Postio covers the full Royal Mail Postcode Address File for the United Kingdom, enriched with OS Code-Point coordinates and ONS administrative geography (district and ward).
- How do I add UK address autocomplete to my website?
- Use the drop-in widget — a single script tag from cdn.postio.co.uk/v1/address-finder.js with an origin-locked API key — or call /address/search for suggestions and /address/udprn/{udprn} to resolve the chosen address. See the Address and SDKs pages.
- Which programming languages have an official SDK?
- JavaScript/Node, Python, Go, PHP, Ruby and .NET all have official open-source SDKs. There is also a React component, a drop-in browser widget and an MCP server for AI agents.
- What do the API error codes mean?
- Postio uses HTTP status codes: 400 validation failed, 401 missing or invalid key, 402 out of credit, 403 service disabled or origin/IP not allowed, 429 rate limit exceeded, and 5xx a retryable server error. The response body also carries a stable machine-readable error code.
- How do I authenticate requests?
- Send your API key in the x-api-key header on every request. Keys have the form pk_ followed by 32 hex characters, are scoped per service, and can be locked to specific origins or IP ranges in the dashboard.
- Is a query that finds nothing charged?
- No. A valid request that returns no match is HTTP 200 with an empty results array and is not billed. You are only charged for billable endpoints when they return a result.
- What is the rate limit?
- Each API key is limited to 30 requests per second; bursts beyond that return HTTP 429. Higher limits are available on request via the contact page.
Still stuck?
If something is missing or broken, contact technical support and include the requestId from the response you are asking about.