Postfinder Nearby API

What is nearest a coordinate: the question most callers are asking.

Operations 1

GET /v1/nearby The nearest places of one kind to a coordinate #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/postfinder-io:postfinder-io-nearby-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

postfinder-io-nearby-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PostFinder Nearby API
  version: 1.0.0
  description: 'The directory behind postfinder.io, as an API: post offices, post boxes, parcel lockers, drop off and collection points in Australia, New Zealand, the United Kingdom, the United States and Canada, and the suburbs and postcodes they sit in.'
  contact:
    name: PostFinder
    url: https://postfinder.io/en/contact/
servers:
- url: https://api.postfinder.io
  description: Production
security: []
tags:
- name: Nearby
  description: 'What is nearest a coordinate: the question most callers are asking.'
paths:
  /v1/nearby:
    get:
      tags:
      - Nearby
      operationId: nearby
      summary: The nearest places of one kind to a coordinate
      description: '"Where is the nearest post office": up to 30 places within 50 km, nearest first. Not cached, because every coordinate is different.'
      parameters:
      - name: lat
        in: query
        required: true
        description: Latitude.
        schema:
          type: number
          minimum: -90
          maximum: 90
        example: -37.7404
      - name: lng
        in: query
        required: true
        description: Longitude.
        schema:
          type: number
          minimum: -180
          maximum: 180
        example: 144.9633
      - name: category
        in: query
        required: true
        description: The kind of place.
        schema:
          type: string
          enum:
          - post-offices
          - post-boxes
          - express-post-boxes
          - parcel-lockers
          - drop-off-points
          - collection-points
        example: post-offices
      - name: country
        in: query
        required: true
        description: Country slug.
        schema:
          type: string
        example: australia
      responses:
        '200':
          description: The nearest places.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NearbyResponse'
        '400':
          description: A coordinate out of range, or a missing or unknown category or country.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
components:
  schemas:
    NearbyPlace:
      type: object
      description: A place, with where it sits and how far it is from the point asked about.
      properties:
        public_id:
          type: string
          description: 'The place''s permanent id: minted once, never reused, and the stable end of its URL.'
          pattern: ^[a-z2-7]{8}$
        slug:
          type: string
          description: The URL segment this row has on postfinder.io.
        name:
          type: string
          description: The name on the door.
        brand:
          type: string
          description: 'Which operator runs it, as a key: auspost, parcelpoint, nzpost.'
        category:
          type: string
          description: What kind of place it is.
          enum:
          - post-offices
          - post-boxes
          - express-post-boxes
          - parcel-lockers
          - drop-off-points
          - collection-points
        address:
          type: string
          description: 'The street address, where the source gives one. Absent otherwise: most post boxes have none.'
        lat:
          type: number
          description: Latitude.
        lng:
          type: number
          description: Longitude.
        hours:
          type: object
          description: 'Opening hours as the source publishes them, with a tz, the source''s own text, and a weekly map of day to open and close pairs. Open by design: sources carry extra keys (temporary closures, a counter''s separate hatch hours) and a reader should keep what it does not know.'
          additionalProperties: true
        attributes:
          type: object
          description: 'Whatever else the source says: phone, services, what can be sent or collected. Open by design, because each source names its own keys; read the ones you need.'
          additionalProperties: true
        last_verified_at:
          type: string
          description: When a source last confirmed the record.
          format: date-time
        closed_at:
          type: string
          description: When the place was recorded as closed. Only a place page shows a closed place.
          format: date-time
        country:
          type: string
          description: Country slug.
        region:
          type: string
          description: Region slug.
        locality:
          type: string
          description: Suburb slug.
        distance_km:
          type: number
          description: Straight line distance in kilometres.
      required:
      - public_id
      - slug
      - name
      - brand
      - category
      - lat
      - lng
      - country
      - region
      - locality
      - distance_km
      additionalProperties: false
    Problem:
      type: object
      description: An RFC 7807 problem. The title says what went wrong and the detail, when present, what to do about it.
      properties:
        type:
          type: string
          description: Always about:blank.
        title:
          type: string
          description: What went wrong, in a few words.
        status:
          type: integer
          description: The HTTP status, repeated.
        detail:
          type: string
          description: What to do about it. May be empty.
      required:
      - type
      - title
      - status
      - detail
      additionalProperties: false
    NearbyResponse:
      type: object
      description: The nearest places, nearest first.
      properties:
        data:
          type: array
          description: Up to 30 places within 50 km.
          items:
            $ref: '#/components/schemas/NearbyPlace'
        generated_at:
          type: string
          description: When the answer was made. Answers are cached at the edge, so it can be up to an hour old.
          format: date-time
      required:
      - data
      - generated_at
      additionalProperties: false
x-provenance:
  method: harvested
  publisher: Postfinder
  source: https://api.postfinder.io/v1/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)