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

# Get a VASP Directory Entry

> Read one VASP of the Travel Rule directory or the Didit network by id, with the routes your application has to it.

export const AgentPromptAccordion = ({prompt, title = "AI Agent Integration Prompt"}) => {
  const [copied, setCopied] = React.useState(false);
  const handleCopy = e => {
    e.stopPropagation();
    if (!prompt) return;
    navigator.clipboard.writeText(prompt.trim()).then(() => {
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    });
  };
  const agents = ["Claude Code", "Codex", "Cursor", "Devin", "Windsurf", "GitHub Copilot"];
  return <div className="didit-agent-card">
      {}
      <div className="didit-agent-titlebar">
        <div className="didit-agent-dots" aria-hidden="true">
          <span className="didit-agent-dot didit-agent-dot-red"></span>
          <span className="didit-agent-dot didit-agent-dot-yellow"></span>
          <span className="didit-agent-dot didit-agent-dot-green"></span>
        </div>
        <span className="didit-agent-filename">{title}</span>
        <button type="button" className={`didit-agent-copy ${copied ? "didit-agent-copy-copied" : ""}`} onClick={handleCopy} title="Copy prompt to clipboard" aria-label={copied ? "Copied!" : "Copy prompt to clipboard"}>
          {copied ? <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <path d="M3 8.5l3.5 3.5L13 4" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
              </svg>
              <span>Copied</span>
            </> : <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <rect x="5" y="5" width="9" height="9" rx="1.5" stroke="currentColor" strokeWidth="1.5" />
                <path d="M11 5V3.5A1.5 1.5 0 0 0 9.5 2h-6A1.5 1.5 0 0 0 2 3.5v6A1.5 1.5 0 0 0 3.5 11H5" stroke="currentColor" strokeWidth="1.5" />
              </svg>
              <span>Copy</span>
            </>}
        </button>
      </div>

      {}
      <pre className="didit-agent-body"><code>{prompt.trim()}</code></pre>

      {}
      <div className="didit-agent-footer">
        <span className="didit-agent-footer-label">Paste into</span>
        <div className="didit-agent-chips">
          {agents.map(name => <span key={name} className="didit-agent-chip">{name}</span>)}
        </div>
      </div>
    </div>;
};

<AgentPromptAccordion
  title="Get a VASP Directory Entry API Prompt"
  prompt={`Read one VASP of the Travel Rule directory by the id GET /v3/travel-rule/vasps/ returned.

Endpoint:
GET https://verification.didit.me/v3/travel-rule/vasps/{vasp_id}/

Authentication:
Use the x-api-key header with my Didit API key.

The response is the same object as one row of the search: kind, name, lei, jurisdiction, domains, reachable, aliases, networks, routes, umbrella, entities, contacts and the due-diligence fields. Read routes[] for what my application can use today: an unavailable network route carries its reason (no_membership or network_switched_off).

Due diligence on the same id:
- dd_score (0-100, higher is safer), risk_level, dd_score_breakdown, responsiveness and essential_checks - the shared assessment. Didit network members are not scored.
- decision, entity_screening, questionnaires - my application's own records, private to it. Manage them with GET/PUT/DELETE /v3/travel-rule/vasps/{vasp_id}/decision/, GET/POST /v3/travel-rule/vasps/{vasp_id}/screening/ and GET/POST /v3/travel-rule/vasps/{vasp_id}/questionnaires/.
- My Travel Rule transfers with this VASP: GET /v3/travel-rule/transfers/?counterparty={vasp_id}.

Failure modes:
- 404 - no directory entry or listed Didit network member has this id.

Full guide: /transaction-monitoring/travel-rule#directory.`}
/>


## OpenAPI

````yaml GET /v3/travel-rule/vasps/{vasp_id}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: Identity verification API. Authenticate with x-api-key header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/vasps/{vasp_id}/:
    get:
      tags:
        - Travel Rule
      summary: Get a VASP directory entry
      description: >-
        One directory entry or Didit network member by the id the search
        returned, with the same fields and the routes your application has to
        it.
      operationId: getTravelRuleVasp
      parameters:
        - name: vasp_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: The id of a row of GET /v3/travel-rule/vasps/.
      responses:
        '200':
          description: The entry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaspDirectoryEntry'
        '404':
          description: No entry or listed Didit network member has this id.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              example:
                detail: No directory entry has this id.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            https://verification.didit.me/v3/travel-rule/vasps/{vasp_id}/ \
              -H 'x-api-key: YOUR_API_KEY'
components:
  schemas:
    VaspDirectoryEntry:
      type: object
      description: >-
        A VASP of the directory or a member of the Didit network, with the
        routes your application has to it. A customer is a member of the Didit
        network only while its application is live, its Travel Rule is on, its
        profile is discoverable, has a legal name and a confirmed compliance
        email, and Didit has not marked the application as a test, demo or
        internal one. Each row also carries the shared due-diligence assessment
        (dd_score, risk_level, responsiveness, essential_checks) and your
        application's own decision, entity screening and questionnaires, which
        no other customer sees.
      properties:
        id:
          type: string
          format: uuid
          description: The entry's id, for GET /v3/travel-rule/vasps/{vasp_id}/.
        kind:
          type: string
          enum:
            - directory
            - didit
          description: >-
            directory for an entry of the shared directory; didit for a member
            of the Didit network.
        name:
          type: string
        lei:
          type: string
        jurisdiction:
          type: string
          description: ISO 3166 country code, as the source gives it.
        domains:
          type: array
          items:
            type: string
          description: The VASP's web domains. Always empty for Didit network members.
        reachable:
          type: boolean
          description: >-
            Whether your application has an available route to this VASP, or to
            one of its entities for a brand. Always true for a Didit network
            member.
        aliases:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              kind:
                type: string
                enum:
                  - trading_name
                  - other_legal_name
                  - network_name
                  - attribution
                  - merged
                  - staff
                description: >-
                  trading_name, other_legal_name (from the global LEI register),
                  network_name (the name on a Travel Rule network), attribution
                  (the entity name blockchain analytics gives the VASP's
                  wallets), merged (the name of a duplicate entry merged into
                  this one) or staff.
          description: Other names the VASP is found by.
        networks:
          type: array
          items:
            type: object
            description: >-
              A current listing of this VASP in a Travel Rule network's member
              directory. A TRISA listing says who the VASP is on TRISA; Didit
              has no TRISA rail, so it is never a route.
            properties:
              network:
                type: string
                enum:
                  - GTR
                  - TRUST
                  - VERIFYVASP
                  - SYGNA
                  - TRISA
              code:
                type: string
                description: The VASP's identifier on that network.
              listed_name:
                type: string
                description: The name the network lists the VASP under.
              country:
                type: string
                description: The country the network lists, when it gives one.
              verified_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  When Didit staff verified the listing. Null for listings read
                  from a public directory.
              last_seen_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  When the source last showed the listing. A listing the source
                  has not shown for three weeks is removed.
              source:
                type: string
                enum:
                  - trisa_directory
                  - staff
                description: >-
                  Where the listing comes from: the public TRISA directory, or
                  Didit staff.
        routes:
          type: array
          items:
            type: object
            description: >-
              One way your application can deliver Travel Rule data to this
              VASP, in the order dispatch tries them. A network route needs a
              membership on that network: your own (connected in the
              Marketplace) or Didit's once Didit holds one. Without it the route
              is listed as unavailable with the reason, never as a way to reach
              the VASP.
            properties:
              rail:
                type: string
                enum:
                  - INTERNAL
                  - TRP
                  - GTR
                  - TRUST
                  - VERIFYVASP
                  - SYGNA
                  - EMAIL
              status:
                type: string
                enum:
                  - available
                  - unavailable
              reason:
                type: string
                enum:
                  - ''
                  - no_membership
                  - network_switched_off
                description: >-
                  Why an unavailable route cannot be used: no_membership
                  (neither you nor Didit holds a membership on that network) or
                  network_switched_off (you turned that network off in your
                  settings). Empty when the route is available.
              via:
                type: string
                enum:
                  - ''
                  - own_membership
                  - didit_membership
                  - directory
                  - contact
                  - didit_network
                description: >-
                  How an available route is reached: own_membership or
                  didit_membership for a network rail, directory for a TRP
                  endpoint the directory verified, contact for the EMAIL rail,
                  didit_network for a Didit network member. Empty when the route
                  is unavailable.
        umbrella:
          type: object
          nullable: true
          description: >-
            The brand this entry is a regulated entity of. Null when it is not
            part of one.
          properties:
            id:
              type: string
              format: uuid
            name:
              type: string
        entities:
          type: array
          items:
            type: object
            description: >-
              A regulated entity of a brand: the legal entity that receives a
              transfer.
            properties:
              id:
                type: string
                format: uuid
              name:
                type: string
              lei:
                type: string
              jurisdiction:
                type: string
              reachable:
                type: boolean
                description: Whether your application has an available route to it.
          description: >-
            For a brand, the regulated entities that receive its transfers. A
            transfer naming the brand goes to the reachable entity in the
            jurisdiction it states
            (beneficiary_data.counterparty_vasp_jurisdiction), else to the
            entity blockchain analytics attribution linked to the destination
            wallet, else to the only reachable entity when no jurisdiction is
            stated. Two entities that fit equally are never guessed between.
        contacts:
          type: array
          items:
            type: object
            description: A compliance contact the EMAIL rail can write to.
            properties:
              id:
                type: string
                format: uuid
              email:
                type: string
                format: email
              name:
                type: string
              source:
                type: string
                enum:
                  - staff
                  - application
                  - learned
                description: >-
                  staff: curated by Didit; application: added by your
                  application; learned: an address that answered a Travel Rule
                  request through its response link.
              scope:
                type: string
                enum:
                  - platform
                  - application
                description: >-
                  platform contacts are used for every Didit customer's
                  transfers; application contacts are private to your
                  application, which sees only its own.
              verified_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  When someone at this address answered a request. Null when it
                  has not yet.
          description: The platform's contacts for this VASP and your application's own.
        dd_status:
          type: string
          enum:
            - NOT_STARTED
            - IN_PROGRESS
            - COMPLETED
            - REJECTED
          description: >-
            Didit's verification status of the entry, scored by the verification
            component of dd_score. Always COMPLETED for a Didit network member.
        dd_score:
          type: integer
          nullable: true
          minimum: 0
          maximum: 100
          description: >-
            The shared due-diligence score of a directory entry, 0 to 100, where
            higher is safer (see dd_score_semantic): the sum of the points in
            dd_score_breakdown. Null for a Didit network member, which is not
            scored. An entry not assessed yet (dd_assessed_at null) shows 0 with
            an empty risk_level, so read risk_level rather than the raw score.
        dd_score_breakdown:
          type: object
          additionalProperties:
            type: object
            properties:
              points:
                type: number
                description: Points the component contributes, rounded to one decimal.
              max:
                type: integer
                description: 'The component''s weight: the points it contributes at best.'
              reason:
                type: string
                description: Machine-readable code of the component's verdict.
              detail:
                type: string
                description: One-line English explanation.
          description: >-
            One object per component of dd_score. Components, their weight (max)
            and their reason codes: jurisdiction, 25
            (jurisdiction_not_high_risk, jurisdiction_high_risk,
            jurisdiction_unknown); verification, 15 (dd_status_completed,
            dd_status_in_progress, dd_status_not_started, dd_status_rejected);
            protocol, 15 (native_rail, email_only, no_rail); lei, 10 (lei_valid,
            lei_missing); history, 10 (history, no_history); essentials, 15
            (essential_checks, no_essential_checks); responsiveness, 10
            (responsive, unresponsive, responsiveness_unknown). Empty for a
            Didit network member.
        dd_assessed_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            When dd_score, risk_level and responsiveness were last computed:
            after an exchange with the entry completes, finishes, expires,
            mismatches or is declined, when Didit refreshes or curates the
            entry, and in the weekly directory refresh. Null for a Didit network
            member.
        dd_score_semantic:
          type: string
          enum:
            - higher_is_safer
          description: 'Which way dd_score points: always higher_is_safer.'
        risk_level:
          type: string
          enum:
            - LOW
            - MEDIUM
            - HIGH
            - ''
          description: >-
            The band dd_score falls in: LOW (70 or more), MEDIUM (40 to 69) or
            HIGH (below 40). Empty for a Didit network member and for an entry
            not assessed yet. Filter on it with risk. Your own flagged screening
            never changes this shared value: it makes counterparty_risk_level
            HIGH in your rules instead.
        responsiveness:
          type: object
          description: >-
            Whether the VASP answers Travel Rule requests: the share of the
            requests Didit customers started towards it in the last 90 days that
            it answered. Only requests sent over a network or protocol rail, or
            by email to a shared address (the entry's compliance address or a
            platform contact), count; a request sent to an address a customer
            typed, or to a customer's private contact, never does. An expired
            request is unanswered; a completed exchange, a decline or a data
            mismatch is an answer; a cancelled request or an unreachable rail is
            neither. Always UNKNOWN with zero counts for a Didit network member.
          properties:
            status:
              type: string
              enum:
                - RESPONSIVE
                - UNRESPONSIVE
                - UNKNOWN
              description: >-
                UNKNOWN with fewer than 5 decided requests in the window;
                UNRESPONSIVE when less than 10 percent of them were answered;
                RESPONSIVE otherwise.
            answered:
              type: integer
              description: Decided requests in the window that the VASP answered.
            total:
              type: integer
              description: 'Decided requests in the window: answered plus expired.'
            computed_at:
              type: string
              format: date-time
              nullable: true
        essential_checks:
          type: object
          description: >-
            The essential-checks report of a directory entry, built only from
            the platform's verified sources: registration (an official register
            lists the VASP: the EU's interim MiCA register, the public TRISA
            directory or the global LEI register), licence (a MiCA authorisation
            is on record and current), domain (the entry's domain matches its
            TRP endpoint or the website its register gives) and lei (its LEI
            record is active, issued and consistent with the entry's names and
            country). The essentials component of dd_score is the share of
            decided checks that pass. Empty until the weekly directory refresh
            first checks the entry, and always empty for a Didit network member.
          properties:
            level:
              type: string
              enum:
                - essential
            checked_at:
              type: string
              format: date-time
            checks:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    enum:
                      - registration
                      - licence
                      - domain
                      - lei
                  status:
                    type: string
                    enum:
                      - pass
                      - fail
                      - unknown
                    description: unknown when no source on record can decide the check.
                  reason:
                    type: string
                    description: Machine-readable code of the verdict.
                  detail:
                    type: string
                    description: One-line English explanation.
            passed:
              type: integer
            failed:
              type: integer
            unknown:
              type: integer
            total:
              type: integer
        reachable_rails:
          type: array
          items:
            type: string
            enum:
              - INTERNAL
              - TRP
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
              - EMAIL
          description: >-
            Rails recorded on the entry. Read routes for what your application
            can use today.
        is_didit_customer:
          type: boolean
          description: >-
            true for a member of the Didit network (dd_status is always
            COMPLETED, dd_score null and risk_level empty for these) and for a
            directory entry linked to a Didit customer.
        decision:
          allOf:
            - $ref: '#/components/schemas/TravelRuleCounterpartyDecision'
          nullable: true
          description: >-
            Your application's decision on this VASP, or for an entity with no
            decision of its own its brand's (inherited_from names the brand).
            Null when there is none. Private to your application.
        entity_screening:
          allOf:
            - $ref: '#/components/schemas/TravelRuleCounterpartyScreening'
          nullable: true
          description: >-
            Your application's latest sanctions and adverse-media screening of
            this VASP. Null when you never screened it. Private to your
            application.
        questionnaires:
          type: array
          items:
            $ref: '#/components/schemas/TravelRuleCounterpartyQuestionnaire'
          description: >-
            Your application's due-diligence questionnaires with this VASP,
            newest first. Private to your application.
      example:
        id: 0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91
        kind: directory
        name: Example Counterparty VASP
        lei: 529900EXAMPLECPTY001
        jurisdiction: DE
        domains:
          - counterparty.example
        reachable: true
        aliases:
          - name: Example Counterparty
            kind: trading_name
        networks:
          - network: GTR
            code: EXAMPLE01
            listed_name: Example Counterparty VASP
            country: DE
            verified_at: '2026-10-12T09:30:00Z'
            last_seen_at: '2026-10-12T09:30:00Z'
            source: staff
        routes:
          - rail: GTR
            status: unavailable
            reason: no_membership
            via: ''
          - rail: EMAIL
            status: available
            reason: ''
            via: contact
        umbrella: null
        entities: []
        contacts:
          - id: 6c1f9b8e-2d4a-4f7e-8b3c-5a9d0e1f2a3b
            email: travelrule@counterparty.example
            name: Travel Rule desk
            source: staff
            scope: platform
            verified_at: null
        dd_status: NOT_STARTED
        dd_score: 62
        dd_score_breakdown:
          jurisdiction:
            points: 25
            max: 25
            reason: jurisdiction_not_high_risk
            detail: DEU is not on the high-risk jurisdiction list
          verification:
            points: 3.8
            max: 15
            reason: dd_status_not_started
            detail: due diligence status NOT_STARTED
          protocol:
            points: 6
            max: 15
            reason: email_only
            detail: reachable over the email fallback only
          lei:
            points: 10
            max: 10
            reason: lei_valid
            detail: valid LEI on record
          history:
            points: 5
            max: 10
            reason: no_history
            detail: no exchange history
          essentials:
            points: 7.5
            max: 15
            reason: no_essential_checks
            detail: no decided essential check yet
          responsiveness:
            points: 5
            max: 10
            reason: responsiveness_unknown
            detail: 0 decided recent requests, too few to judge
        dd_assessed_at: '2026-10-12T09:30:00Z'
        dd_score_semantic: higher_is_safer
        risk_level: MEDIUM
        responsiveness:
          status: UNKNOWN
          answered: 0
          total: 0
          computed_at: '2026-10-12T09:30:00Z'
        essential_checks: {}
        reachable_rails:
          - GTR
          - EMAIL
        is_didit_customer: false
        decision:
          decision: APPROVED
          reason: Licensed in DE, questionnaire reviewed
          decided_by: ''
          updated_at: '2026-10-14T10:05:00Z'
          inherited_from: null
        entity_screening:
          id: 7a1d2c3b-4e5f-4a6b-8c7d-9e0f1a2b3c4d
          status: Approved
          total_hits: 0
          score: null
          screened_at: '2026-10-14T09:58:00Z'
          fresh: true
          flagged: false
        questionnaires:
          - id: 8b7a6c5d-4e3f-4a2b-9c1d-0e9f8a7b6c5d
            status: ANSWERED
            form_version: '1'
            sent_to: travelrule@counterparty.example
            sent_at: '2026-09-02T08:00:00Z'
            expires_at: '2026-10-02T08:00:00Z'
            answered_at: '2026-09-04T15:20:00Z'
            valid_until: '2027-09-04T15:20:00Z'
            current: true
            answers:
              legal_name: >-
                Example Counterparty VASP, incorporated in the example
                jurisdiction.
              licensing: >-
                Crypto-asset service provider authorised under MiCA by its
                national regulator, licence active.
              jurisdictions: EU and EEA. We do not serve the United States.
              aml_program: >-
                Written AML/CFT policy, annual independent review, last
                completed in March 2026.
              compliance_officer: >-
                Head of Compliance, reachable at
                compliance@counterparty.example.
              sanctions_screening: >-
                Customers at onboarding and daily; counterparties on every
                transfer.
              transaction_monitoring: >-
                Rule-based monitoring with analyst review; suspicious activity
                reports filed with the FIU.
              travel_rule: TRP and email; we answer requests within one business day.
              custody: >-
                Segregated customer wallets held with a qualified custodian,
                insured.
              ownership: >-
                No shareholder holds 25 percent or more; parent company Example
                Holding Group.
              record_keeping: >-
                Five-year record-keeping for Travel Rule and transaction data,
                as our regulator requires.
              data_protection: Encrypted at rest and in transit, stored in the EU.
    TravelRuleCounterpartyDecision:
      type: object
      description: >-
        Your application's decision on a counterparty VASP. Private to your
        application: it never changes the shared directory entry and another
        customer never sees it. It acts only through your transaction rules (the
        counterparty_dd_status rule field and the
        travel-rule-counterparty-blocked and travel-rule-counterparty-restricted
        presets); it never changes how a transfer is routed.
      properties:
        decision:
          type: string
          enum:
            - APPROVED
            - RESTRICTED
            - BLOCKED
          description: >-
            APPROVED: your team cleared the counterparty. RESTRICTED: transfers
            to it may go ahead after review. BLOCKED: your team refused it.
        reason:
          type: string
          maxLength: 255
          description: Free-text reason you gave, empty when none.
        decided_by:
          type: string
          description: >-
            The console user who made or last changed the decision. Empty when
            an API key made it.
        updated_at:
          type: string
          format: date-time
        inherited_from:
          type: object
          nullable: true
          description: >-
            The brand whose decision this entity follows because you made none
            on the entity itself. Null when the decision is the counterparty's
            own.
          properties:
            id:
              type: string
              format: uuid
            name:
              type: string
    TravelRuleCounterpartyScreening:
      type: object
      description: >-
        One sanctions and adverse-media screening of the counterparty entity,
        run for and billed to your application. Private to your application:
        another customer never sees it.
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - Approved
            - In Review
            - Declined
          description: >-
            Approved: no possible match needs attention. In Review or Declined:
            a possible sanctions or adverse-media match.
        total_hits:
          type: integer
          description: How many possible matches the screening returned.
        score:
          type: number
          nullable: true
          description: >-
            The highest risk score among the possible matches. Null when nothing
            matched.
        screened_at:
          type: string
          format: date-time
        fresh:
          type: boolean
          description: >-
            Whether the screening is younger than fresh_days (30 days). A fresh
            screening is reused instead of billed again.
        flagged:
          type: boolean
          description: >-
            true while the screening is fresh and its status is In Review or
            Declined. While your latest screening is flagged and counterparty
            screening stays on, counterparty_risk_level is HIGH in your rules.
    TravelRuleCounterpartyQuestionnaire:
      type: object
      description: >-
        One due-diligence questionnaire your application sent the counterparty:
        Didit's standard questionnaire, emailed to a compliance address on
        record with a single-use answer link. Private to your application.
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - SENT
            - ANSWERED
            - EXPIRED
          description: >-
            SENT: waiting for answers. ANSWERED: the counterparty answered every
            question. EXPIRED: the answer link closed unanswered (its deadline
            passed, or a newer questionnaire replaced it), or answers passed
            valid_until.
        form_version:
          type: string
          description: >-
            Version of Didit's standard questionnaire the answers belong to.
            Currently 1.
        sent_to:
          type: string
          format: email
        sent_at:
          type: string
          format: date-time
          nullable: true
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            The answer-by deadline, 30 days after sending. The link stops
            working after it.
        answered_at:
          type: string
          format: date-time
          nullable: true
        valid_until:
          type: string
          format: date-time
          nullable: true
          description: >-
            How long the answers stay current: 365 days after answering. Null
            until answered.
        current:
          type: boolean
          description: >-
            true while the questionnaire is ANSWERED and valid_until has not
            passed.
        answers:
          type: object
          additionalProperties:
            type: string
          description: >-
            The answers keyed by question id: legal_name, licensing,
            jurisdictions, aml_program, compliance_officer, sanctions_screening,
            transaction_monitoring, travel_rule, custody, ownership,
            record_keeping, data_protection. Each answer is up to 2,000
            characters. Empty until answered.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your application's API key, from Developers -> API keys in the Business
        Console. The primary key has full access. A named key can be scoped:
        none, read or write per resource, limited to some workflows or to
        approved sessions, to a list of IP addresses, and to an expiry date. 401
        means the key is missing, wrong, revoked or expired; 403 means the key
        has no access to this resource or action, or the request came from an
        address outside its IP list; 404 on a session route means the session is
        outside the key's workflows or statuses. A key without media access
        receives image, video and PDF URLs as null, and a key without sessions
        write receives session links and tokens as null. See
        https://docs.didit.me/console/api-keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.