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

# Look up one directory entry

> Returns the full directory entry: the business's profile, the public-record identity of the business it links to, the agentic payment rails it advertises, its published kya-profile.json disclosure scopes, points of contact, and the serving state of its counterparty credential. Unlisted and unknown ids are indistinguishable `404`s.



## OpenAPI

````yaml /api-reference/openapi.json get /directory/businesses/{profile_id}
openapi: 3.1.0
info:
  title: baselayer-api-service
  version: 0.1.0
servers:
  - url: https://api.baselayer.com/
security: []
paths:
  /directory/businesses/{profile_id}:
    get:
      tags:
        - Directory
      summary: Look up one directory entry
      description: >-
        Returns the full directory entry: the business's profile, the
        public-record identity of the business it links to, the agentic payment
        rails it advertises, its published kya-profile.json disclosure scopes,
        points of contact, and the serving state of its counterparty credential.
        Unlisted and unknown ids are indistinguishable `404`s.
      operationId: get_directory_business
      parameters:
        - name: profile_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Profile Id
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.DirectoryBusinessResponse'
            application/vnd.baselayer.v1+json:
              schema:
                $ref: '#/components/schemas/v1.DirectoryBusinessResponse'
        '404':
          description: >-
            The id is unknown or the entry is not listed — the two are
            indistinguishable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
                title: ResourceNotFound
                description: Could not locate the resource for the given URI.
                examples:
                  - code: 1
                    message: Could not locate the resource for the given URI.
                    metadata: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    v1.DirectoryBusinessResponse:
      description: 'Body for ``GET /directory/businesses/{id}``: the full entry.'
      properties:
        id:
          description: >-
            The directory entry's id — resolvable via `GET
            /directory/businesses/{id}`.
          format: uuid
          title: Id
          type: string
        display_name:
          description: The business's display name.
          title: Display Name
          type: string
        domain:
          description: >-
            The merchant's canonical domain, where its kya-profile.json and
            counterparty credential are served.
          title: Domain
          type: string
        website:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: The business's website URL.
          title: Website
        logo_url:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: URL of the business's logo.
          title: Logo Url
        summary:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: A short description of what the business does.
          title: Summary
        kyb_verified:
          description: >-
            Whether the entry is backed by a business whose public registry
            record is current: an active registration in good standing. Derived
            from public records, never from any organization's private
            evaluation; always false for an entry with no linked business.
          title: Kyb Verified
          type: boolean
        payment_rails:
          description: The agentic payment rails the business advertises accepting.
          items:
            $ref: '#/components/schemas/v1.AgenticPaymentRail'
          title: Payment Rails
          type: array
        registry_record:
          anyOf:
            - $ref: '#/components/schemas/v1.DirectoryRegistryRecordResponse'
            - type: 'null'
          default: null
          description: >-
            The public-record identity of the linked business — legal name and
            incorporation facts; null for an entry with no linked business,
            which is also always unverified.
        contacts:
          description: >-
            Points of contact the business publishes for questions —
            self-declared business-role details, never verification data.
          items:
            $ref: '#/components/schemas/v1.DirectoryContact'
          title: Contacts
          type: array
        kya_profile:
          anyOf:
            - $ref: '#/components/schemas/v1.DisclosureProfile'
            - type: 'null'
          default: null
          description: >-
            The business's published kya-profile.json: the disclosure scopes it
            requests, each naming the fields, purpose, legal basis, and
            retention behind one use case.
        counterparty_credential:
          anyOf:
            - $ref: '#/components/schemas/v1.DirectoryCounterpartyCredentialResponse'
            - type: 'null'
          default: null
          description: >-
            The serving state of the counterparty credential this entry's domain
            hosts; null when the entry has no linked business, or that business
            never minted one for this domain.
      required:
        - id
        - display_name
        - domain
        - kyb_verified
      title: DirectoryBusinessResponse (v1)
      type: object
    APIError:
      properties:
        code:
          type: integer
          title: Code
        message:
          type: string
          title: Message
        uri:
          anyOf:
            - type: string
            - type: 'null'
          title: Uri
        metadata:
          additionalProperties: true
          type: object
          title: Metadata
      type: object
      required:
        - code
        - message
      title: APIError
      description: >-
        APIError is a Pydantic model for standardizing error responses from the
        API.


        This class is used internally by APIException for JSON serialization.

        Users should typically work with APIException directly in exception
        catalogs.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    v1.AgenticPaymentRail:
      description: |-
        A payment method a directory-listed business accepts from agents.

        Self-declared commerce metadata on a KYA directory entry — which rails
        (protocols or card-network agent programs) the merchant advertises for
        agentic checkout. Advisory only: nothing in the platform settles on
        these rails, so the vocabulary is expected to grow with the ecosystem
        and OTHER absorbs rails we have not named yet.
      enum:
        - X402
        - MPP
        - UCP
        - VISA_TAP
        - VISA_INTELLIGENT_COMMERCE
        - MASTERCARD_AGENT_PAY
        - GOOGLE_AP2
        - STRIPE_ACP
        - OTHER
      title: AgenticPaymentRail
      type: string
    v1.DirectoryRegistryRecordResponse:
      description: |-
        The public-record identity behind an entry's linked business.

        The incorporation facts a reader needs to tell one "Acme Robotics" from
        another: the legal name as the domicile filing spells it and the filing
        that names it. Public-record only — the same corpus the verified badge
        reads, never an organization's private evaluation — and it carries no
        Baselayer business id, so an entry stays addressed by its own directory
        id alone.
      properties:
        legal_name:
          description: >-
            The business's legal name as its domicile registration filing spells
            it, which may differ from the display name the merchant advertises
            under.
          title: Legal Name
          type: string
        incorporation_state:
          $ref: '#/components/schemas/v1.StateAbbreviation'
          description: The state the business is domiciled in.
        incorporation_filing_number:
          description: The domicile registration's filing number in that state.
          title: Incorporation Filing Number
          type: string
        incorporation_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          default: null
          description: >-
            When the business incorporated; null when the registry did not
            publish a date.
          title: Incorporation Date
      required:
        - legal_name
        - incorporation_state
        - incorporation_filing_number
      title: DirectoryRegistryRecordResponse (v1)
      type: object
    v1.DirectoryContact:
      description: |-
        A point of contact a directory entry publishes for questions.

        Business-role contact details the merchant chose to advertise —
        never sourced from vault or verification data. Directory entries are
        globally readable, so whatever lands here is public: the email is
        syntax-validated and canonicalized, and the free-text fields are
        bounded so the payload stays a contact card, not a dumping ground.
      properties:
        name:
          maxLength: 200
          minLength: 1
          title: Name
          type: string
        role:
          maxLength: 200
          minLength: 1
          title: Role
          type: string
        email:
          type: string
          format: email
          title: Email
      required:
        - name
        - role
        - email
      title: DirectoryContact
      type: object
    v1.DisclosureProfile:
      description: The counterparty's ``kya-profile.json``.
      properties:
        profile_id:
          title: Profile Id
          type: string
        domain:
          title: Domain
          type: string
        publisher:
          additionalProperties:
            type: string
          title: Publisher
          type: object
        class_attestation:
          additionalProperties:
            type: string
          title: Class Attestation
          type: object
        scopes:
          items:
            $ref: '#/components/schemas/v1.DisclosureScope'
          title: Scopes
          type: array
      required:
        - profile_id
        - domain
        - publisher
        - class_attestation
        - scopes
      title: DisclosureProfile
      type: object
    v1.DirectoryCounterpartyCredentialResponse:
      description: |-
        The serving state of the credential this entry's domain hosts.

        Present only when the linked business has minted one for this domain;
        read-only — minting from the directory is a follow-up.
      properties:
        status:
          $ref: '#/components/schemas/v1.DirectoryCounterpartyStatus'
          description: >-
            SERVING when a counterparty credential bound to this entry's domain
            is currently valid; LAPSED when every one minted for it has expired,
            been revoked, or lost its supporting registry state.
        expires_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          default: null
          description: When the currently serving credential expires; null when LAPSED.
          title: Expires At
      required:
        - status
      title: DirectoryCounterpartyCredentialResponse (v1)
      type: object
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    v1.StateAbbreviation:
      enum:
        - AL
        - AK
        - AZ
        - AR
        - CA
        - CO
        - CT
        - DE
        - DC
        - FL
        - GA
        - HI
        - ID
        - IL
        - IN
        - IA
        - KS
        - KY
        - LA
        - ME
        - MD
        - MA
        - MI
        - MN
        - MS
        - MO
        - MT
        - NE
        - NV
        - NH
        - NJ
        - NM
        - NY
        - NC
        - ND
        - OH
        - OK
        - OR
        - PA
        - RI
        - SC
        - SD
        - TN
        - TX
        - UT
        - VT
        - VA
        - WA
        - WV
        - WI
        - WY
        - PR
        - VI
        - AE
        - AA
        - AP
        - GU
        - AS
      title: StateAbbreviation
      type: string
    v1.DisclosureScope:
      description: 'One published use case: the fields it may read and why.'
      properties:
        name:
          type: string
          title: Name
        tier:
          title: Tier
          type: string
        purpose:
          title: Purpose
          type: string
        legal_basis:
          title: Legal Basis
          type: string
        fields:
          items:
            type: string
          title: Fields
          type: array
        retention_days:
          title: Retention Days
          type: integer
      required:
        - name
        - tier
        - purpose
        - legal_basis
        - fields
        - retention_days
      title: DisclosureScope
      type: object
    v1.DirectoryCounterpartyStatus:
      description: |-
        Whether a directory entry's linked business serves a live
        counterparty credential for the entry's own domain.

        Derived, never stored: SERVING means at least one counterparty
        credential bound to this domain is currently valid under the business's
        registry state; LAPSED means credentials were minted for the domain but
        none is valid now (expired, revoked, or the business fell out of
        standing). A domain that never minted one has no status at all — the
        field is absent, not LAPSED.
      enum:
        - SERVING
        - LAPSED
      title: DirectoryCounterpartyStatus
      type: string
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````