openapi: 3.0.3 info: title: sanctions.io Account Management API description: The sanctions.io API provides sanctions, PEP (politically exposed persons), and criminal watchlist screening for AML compliance. It covers the Screening API (v2.3) - real-time single search, batch screening of up to 10,000 records per request, adverse media search, data source listing, and full database export - and the Monitoring API (v3.1) for continuous monitoring with alerts, plus account management (tokens, company and webhook configuration, users, plans, usage). All requests require a Bearer API token in the Authorization header; the API version is selected with the Accept header, for example "application/json; version=2.3" (the adverse media endpoint requires version=3.0). Sign up for a self-serve 7-day free trial at https://api.sanctions.io/users/signup to obtain a key. version: '2.3' contact: name: sanctions.io url: https://www.sanctions.io email: info@sanctions.io termsOfService: https://www.sanctions.io/terms-of-service servers: - url: https://api.sanctions.io description: Production security: - bearerAuth: [] tags: - name: Account Management description: API tokens, company and webhook configuration, users, plans, and usage. paths: /tokens/: get: operationId: listApiTokens tags: - Account Management summary: List API tokens description: Lists the API tokens on your account. parameters: - $ref: '#/components/parameters/acceptVersion' responses: '200': description: List of API tokens. '401': $ref: '#/components/responses/Unauthorized' post: operationId: createApiToken tags: - Account Management summary: Create an API token description: Creates a new API token for your account. parameters: - $ref: '#/components/parameters/acceptVersion' responses: '201': description: API token created. '401': $ref: '#/components/responses/Unauthorized' /tokens/{token_key}: delete: operationId: deleteApiToken tags: - Account Management summary: Delete an API token description: Deletes (revokes) an API token by key. parameters: - $ref: '#/components/parameters/acceptVersion' - name: token_key in: path required: true description: The key of the token to delete. schema: type: string responses: '204': description: API token deleted. '401': $ref: '#/components/responses/Unauthorized' /company/: get: operationId: getCompany tags: - Account Management summary: Get company description: Retrieves your company details. parameters: - $ref: '#/components/parameters/acceptVersion' responses: '200': description: Company detail. '401': $ref: '#/components/responses/Unauthorized' put: operationId: editCompany tags: - Account Management summary: Edit company description: Updates your company details. parameters: - $ref: '#/components/parameters/acceptVersion' responses: '200': description: Company updated. '401': $ref: '#/components/responses/Unauthorized' /company/config/: get: operationId: getCompanyConfig tags: - Account Management summary: Get company config description: Retrieves the company configuration, including any registered webhook endpoint. parameters: - $ref: '#/components/parameters/acceptVersion' responses: '200': description: Company configuration. '401': $ref: '#/components/responses/Unauthorized' put: operationId: editCompanyConfig tags: - Account Management summary: Edit company config description: Updates the company configuration, including registering or changing the webhook endpoint URL. Webhook creation returns a hash_secret used to verify the SHA-256 x-sanctions-security signature on delivered events; the secret cannot be retrieved again later. parameters: - $ref: '#/components/parameters/acceptVersion' responses: '200': description: Company configuration updated. '401': $ref: '#/components/responses/Unauthorized' /user/: get: operationId: listCompanyUsers tags: - Account Management summary: List company users description: Lists the users on your company account, with pagination. parameters: - $ref: '#/components/parameters/acceptVersion' - $ref: '#/components/parameters/page' - name: page_size in: query required: false description: Number of users per page. schema: type: integer example: 25 responses: '200': description: Paginated list of users. '401': $ref: '#/components/responses/Unauthorized' post: operationId: inviteUser tags: - Account Management summary: Invite a user description: Invites a new user to your company account. parameters: - $ref: '#/components/parameters/acceptVersion' responses: '201': description: User invited. '401': $ref: '#/components/responses/Unauthorized' /user/{user_uuid}: get: operationId: getUser tags: - Account Management summary: Get a user description: Retrieves a company user by UUID. parameters: - $ref: '#/components/parameters/acceptVersion' - $ref: '#/components/parameters/userUuid' responses: '200': description: User detail. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateUser tags: - Account Management summary: Update a user description: Updates a company user by UUID. parameters: - $ref: '#/components/parameters/acceptVersion' - $ref: '#/components/parameters/userUuid' responses: '200': description: User updated. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteUser tags: - Account Management summary: Delete a user description: Deletes a company user by UUID. parameters: - $ref: '#/components/parameters/acceptVersion' - $ref: '#/components/parameters/userUuid' responses: '204': description: User deleted. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /plans/: get: operationId: manageSubscriptions tags: - Account Management summary: Manage subscriptions description: Retrieves the plan subscriptions on your account. parameters: - $ref: '#/components/parameters/acceptVersion' responses: '200': description: Plan subscriptions. '401': $ref: '#/components/responses/Unauthorized' /searches/count: get: operationId: listScreeningsCount tags: - Account Management summary: Count screenings description: Returns the count of screenings performed by your account, for usage tracking against plan volume. parameters: - $ref: '#/components/parameters/acceptVersion' responses: '200': description: Screening count. '401': $ref: '#/components/responses/Unauthorized' components: parameters: acceptVersion: name: Accept in: header required: false description: Selects the API version, e.g. "application/json; version=2.3". Without the header, version 1.0 is used by default. schema: type: string example: application/json; version=2.3 page: name: page in: query required: false description: Page number for paginated results. schema: type: integer example: 1 userUuid: name: user_uuid in: path required: true description: The user UUID. schema: type: string responses: NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Authentication credentials were not provided or are invalid. content: application/json: schema: $ref: '#/components/schemas/Error' example: detail: Authentication credentials were not provided. schemas: Error: type: object properties: detail: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: 'API token from the sanctions.io user portal, passed as "Authorization: Bearer {token}". The token may also be sent as a URL parameter, but the Authorization header is recommended.'