> ## 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's Entity Screening

> Read whether counterparty screening is on, what one screening costs, and your latest sanctions screening of a counterparty VASP.

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 Screening API Prompt"
  prompt={`Read my application's sanctions and adverse-media screening of a Travel Rule counterparty VASP, and whether I can run one.

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

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

vasp_id is the id GET /v3/travel-rule/vasps/ returns for a directory entry or a Didit network member.

What to read from the response:
- enabled - my counterparty_screening_enabled Travel Rule setting. Off by default: nothing is screened or billed while it is off.
- price - decimal string in USD: what one screening costs my organization (the Company AML Screening price).
- fresh_days - how long a screening stays fresh and is reused instead of billed again (30).
- screening - null when I never screened this counterparty; otherwise {id, status, total_hits, score, screened_at, fresh, flagged}.
- screening.status - Approved (no possible match needs attention), In Review or Declined (a possible sanctions or adverse-media match).
- screening.flagged - true while the screening is fresh and In Review or Declined. While my latest screening is flagged and screening stays on, my rules read counterparty_risk_level as HIGH for this counterparty.

The screening is private to my application: no other Didit customer sees it, and it never changes the shared directory entry.

Failure modes:
- 403 - my organization's contract has no rate configured for counterparty screening.
- 404 - no directory entry or listed Didit network member has this id, or the id is my own VASP profile.

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


## OpenAPI

````yaml GET /v3/travel-rule/vasps/{vasp_id}/screening/
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}/screening/:
    get:
      tags:
        - Travel Rule
      summary: Get a VASP's entity screening
      description: >-
        Whether counterparty screening is on for your application, what one
        screening costs your organization, how long a result stays fresh, and
        your latest sanctions and adverse-media screening of the counterparty.
        Reading it is free.
      operationId: getTravelRuleVaspScreening
      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/: a directory entry or
            a Didit network member.
      responses:
        '200':
          description: Your screening setting, its price and your latest screening.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleCounterpartyScreeningStatus'
              example:
                enabled: true
                price: '0.20'
                fresh_days: 30
                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
        '403':
          description: >-
            Your organization's contract has no rate configured for counterparty
            screening.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              example:
                detail: No contract rate is configured for this usage type.
        '404':
          description: >-
            No directory entry or listed Didit network member has this id. Your
            own VASP profile is never a counterparty of yours.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              example:
                detail: No directory entry or Didit network member 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}/screening/
            \
              -H 'x-api-key: YOUR_API_KEY'
components:
  schemas:
    TravelRuleCounterpartyScreeningStatus:
      type: object
      properties:
        enabled:
          type: boolean
          description: >-
            Your counterparty_screening_enabled Travel Rule setting. Off by
            default; nothing is screened or billed while it is off.
        price:
          type: string
          description: >-
            Decimal string, in USD: what one screening costs your organization,
            the Company AML Screening price.
        fresh_days:
          type: integer
          description: How many days a screening stays fresh and is reused.
        screening:
          allOf:
            - $ref: '#/components/schemas/TravelRuleCounterpartyScreening'
          nullable: true
          description: >-
            Your latest screening of the counterparty. Null when you never
            screened it.
    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.
  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.