> ## 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.

# Search VASPs from the Wallet Widget

> Token-keyed VASP search behind the wallet widget's VASP picker: who each VASP is and whether it can be reached.

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="Widget VASP Search API Prompt"
  prompt={`Search VASPs from a wallet widget session: the VASP picker an end user uses to say which exchange the funds go to.

Endpoint:
GET https://verification.didit.me/v3/travel-rule/widget/{token}/vasps/?search=<term>

Authentication:
None - the widget token in the URL path is the credential. Treat the token as a secret.

Query parameters: the same as GET /v3/travel-rule/vasps/ (search, network, jurisdiction, reachable, kind, limit, offset), answered for the widget's application.

What to read from each result:
- id, kind, name, lei, jurisdiction, domains - who the VASP is.
- reachable - whether the application can deliver Travel Rule data to it today.
Routes, contacts and due-diligence fields are not shown to the end user.

Failure modes:
- 400 - an unknown network or country code.
- 404 - unknown token.
- 410 - the session expired.

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


## OpenAPI

````yaml GET /v3/travel-rule/widget/{token}/vasps/
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/widget/{token}/vasps/:
    get:
      tags:
        - Travel Rule
      summary: Search VASPs from the wallet widget
      description: >-
        Public read endpoint keyed by the widget session token, no API key
        required: the VASP picker of the end user's widget. Same search and
        filters as GET /v3/travel-rule/vasps/ for the widget's application,
        answering only who each VASP is and whether it can be reached.
      operationId: listTravelRuleWidgetVasps
      parameters:
        - name: token
          in: path
          required: true
          description: Opaque session token returned when the widget session was minted.
          schema:
            type: string
        - name: search
          in: query
          schema:
            type: string
            maxLength: 255
          description: >-
            A name or alias fragment (case-insensitive), an exact LEI, or a
            domain (example.com or a URL on it). Didit network members match on
            their legal name, LEI or the domain of their compliance email.
        - name: network
          in: query
          schema:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
              - TRISA
          description: Only directory entries a network's member directory currently lists.
        - name: jurisdiction
          in: query
          schema:
            type: string
          description: ISO 3166 alpha-2 or alpha-3 country code. 400 for anything else.
        - name: reachable
          in: query
          schema:
            type: boolean
          description: >-
            true: only VASPs your application has an available route to (Didit
            network members included). false: only directory entries it cannot
            reach today.
        - name: kind
          in: query
          schema:
            type: string
            enum:
              - directory
              - didit
          description: Only directory entries, or only Didit network members.
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            minimum: 1
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
            minimum: 0
      responses:
        '200':
          description: Paginated, name-sorted results.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    nullable: true
                  previous:
                    type: string
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/VaspDirectoryWidgetEntry'
        '400':
          description: >-
            A filter is not valid: the body names each field, for example an
            unknown network or country code.
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: string
              example:
                jurisdiction:
                  - Use an ISO 3166 alpha-2 or alpha-3 country code.
                network:
                  - '"SWIFT" is not a valid choice.'
        '404':
          description: Unknown token.
        '410':
          description: The session expired.
      security: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl
            'https://verification.didit.me/v3/travel-rule/widget/{token}/vasps/?search=counterparty'
components:
  schemas:
    VaspDirectoryWidgetEntry:
      type: object
      description: >-
        What the end user's VASP picker shows: who the VASP is and whether it
        can be reached.
      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.

````

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