---
title: "Run a batch of analyses"
method: POST
path: "/analyses"
tags: ["Transaction Analyses"]
---

# Run a batch of analyses

`POST /analyses`

## Request

- Base URL: `https://aml-api.elliptic.co/v2`
- URL: `https://aml-api.elliptic.co/v2/analyses`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-access-key` and API key in header `x-access-sign` and API key in header `x-access-timestamp`

Performs a batch of analyses (the max batch size is 100). Responses will contain IDs of the newly created analyses.

Returned analyses will be **processing**, you must use the IDs returned to lookup the results later via [GET analyses/:id](#operation/getAnalysisById)

## Request body

- union[]: the analyses to request
  - union
    - HolisticAnalysisRequest
      - `subject` object, required
        - `asset` 'holistic', required: For holistic screening this should be set to holistic
        - `blockchain` 'holistic', required: For holistic screening this should be set to holistic
        - `type` 'transaction', required: the type of subject
        - `hash` string, required: the transaction hash
        - `output_type` 'address', required: which output type you are using to specify the output(s) you wish to analyse
        - `output_address` string, required: the address hash when using output_type address
      - `type` 'source_of_funds' | 'destination_of_funds', required: The type of analysis. The source_of_funds type is used to get details of the entities that have contributed funds to the transaction's source address, and calculate a risk score based on this exposure. This is referred to as "Deposit" in Navigator. The destination_of_funds type is used to get details of the entities that have received funds from the transaction's destination address, and calculate a risk score based on this exposure. This is referred to as "Withdrawal" in Navigator.
      - `customer_reference` string, required: a reference for the customer. Will create a new customer if one with a matching reference does not exist
    - UTXOBasedAnalysisRequest
      - `subject` object, required
        - `asset` 'BCH' | 'ZEN' | 'ZEC', required: the asset (either BCH, ZEN or ZEC) involved in the event
        - `blockchain` 'bitcoin_cash' | 'horizen' | 'zcash', required: the blockchain (either bitcoin_cash, horizen or zcash) of the asset submitted
        - `type` 'transaction', required: the type of subject
        - `hash` string, required: the transaction hash
        - `output_type` 'address', required: which output type you are using to specify the output(s) you wish to analyze
        - `output_address` string, required: the address hash when using output_type address. In order to analyze a UTXO transaction, you must specify the output(s) of that transaction which are relevant to your analysis. For example, if you are analysing a deposit into your service then you might want to specify the output address that belongs to your service. Or for a withdrawal, it might be the output address that your customer wants to send funds to. You can either specify the address or the zero-indexed output indices. When specifying the output(s) by indices, if the indices given reference multiple distinct addresses, the API will respond with an error.
      - `type` 'source_of_funds' | 'destination_of_funds', required: The type of analysis. The source_of_funds type is used to get details of the entities that have contributed funds to the transaction's source address, and calculate a risk score based on this exposure. This is referred to as "Deposit" in Navigator. The destination_of_funds type is used to get details of the entities that have received funds from the transaction's destination address, and calculate a risk score based on this exposure. This is referred to as "Withdrawal" in Navigator.
      - `customer_reference` string, required: a reference for the customer. Will create a new customer if one with a matching reference does not exist

## Response `200`

Successful analysis batch response

- object[]: details of each submitted analysis
  - `id` string, UUIDv4, required
  - `type` 'source_of_funds' | 'destination_of_funds', required: The type of analysis. The source_of_funds type is used to get details of the entities that have contributed funds to the transaction's source address, and calculate a risk score based on this exposure. This is referred to as "Deposit" in Navigator. The destination_of_funds type is used to get details of the entities that have received funds from the transaction's destination address, and calculate a risk score based on this exposure. This is referred to as "Withdrawal" in Navigator.
  - `subject` object, required
    - `asset` string, required: the asset involved in the event.
    - `blockchain` string: The blockchain the asset/address belongs to (optional)
    - `type` string, required: the type of subject. Currently, only 'transaction' is supported
    - `hash` string, required: the transaction hash
    - `output_type` 'address' | 'indices': which output type you are using to specify the output(s) you wish to analyse (BTC/LTC/BCH only)
    - `output_address` string: the address hash when using output_type address
    - `output_indices` number[]: the indices of outputs to be analysed when using output_type indices
    - `log_index` number: the log index of an ERC20 transacation
    - `id` string, UUIDv4: the UUID of the subject
  - `analysed_by` object, required: the actor who requested the analysis
    - `id` string, UUIDv4: the actor id
  - `analysed_at` string, date-time, required: the timestamp of when this analysis was completed
  - `customer` object, required
    - `id` string, UUIDv4: the UUIDv4 of the customer this analysis is associated with
    - `reference` string: the string reference that has been given to this customer
  - `created_at` string, date-time: ISO date time with time zone (UTC) of when the analysis was first analysed
  - `updated_at` string, date-time: ISO date time with time zone (UTC) of when the wallet analysis was last updated
  - `process_status` 'running' | 'complete' | 'error': the process status ('running','complete','error')
  - `process_status_id` 1 | 2 | 3: The screening process status. - A 1 number means the process status is running. - A 2 number means the process status is completed. - A 3 indicates the process status has an error.
  - `error` object, nullable: Property containing information about a failed screening, null unless process_status = 'error'
    - `message` string: error message
  - `workflow_status` WorkflowStatus (unresolved $ref)

## Other responses

- `207`: Contains a partial error
- `400`: Bad Request
- `401`: Not authenticated
- `403`: Not authorized
- `500`: Server Error

---

[API](https://skmtc.dev/elliptic/apis/aml-api-v2.md) - [All operations](https://skmtc.dev/elliptic/apis/aml-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/elliptic/apis/aml-api-v2/revisions/e0bcbfe65e14?raw)
