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

# Submit one or more addresses to be screened

> Returns whether each address provided has sanctions exposure. By default, the API is limited to 1 req/sec, and maximum of 100 req/day
For those who need more screens, you can request an API Key [here](https://www.trmlabs.com/products/sanctions). For users with API Keys, the API is limited to 1000 req/sec, and maximum of 100K req/day



## OpenAPI

````yaml /specs/sanctions-openapi.yaml post /public/v1/sanctions/screening
openapi: 3.0.3
info:
  title: TRM Sanctions API
  version: v1
  description: >-
    # Introduction


    The TRM API is organized around

    [REST](https://en.wikipedia.org/wiki/Representational_state_transfer).


    Our API has predictable resource-oriented URLs, accepts

    [form-encoded](<https://en.wikipedia.org/wiki/POST_(HTTP)#Use_for_submitting_web_forms>)

    request bodies, returns [JSON-encoded](http://www.json.org) responses, and

    uses standard HTTP response codes, authentication, and verbs.


    You can view code examples in the dark area to the right, and you can switch

    the programming language of the examples with the tabs in the top right.


    # Errors


    TRM uses conventional HTTP response codes to indicate the success or failure

    of an API request. In general: Codes in the `2xx` range indicate success.

    Codes in the `4xx` range indicate an error that failed given the information

    provided (e.g., a required parameter was omitted, etc.). Codes in the `5xx`

    range indicate an error with TRM's servers (these are rare).


    The TRM API uses the following error codes:


    | Error Code | Meaning |

    | ---------- |
    -----------------------------------------------------------------------------------------
    |

    | 400 | Bad Request -- Your request is invalid. |

    | 401 | Unauthorized -- Your API key is wrong. |

    | 404 | Not Found -- The specified resource could not be found. |

    | 405 | Method Not Allowed -- You tried to access an object with an invalid
    method. |

    | 406 | Not Acceptable -- You requested a format that isn't json. |

    | 429 | Too Many Requests -- You have exceeded your rate limit. See below
    for details on handling rate limits. |

    | 500 | Internal Server Error -- We had a problem with our server. Try again
    later. |

    | 503 | Service Unavailable -- We're temporarily offline for maintenance. 
    Please try again later. |



    # Rate Limiting


    Traffic to the TRM Sanctions API is rate limited.


    Requests that come in faster than this limit may receive an

    error response with HTTP status code 429. If you are seeing this response,

    the solution is to retry these requests after the suggested interval. In

    general, your application should meter requests to try to stay at or below

    the limit.


    Responses to TRM API requests include several headers to help you work with

    our rate limit. Responses with a 429 error will include a `Retry-After`

    header recommending a number of seconds to wait before retrying the request.


    By default, the API is limited to 1 req/sec, and maximum of 100 req/day. For
    those who need more screens, you can request an API Key
    [here](https://www.trmlabs.com/products/sanctions).


    1K request body limit


    ### Headers on a successful request


    ```

    HTTP/1.1 201 Created

    X-RateLimit-Limit: 10

    X-RateLimit-Remaining: 8

    X-RateLimit-Reset: 1613700051

    ```


    ### Headers on a rate-limited request


    ```

    HTTP/1.1 429 Too Many Requests

    X-RateLimit-Limit: 10

    X-RateLimit-Remaining: 0

    X-RateLimit-Reset: 1613700051

    Retry-After: 1

    ```


    # Data Usage & Service Improvement


    TRM logs and monitors API usage (such as request volume, endpoints called

    (including but not limited to blockchain address, IP address, timestamp,

    user browser information), error rates, and token activity). We use this

    information to operate and secure the service, prevent abuse, provide

    support, enforce rate limits/terms, and to develop, improve, and enhance TRM

    products and services.
  contact:
    email: contact@trmlabs.com
  license:
    name: Proprietary API
    url: http://www.trmlabs.com
  x-logo:
    url: https://static-assets.trmlabs.com/redoc/trm_icon_logo.svg
    backgroundColor: '#FFFFFF'
    altText: TRM Labs
    href: https://trmlabs.com/about
servers:
  - url: https://api.trmlabs.com
    description: TRM Labs Sanctions API
security:
  - organization_api_key: []
paths:
  /public/v1/sanctions/screening:
    post:
      tags:
        - Screening
      summary: Submit one or more addresses to be screened
      description: >-
        Returns whether each address provided has sanctions exposure. By
        default, the API is limited to 1 req/sec, and maximum of 100 req/day

        For those who need more screens, you can request an API Key
        [here](https://www.trmlabs.com/products/sanctions). For users with API
        Keys, the API is limited to 1000 req/sec, and maximum of 100K req/day
      operationId: PublicV1SanctionsScreeningPost
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              items:
                type: object
                additionalProperties: false
                required:
                  - address
                properties:
                  address:
                    type: string
                    example: 149w62rY42aZBox8fGcmqNsXUzSStKeq8C
      responses:
        '201':
          description: Address(es) screened
          content:
            application/json:
              schema:
                type: array
                minItems: 0
                items:
                  type: object
                  required:
                    - address
                    - isSanctioned
                  additionalProperties: false
                  properties:
                    address:
                      type: string
                      description: >-
                        The the initial address submitted to the API. This is
                        provided to help match the address in the response to
                        the address in the original request.
                      example: 149w62rY42aZBox8fGcmqNsXUzSStKeq8C
                    isSanctioned:
                      type: boolean
                      example: true
              example:
                - address: 149w62rY42aZBox8fGcmqNsXUzSStKeq8C
                  isSanctioned: true
components:
  securitySchemes:
    organization_api_key:
      description: >-
        Authentication is done via the API key, which you request
        [here](https://www.trmlabs.com/products/sanctions).

        Requests are authenticated using [HTTP Basic
        Auth](https://en.wikipedia.org/wiki/Basic_access_authentication). 
        Provide your API key as **both** the basic auth `username` and
        `password`.
      type: http
      scheme: basic

````