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

# Screen Sanctions

> Screen a name against all configured sanctions sources simultaneously.
Returns structured results with metadata, per-source hit counts, and match scores (0–1).

Unlike the `sanctionsScreening` option in `/search`, this endpoint lets you
screen any name independently — without running a full business search.
It also provides additional controls like `typoTolerance`, `nameVariants`,
`entityType` filtering, and `dateOfBirth` matching.

**Typical response time:** 2-5 seconds




## OpenAPI

````yaml /openapi.yaml post /sanctions
openapi: 3.1.0
info:
  title: Current Business Verification API
  version: 1.0.0
  description: >
    The Current API provides programmatic access to Canadian business
    verification services.


    ## Authentication

    All API requests require authentication via API key. Include your key using
    one of these methods:

    - `Authorization: Bearer cur_live_xxxxx` (recommended)

    - `X-API-Key: cur_live_xxxxx`


    ## Rate Limits

    All endpoints are rate limited to **60 requests per minute** per API key.


    Rate limit headers are included in all responses:

    - `X-RateLimit-Limit`: Maximum requests allowed in current window

    - `X-RateLimit-Remaining`: Remaining requests in current window

    - `X-RateLimit-Reset`: Unix timestamp when the rate limit resets


    ## Request IDs

    All responses include an `X-Request-Id` header for traceability.

    You can provide your own via the `X-Request-Id` request header; otherwise
    one is generated automatically.

    Include this ID when contacting support about a specific request.
  contact:
    name: Current Support
    url: https://getcurrent.ca
  license:
    name: Proprietary
servers:
  - url: https://api.getcurrent.ca/v1
    description: Production
security:
  - bearerAuth: []
  - apiKeyHeader: []
tags:
  - name: Search
    description: Business verification search operations
  - name: Pre-fill
    description: Fast typeahead lookup of canonical business candidates
  - name: Generate PDF
    description: PDF report generation
  - name: Business Reports
    description: Business report operations
  - name: Sanctions
    description: Standalone sanctions screening operations
  - name: Verification
    description: Business verification operations
  - name: Businesses
    description: >-
      Business record sync (list/read as a change feed, upsert to keep records
      current)
paths:
  /sanctions:
    post:
      tags:
        - Sanctions
      summary: Screen Sanctions
      description: >
        Screen a name against all configured sanctions sources simultaneously.

        Returns structured results with metadata, per-source hit counts, and
        match scores (0–1).


        Unlike the `sanctionsScreening` option in `/search`, this endpoint lets
        you

        screen any name independently — without running a full business search.

        It also provides additional controls like `typoTolerance`,
        `nameVariants`,

        `entityType` filtering, and `dateOfBirth` matching.


        **Typical response time:** 2-5 seconds
      operationId: screenSanctions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SanctionsSearchRequest'
            examples:
              basic:
                summary: Basic sanctions screen
                value:
                  query: Vladimir Putin
              filtered:
                summary: Filter by entity type and country
                value:
                  query: Acme Corp
                  entityType: entity
                  countries:
                    - RU
                    - IR
              strict:
                summary: Exact matching (no typo tolerance)
                value:
                  query: John Smith
                  typoTolerance: 0
                  nameVariants: false
                  dateOfBirth: '1970-01-15'
      responses:
        '200':
          description: Sanctions screening results
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SanctionsSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - bearerAuth: []
        - apiKeyHeader: []
components:
  schemas:
    SanctionsSearchRequest:
      type: object
      required:
        - query
      properties:
        query:
          type: string
          description: Name of the person or entity to screen
          example: Vladimir Putin
        typoTolerance:
          type: integer
          enum:
            - 0
            - 1
            - 2
          default: 1
          description: >
            Number of character edits allowed when matching names. `0` = exact
            match only, `1` = one edit (default), `2` = two edits.
        nameVariants:
          type: boolean
          default: true
          description: Whether to also search common name variants and transliterations
        entityType:
          type: string
          enum:
            - individual
            - entity
            - vessel
            - aircraft
          description: Filter results to a specific entity type
        countries:
          type: array
          items:
            type: string
          description: Filter by ISO2 country codes (e.g. ["US", "RU"])
          example:
            - RU
        sources:
          type: array
          items:
            type: string
            enum:
              - us-sanctions-ofac-sdn
              - us-sanctions-ofac-consolidated
              - ca-sanctions-terrorist-entities
              - ca-sanctions-autonomous
              - eu-sanctions-consolidated
              - uk-sanctions-list
              - un-sanctions-consolidated
              - nl-sanctions-terrorism
              - au-sanctions-consolidated
              - ch-seco-sanctions
          description: >-
            Limit search to specific sanctions lists. Searches all sources when
            omitted.
        dateOfBirth:
          type: string
          description: Date of birth in YYYY-MM-DD format (partial dates accepted)
          example: '1970-01-15'
    SanctionsSearchResponse:
      type: object
      required:
        - meta
        - screening
        - sourceCounts
      description: >-
        Standalone sanctions screening results with metadata, structured
        matches, and per-source hit counts
      properties:
        meta:
          type: object
          required:
            - screeningId
            - screenedAt
            - duration
            - status
            - submitted
          properties:
            screeningId:
              type: string
              format: uuid
              description: Unique screening identifier
            screenedAt:
              type: string
              format: date-time
              description: When the screening was executed
            duration:
              type: integer
              minimum: 0
              description: Screening duration in milliseconds
            status:
              type: string
              enum:
                - completed
                - error
              description: Whether the screening completed successfully
            submitted:
              type: object
              required:
                - query
              description: Echo of the request parameters with defaults applied
              properties:
                query:
                  type: string
                  description: The name that was screened
                typoTolerance:
                  type: integer
                  enum:
                    - 0
                    - 1
                    - 2
                nameVariants:
                  type: boolean
                entityType:
                  type: string
                countries:
                  type: array
                  items:
                    type: string
                sources:
                  type: array
                  items:
                    type: string
                dateOfBirth:
                  type: string
        screening:
          type: object
          required:
            - query
            - totalMatches
            - matches
          description: Screening results with query echo and match count
          properties:
            query:
              type: string
              description: The name that was screened
            totalMatches:
              type: integer
              minimum: 0
              description: Total number of matched entities
            matches:
              type: array
              items:
                $ref: '#/components/schemas/SanctionsSearchResult'
              description: Matched entities sorted by match confidence (highest first)
        sourceCounts:
          type: object
          description: Number of matches found per sanctions source
          properties:
            ofacSdn:
              type: integer
            ofacConsolidated:
              type: integer
            caTerroristEntities:
              type: integer
            caAutonomousSanctions:
              type: integer
            euConsolidated:
              type: integer
            ukList:
              type: integer
            unConsolidated:
              type: integer
            nlTerrorism:
              type: integer
            auConsolidated:
              type: integer
            chSeco:
              type: integer
        errors:
          type: object
          nullable: true
          description: Error details when status is "error", null on success
          properties:
            code:
              type: string
              description: Machine-readable error code
            message:
              type: string
              description: Human-readable error description
            retryable:
              type: boolean
              description: Whether the operation can be retried
    SanctionsSearchResult:
      type: object
      description: A matched sanctions entity from the standalone screening endpoint
      properties:
        legalName:
          $ref: '#/components/schemas/SanctionsLegalName'
        alternateNames:
          type: array
          items:
            type: string
          description: Alternate names and aliases for the sanctioned entity
        entityType:
          type: string
          nullable: true
          description: Type of entity (individual, entity, vessel, aircraft)
        details:
          type: object
          description: Sanctions metadata for this match
          properties:
            source:
              type: string
              description: >-
                Sanctions list that flagged this entity (e.g.,
                "us-sanctions-ofac-sdn")
            countries:
              type: array
              items:
                type: string
              description: Countries associated with the sanctioned entity
            programs:
              type: array
              items:
                type: string
              description: Sanctions programs the entity is listed under
            identifiers:
              type: array
              items:
                type: string
              description: Passport numbers, tax IDs, and other identifying documents
            listingDate:
              type: string
              nullable: true
              description: When the entity was added to the sanctions list
            dateOfBirth:
              type: string
              nullable: true
              description: >-
                Date of birth (for individuals) — may be partial (YYYY or
                YYYY-MM)
            remarks:
              type: string
              nullable: true
              description: Additional notes from the sanctions source
        sourceUrls:
          type: array
          items:
            type: string
            format: uri
          description: Direct links to the entity record for human review
    ErrorResponse:
      type: object
      required:
        - error
        - code
      properties:
        error:
          type: string
          description: Human-readable error message
        code:
          type: string
          description: >
            Machine-readable error code. Present on every error response.
            Distinct from the per-source `APIError.code` values that appear
            inside a successful response's `meta.errors` object.
          enum:
            - MISSING_API_KEY
            - INVALID_API_KEY
            - REVOKED_API_KEY
            - EXPIRED_API_KEY
            - RATE_LIMITED
            - VALIDATION_ERROR
            - INVALID_JSON
            - NOT_FOUND
            - STALE_WRITE
            - CONFLICT
            - METHOD_NOT_ALLOWED
            - UNAUTHORIZED
            - SERVER_ERROR
            - INTERNAL_ERROR
          example: VALIDATION_ERROR
    SanctionsLegalName:
      type: object
      description: >
        Legal name for a sanctions match. Extends the base name/score with the
        specific alias that matched and per-name breakdown scores.
      required:
        - name
      properties:
        name:
          type: string
          description: The entity's primary name
        matchScore:
          type: number
          minimum: 0
          maximum: 1
          description: Best match confidence against the screened query (0–1)
        matchedName:
          type: string
          nullable: true
          description: The specific name/alias that produced the best score
        nameScores:
          type: array
          description: Per-name score breakdown across the entity's names and aliases
          items:
            type: object
            properties:
              name:
                type: string
              score:
                type: number
                minimum: 0
                maximum: 1
  headers:
    X-Request-Id:
      description: >-
        Unique request identifier for traceability. Echoes client-provided value
        or auto-generated UUID.
      schema:
        type: string
        format: uuid
        example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    X-RateLimit-Limit:
      description: Maximum requests per minute
      schema:
        type: integer
        example: 60
    X-RateLimit-Remaining:
      description: Remaining requests in current window
      schema:
        type: integer
        example: 58
    X-RateLimit-Reset:
      description: Unix timestamp when rate limit resets
      schema:
        type: integer
        example: 1702915200
  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: name is required and must be a non-empty string
            code: VALIDATION_ERROR
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            missing:
              value:
                error: >-
                  Missing API key. Provide via Authorization: Bearer <key> or
                  X-API-Key header.
                code: MISSING_API_KEY
            invalid:
              value:
                error: Invalid API key
                code: INVALID_API_KEY
            revoked:
              value:
                error: API key has been revoked
                code: REVOKED_API_KEY
            expired:
              value:
                error: API key has expired
                code: EXPIRED_API_KEY
    RateLimited:
      description: Rate limit exceeded
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          schema:
            type: integer
            example: 0
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        Retry-After:
          description: Seconds until rate limit resets
          schema:
            type: integer
            example: 60
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Rate limit exceeded. Try again in 60 seconds.
            code: RATE_LIMITED
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Internal server error
            code: SERVER_ERROR
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key as Bearer token: `Authorization: Bearer cur_live_xxxxx`'
    apiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: 'API key in header: `X-API-Key: cur_live_xxxxx`'

````