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

# Resolve a selected address suggestion to a full address

> Exchanges a suggestion id returned by the suggest operation for the full normalized address and its deliverability signal. This is the second half of the address picker: the suggest operation returns labels only, and the address itself is never handed out until your patient actually selects one.



## OpenAPI

````yaml /openapi/public-openapi.json get /v1/instrument/address/retrieve
openapi: 3.1.0
info:
  title: Purple API
  version: 0.0.0
servers:
  - url: https://api.dev.purplelabelmd.com
security: []
tags:
  - description: Sign a patient in and out and manage the browser session.
    name: Sessions & authentication
  - description: Run the server-driven intake questionnaire question by question.
    name: Intake
  - description: Address autocomplete for the intake flow.
    name: Addresses
  - description: Read the public status of a patient's enrollment.
    name: Enrollment
  - description: Track a client's onboarding progress.
    name: Onboarding
  - description: Read back the platform configuration stored for your brand.
    name: Brand configuration
  - description: Enable offerings for your brand and set their display copy.
    name: Offering configuration
  - description: Start and track payments for an order.
    name: Payments
  - description: Subscribe to platform events and manage delivery endpoints.
    name: Webhooks
paths:
  /v1/instrument/address/retrieve:
    parameters:
      - $ref: '#/components/parameters/BrandIdHeader'
    get:
      tags:
        - Addresses
      summary: Resolve a selected address suggestion to a full address
      description: >-
        Exchanges a suggestion id returned by the suggest operation for the full
        normalized address and its deliverability signal. This is the second
        half of the address picker: the suggest operation returns labels only,
        and the address itself is never handed out until your patient actually
        selects one.
      operationId: retrieveAddress
      parameters:
        - in: query
          name: suggestion_id
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/CorrelationIdHeader'
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  address:
                    $ref: '#/components/schemas/NormalizedAddress'
                  deliverable:
                    description: >-
                      The vendor's deliverability verdict. FAILS CLOSED —
                      `false` means "not confirmed deliverable", which includes
                      "the deliverability check could not be performed", and
                      never means "confirmed undeliverable".
                    type: boolean
                  simulated:
                    description: >-
                      TRUE when this address is FABRICATED — from the synthetic
                      address book the build ships, not a real national
                      database. A simulated address may never be recorded or
                      shown as a confirmed one, and its `deliverable` is not a
                      verdict. Fails closed to `true` when no adapter is armed.
                    type: boolean
                required:
                  - address
                  - deliverable
                  - simulated
                type: object
          description: the resolved address
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/EdgeProblem'
          description: >-
            suggestion_id was absent or empty (a malformed call, not an upstream
            failure)
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/EdgeProblem'
          description: the suggestion id resolves to no address
        '429':
          $ref: '#/components/responses/EdgeRateLimited'
      security:
        - apiKey: []
components:
  parameters:
    BrandIdHeader:
      description: >-
        Opaque brand id (brd_...). Validated to belong to the resolved client
        (§2).
      in: header
      name: X-Brand-Id
      required: true
      schema:
        pattern: ^brd_[A-Za-z0-9][A-Za-z0-9_-]*$
        type: string
    CorrelationIdHeader:
      description: >-
        An optional id you send to tie this request to your own logs. Send one
        and it is echoed back unchanged; omit it and one is assigned for you.
        Either way the id is returned in the X-Correlation-Id response header on
        every response, including errors, so you can match a response to the
        request that produced it.
      in: header
      name: X-Correlation-Id
      required: false
      schema:
        maxLength: 128
        pattern: ^[A-Za-z0-9][A-Za-z0-9._:-]*$
        type: string
  schemas:
    NormalizedAddress:
      properties:
        city:
          type: string
        country:
          type: string
        line1:
          type: string
        line2:
          type: string
        postal_code:
          type: string
        state:
          description: >-
            ISO 3166-2-style state code, compared to the asserted jurisdiction
            state
          type: string
      required:
        - line1
        - city
        - state
        - postal_code
        - country
      type: object
    EdgeProblem:
      description: RFC 7807 problem+json error body.
      properties:
        detail:
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          format: uri-reference
          type: string
      required:
        - type
        - title
        - status
      type: object
  responses:
    EdgeRateLimited:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/EdgeProblem'
      description: >-
        Too many requests. You have exceeded the request rate allowed for this
        endpoint. Wait the number of seconds given in the Retry-After response
        header, then retry the request.
      headers:
        Retry-After:
          description: Seconds to wait before you retry.
          schema:
            type: integer
        X-Correlation-Id:
          description: The correlation id for this request, echoed back.
          schema:
            type: string
  securitySchemes:
    apiKey:
      description: 'Per-client API key (M2M). Presented as `Authorization: Bearer <key>`.'
      scheme: bearer
      type: http

````