PostalCodes.info Search API

Interactive postal-code and locality lookup.

Documentation

Specifications

Schemas & Data

Other Resources

🔗
Dataset Documentation
https://postalcodes.info/datasets
🔗
License
https://opendatacommons.org/licenses/odbl/1-0/
🔗
License
https://postalcodes.info/licensing
🔗
TermsOfService
https://postalcodes.info/terms
🔗
PrivacyPolicy
https://postalcodes.info/privacy
🔗
UpdatePolicy
https://postalcodes.info/update-policy
🔗
DataSources
https://postalcodes.info/data-sources
🔗
Citation
https://zenodo.org/records/19493709
🔗
APIsJSON
https://raw.githubusercontent.com/PabloCirre/postalcodes-info-open-data/main/apis.json
🔗
GitHub
https://github.com/PabloCirre/postalcodes-info-open-data
🔗
SpectralRules
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/rules/postalcodes-info-rules.yml
🔗
Plans
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/plans/postalcodes-info-plans-pricing.yml
🔗
FinOps
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/finops/postalcodes-info-finops.yml
🔗
Vocabulary
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/vocabulary/postalcodes-info-vocabulary.yml
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/json-ld/postalcodes-info-context.jsonld
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/examples/postalcodes-info-search-postal-codes-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/examples/postalcodes-info-preview-country-records-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/examples/postalcodes-info-create-download-token-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/examples/postalcodes-info-download-country-dataset-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/examples/postalcodes-info-get-country-lookup-page-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/examples/postalcodes-info-postal-record-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/postalcodes-info/refs/heads/main/examples/postalcodes-info-search-suggestion-example.json

OpenAPI Specification

postalcodes-info-search-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: PostalCodes.info Postal Code Reference Downloads Search API
  summary: Same-origin postal-code search, country export and lookup-page endpoints.
  description: PostalCodes.info exposes postal-code reference data for lookup, testing, education, geospatial examples and data-quality workflows. Coverage and granularity vary by country. This is not an official delivery-grade postal authority API; validate shipping, compliance and certified address decisions against the relevant national postal authority.
  version: '2026-05-05'
  contact:
    name: Pablo Cirre, PostalCodes.info
    url: https://postalcodes.info/contact
    email: social@genera.work
  license:
    name: Open Database License 1.0
    url: https://opendatacommons.org/licenses/odbl/1-0/
servers:
- url: https://postalcodes.info
  description: Canonical production host
tags:
- name: Search
  description: Interactive postal-code and locality lookup.
paths:
  /search:
    get:
      tags:
      - Search
      summary: Search Postal Codes, Places or Countries
      description: Returns lightweight suggestions used by the public lookup UI. Use country filtering when the user's country is known. Postal-code coverage and granularity vary by country.
      operationId: searchPostalCodes
      parameters:
      - name: q
        in: query
        required: true
        description: Search term. Minimum 2 characters.
        schema:
          type: string
          minLength: 2
          examples:
          - madrid
          - '28001'
          - '90210'
      - name: country
        in: query
        required: false
        description: Optional ISO 3166-1 alpha-2 country code filter.
        schema:
          type: string
          pattern: ^[A-Za-z]{2}$
          examples:
          - ES
          - US
          - IN
      - name: region
        in: query
        required: false
        description: Optional region text filter.
        schema:
          type: string
      responses:
        '200':
          description: A list of matching country, locality or postal-code suggestions.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SearchSuggestion'
              examples:
                madrid:
                  summary: Madrid lookup example
                  value:
                  - type: Town/City
                    text: Madrid
                    sub: Spain
                    url: /postal-codes/spain/madrid
  /ajax-preview:
    get:
      tags:
      - Search
      summary: Preview Records for One Country
      description: Returns up to 25,000 postal-code records for a country preview modal. For large imports, use country downloads instead of repeated live requests.
      operationId: previewCountryRecords
      parameters:
      - name: country
        in: query
        required: true
        description: Country slug such as spain, united-states or india.
        schema:
          type: string
          examples:
          - spain
          - united-states
          - india
      responses:
        '200':
          description: Preview rows for the requested country, or an error object if the country is invalid.
          content:
            application/json:
              schema:
                oneOf:
                - type: array
                  items:
                    $ref: '#/components/schemas/PostalRecord'
                - $ref: '#/components/schemas/Error'
components:
  schemas:
    PostalRecord:
      type: object
      properties:
        country_code:
          type: string
          description: ISO 3166-1 alpha-2 country code.
          examples:
          - ES
          - US
        postal_code:
          type: string
          description: Postal identifier as text. It may contain leading zeroes, spaces, letters or punctuation.
        place_name:
          type: string
        admin_name1:
          type:
          - string
          - 'null'
        admin_name2:
          type:
          - string
          - 'null'
        admin_name3:
          type:
          - string
          - 'null'
        latitude:
          type:
          - number
          - 'null'
          description: Approximate locality or area centroid, not a delivery-point coordinate.
        longitude:
          type:
          - number
          - 'null'
          description: Approximate locality or area centroid, not a delivery-point coordinate.
    SearchSuggestion:
      type: object
      required:
      - type
      - text
      - sub
      - url
      properties:
        type:
          type: string
          examples:
          - Country
          - Town/City
          - Postal Code
        text:
          type: string
          examples:
          - Madrid
          - 90210 (Beverly Hills)
        sub:
          type: string
          examples:
          - Spain
          - United States
        url:
          type: string
          examples:
          - /postal-codes/spain/madrid
          - /postal-codes/united-states/code/90210
    Error:
      type: object
      properties:
        error:
          type: string