> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sparqle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search pickup points

> Find the pickup points (PUDO locations) closest to an address or coordinate, ordered by distance. Pass the `pudoId` of the point your shopper selects straight through to the order's `pudoId`.

Search by `countryCode` + `postalCode`, or by `lat` + `lng`. An address that has no pickup points returns an empty list.



## OpenAPI

````yaml /api-reference/openapi.json get /pickup-points
openapi: 3.1.0
info:
  title: Sparqle API
  version: 1.0.0
  description: >-
    Create deliveries, fetch shipping labels, and track orders with Sparqle.


    This specification is a hand-authored starting point derived from the API
    source. Replace or merge it with the spec exported from your previous docs
    as you refine the reference.
servers:
  - url: https://staging-v2.sparqle.tech
    description: Test
  - url: https://v2.sparqle.com
    description: Live
security:
  - apiKey: []
paths:
  /pickup-points:
    get:
      tags:
        - Pickup points
      summary: Search pickup points
      description: >-
        Find the pickup points (PUDO locations) closest to an address or
        coordinate, ordered by distance. Pass the `pudoId` of the point your
        shopper selects straight through to the order's `pudoId`.


        Search by `countryCode` + `postalCode`, or by `lat` + `lng`. An address
        that has no pickup points returns an empty list.
      operationId: searchPickupPoints
      parameters:
        - name: countryCode
          in: query
          description: ISO 3166-1 country code. Required unless lat/lng are given.
          schema:
            type: string
            minLength: 2
            maxLength: 2
          example: NL
        - name: postalCode
          in: query
          description: Postal code. Required unless lat/lng are given.
          schema:
            type: string
          example: 1082ME
        - name: lat
          in: query
          schema:
            type: number
          example: 52.3382
        - name: lng
          in: query
          schema:
            type: number
          example: 4.8721
        - name: city
          in: query
          schema:
            type: string
          example: Amsterdam
        - name: street
          in: query
          schema:
            type: string
          example: Gustav Mahlerlaan 320
        - name: state
          in: query
          schema:
            type: string
          example: Noord-Holland
        - name: types
          in: query
          description: >-
            Restrict the search to these kinds of pickup point. Repeat the
            parameter for multiple values. Omit it to search every kind.


            These filter values are broader than the `type` a point is returned
            with: `PICKUP_DROPOFF_POINT` matches points of type `SERVICE_POINT`
            and `POST_OFFICE`, and `MAILBOX_POBOX` matches type `MAILBOX`.
          schema:
            type: array
            items:
              type: string
              enum:
                - PARCEL_LOCKER
                - PICKUP_DROPOFF_POINT
                - MAILBOX_POBOX
        - name: maxResults
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
          example: 10
        - name: maxDistanceKm
          in: query
          description: Search radius in kilometers. Omit for the carrier default.
          schema:
            type: number
          example: 10
      responses:
        '200':
          description: Pickup points near the searched location
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PickupPoints'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    PickupPoints:
      type: object
      properties:
        points:
          type: array
          items:
            $ref: '#/components/schemas/PickupPoint'
        totalFound:
          type: integer
          description: >-
            Points found near the searched location. Higher than the number
            returned when `maxResults` truncated the list.
          example: 12
    PickupPoint:
      type: object
      properties:
        pudoId:
          type: string
          description: >-
            Opaque identifier of this pickup point — store it, do not parse it.
            Send it back unchanged as the order's `pudoId`.
          example: 9f83c1b0a4
        carrierPudoId:
          type: string
          description: >-
            The delivering carrier's own identifier for this same point. Only
            useful for matching against pickup point ids from elsewhere —
            ordering always uses `pudoId`.
          example: '8004567'
        type:
          type: string
          enum:
            - PARCEL_LOCKER
            - SERVICE_POINT
            - MAILBOX
            - POST_OFFICE
            - OTHER
          example: SERVICE_POINT
        name:
          type: string
          example: Albert Heijn Zuidas
        address:
          type: object
          properties:
            street:
              type: string
              example: Gustav Mahlerlaan 320
            street2:
              type: string
              example: Unit 2
            postalCode:
              type: string
              example: 1082ME
            city:
              type: string
              example: Amsterdam
            state:
              type: string
              example: Noord-Holland
            suburb:
              type: string
              example: Zuidas
            countryCode:
              type: string
              example: NL
        geo:
          type: object
          properties:
            lng:
              type: number
              example: 4.8721
            lat:
              type: number
              example: 52.3382
        openingHours:
          type: object
          properties:
            open24h:
              type: boolean
              example: false
            weekdays:
              type: object
              description: >-
                Opening windows per weekday. A weekday is absent when the point
                is closed that day.
              additionalProperties:
                type: array
                items:
                  type: object
                  properties:
                    openTime:
                      type: string
                      example: '09:00'
                    closeTime:
                      type: string
                      example: '18:00'
        facilities:
          type: object
          properties:
            carParking:
              type: boolean
            bikeParking:
              type: boolean
            accessibility:
              type: boolean
            waitingArea:
              type: boolean
        contact:
          type: object
          properties:
            phone:
              type: string
              example: '+31201234567'
            email:
              type: string
              example: zuidas@example.com
        distanceMeters:
          type: integer
          description: Distance from the searched location.
          example: 420
        locationGuidance:
          type: string
          example: Locker is on the left side of the building
    Error:
      type: object
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          type: array
          items:
            type: string
          example:
            - deliveryName should not be empty
        error:
          type: string
          example: Bad Request
  responses:
    ValidationError:
      description: Validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid API key
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: api-key

````