# Adme

## Start an ADME prediction

**post** `/compute/v1/predictions/adme`

Submit a prediction job that returns Tier 1 ADME summary values for each requested molecule.

### Body Parameters

- `input: object { molecules }`

  - `molecules: array of object { smiles, id }`

    Molecules to score (1-128 per request). Results are returned in the same order as this list.

    - `smiles: string`

      SMILES string of the molecule to predict ADME properties for.

    - `id: optional string`

      Optional client-provided identifier. Returned as `external_id` in the matching output item.

- `model: "adme-v1"`

  Model to use for prediction

  - `"adme-v1"`

- `idempotency_key: optional string`

  Client-provided key to prevent duplicate submissions on retries

- `workspace_id: optional string`

  Target workspace ID (admin keys only; ignored for workspace keys)

### Returns

- `id: string`

  Unique prediction identifier

- `completed_at: string`

- `created_at: string`

- `data_deleted_at: string`

  When the input/output data was deleted, or null if still available

- `error: object { code, message, details }`

  Error details when failed

  - `code: string`

    Machine-readable error code

  - `message: string`

    Human-readable error message

  - `details: optional unknown`

    Additional field-level error details keyed by input path, when available.

- `expires_at: string`

  When this resource and its associated data will be permanently deleted. Null while still in progress.

- `input: object { molecules }`

  Prediction input (null if data deleted)

  - `molecules: array of object { smiles, id }`

    Molecules to score (1-128 per request). Results are returned in the same order as this list.

    - `smiles: string`

      SMILES string of the molecule to predict ADME properties for.

    - `id: optional string`

      Optional client-provided identifier. Returned as `external_id` in the matching output item.

- `livemode: boolean`

  Whether this resource was created with a live API key.

- `model: "adme-v1"`

  Model used for prediction

  - `"adme-v1"`

- `output: object { molecules }`

  Prediction output when succeeded

  - `molecules: array of object { id, adme, error, 3 more }  or object { id, adme, error, 3 more }`

    Per-molecule results in the same order as the request. Successful molecules carry an `adme` summary. Failed molecules carry `status: "failed"` and a non-null `error`.

    - `AdmeMoleculeSucceeded object { id, adme, error, 3 more }`

      - `id: string`

        Internally generated molecule identifier.

      - `adme: object { lipophilicity, permeability, solubility }`

        Tier 1 ADME summary values for this molecule.

        - `lipophilicity: number`

          Lipophilicity score from the internal LogD prediction.

        - `permeability: number`

          Permeability score for this molecule.

        - `solubility: "high-confidence" or "medium-confidence" or "high-risk"`

          Solubility judgement for this molecule.

          - `"high-confidence"`

          - `"medium-confidence"`

          - `"high-risk"`

      - `error: unknown`

      - `smiles: string`

        Echoed SMILES from the request.

      - `status: "succeeded"`

        - `"succeeded"`

      - `external_id: optional string`

        Client-provided molecule identifier, if one was supplied.

    - `AdmeMoleculeFailed object { id, adme, error, 3 more }`

      - `id: string`

        Internally generated molecule identifier.

      - `adme: unknown`

      - `error: object { code, message, details }`

        - `code: string`

          Machine-readable error code

        - `message: string`

          Human-readable error message

        - `details: optional unknown`

          Additional field-level error details keyed by input path, when available.

      - `smiles: string`

        Echoed SMILES from the request.

      - `status: "failed"`

        - `"failed"`

      - `external_id: optional string`

        Client-provided molecule identifier, if one was supplied.

- `started_at: string`

- `status: "pending" or "running" or "succeeded" or "failed"`

  - `"pending"`

  - `"running"`

  - `"succeeded"`

  - `"failed"`

- `version: string`

  Model version used for prediction

- `workspace_id: string`

  Workspace ID

- `idempotency_key: optional string`

  Client-provided idempotency key

### Example

```http
curl https://api.boltz.bio/compute/v1/predictions/adme \
    -H 'Content-Type: application/json' \
    -H "x-api-key: $BOLTZ_API_KEY" \
    -d '{
          "input": {
            "molecules": [
              {
                "smiles": "x"
              }
            ]
          },
          "model": "adme-v1"
        }'
```

#### Response

```json
{
  "id": "id",
  "completed_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "data_deleted_at": "2019-12-27T18:11:19.117Z",
  "error": {
    "code": "code",
    "message": "message",
    "details": {}
  },
  "expires_at": "2019-12-27T18:11:19.117Z",
  "input": {
    "molecules": [
      {
        "smiles": "x",
        "id": "x"
      }
    ]
  },
  "livemode": true,
  "model": "adme-v1",
  "output": {
    "molecules": [
      {
        "id": "id",
        "adme": {
          "lipophilicity": 0,
          "permeability": 0,
          "solubility": "high-confidence"
        },
        "error": null,
        "smiles": "smiles",
        "status": "succeeded",
        "external_id": "external_id"
      }
    ]
  },
  "started_at": "2019-12-27T18:11:19.117Z",
  "status": "pending",
  "version": "version",
  "workspace_id": "workspace_id",
  "idempotency_key": "idempotency_key"
}
```

## List ADME predictions

**get** `/compute/v1/predictions/adme`

List ADME predictions, optionally filtered by workspace

### Query Parameters

- `after_id: optional string`

  Return results after this ID

- `before_id: optional string`

  Return results before this ID

- `limit: optional number`

  Max items to return. Defaults to 100.

- `workspace_id: optional string`

  Filter by workspace ID. Only used with admin API keys. If not provided, defaults to the workspace associated with the API key, or the default workspace for admin keys.

### Returns

- `data: array of object { id, completed_at, created_at, 10 more }`

  - `id: string`

    Unique prediction identifier

  - `completed_at: string`

  - `created_at: string`

  - `data_deleted_at: string`

    When the input/output data was deleted, or null if still available

  - `error: object { code, message, details }`

    Error details when failed

    - `code: string`

      Machine-readable error code

    - `message: string`

      Human-readable error message

    - `details: optional unknown`

      Additional field-level error details keyed by input path, when available.

  - `expires_at: string`

    When this resource and its associated data will be permanently deleted. Null while still in progress.

  - `livemode: boolean`

    Whether this resource was created with a live API key.

  - `model: "adme-v1"`

    Model used for prediction

    - `"adme-v1"`

  - `started_at: string`

  - `status: "pending" or "running" or "succeeded" or "failed"`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

  - `version: string`

    Model version used for prediction

  - `workspace_id: string`

    Workspace ID

  - `idempotency_key: optional string`

    Client-provided idempotency key

- `first_id: string`

  ID of the first item. Use as before_id for the previous page.

- `has_more: boolean`

- `last_id: string`

  ID of the last item. Use as after_id for the next page.

### Example

```http
curl https://api.boltz.bio/compute/v1/predictions/adme \
    -H "x-api-key: $BOLTZ_API_KEY"
```

#### Response

```json
{
  "data": [
    {
      "id": "id",
      "completed_at": "2019-12-27T18:11:19.117Z",
      "created_at": "2019-12-27T18:11:19.117Z",
      "data_deleted_at": "2019-12-27T18:11:19.117Z",
      "error": {
        "code": "code",
        "message": "message",
        "details": {}
      },
      "expires_at": "2019-12-27T18:11:19.117Z",
      "livemode": true,
      "model": "adme-v1",
      "started_at": "2019-12-27T18:11:19.117Z",
      "status": "pending",
      "version": "version",
      "workspace_id": "workspace_id",
      "idempotency_key": "idempotency_key"
    }
  ],
  "first_id": "first_id",
  "has_more": true,
  "last_id": "last_id"
}
```

## Retrieve an ADME prediction

**get** `/compute/v1/predictions/adme/{id}`

Retrieve an ADME prediction by ID, including its status and results.

### Path Parameters

- `id: string`

### Query Parameters

- `workspace_id: optional string`

  Workspace ID. Only used with admin API keys. Ignored (or validated) for workspace-scoped keys.

### Returns

- `id: string`

  Unique prediction identifier

- `completed_at: string`

- `created_at: string`

- `data_deleted_at: string`

  When the input/output data was deleted, or null if still available

- `error: object { code, message, details }`

  Error details when failed

  - `code: string`

    Machine-readable error code

  - `message: string`

    Human-readable error message

  - `details: optional unknown`

    Additional field-level error details keyed by input path, when available.

- `expires_at: string`

  When this resource and its associated data will be permanently deleted. Null while still in progress.

- `input: object { molecules }`

  Prediction input (null if data deleted)

  - `molecules: array of object { smiles, id }`

    Molecules to score (1-128 per request). Results are returned in the same order as this list.

    - `smiles: string`

      SMILES string of the molecule to predict ADME properties for.

    - `id: optional string`

      Optional client-provided identifier. Returned as `external_id` in the matching output item.

- `livemode: boolean`

  Whether this resource was created with a live API key.

- `model: "adme-v1"`

  Model used for prediction

  - `"adme-v1"`

- `output: object { molecules }`

  Prediction output when succeeded

  - `molecules: array of object { id, adme, error, 3 more }  or object { id, adme, error, 3 more }`

    Per-molecule results in the same order as the request. Successful molecules carry an `adme` summary. Failed molecules carry `status: "failed"` and a non-null `error`.

    - `AdmeMoleculeSucceeded object { id, adme, error, 3 more }`

      - `id: string`

        Internally generated molecule identifier.

      - `adme: object { lipophilicity, permeability, solubility }`

        Tier 1 ADME summary values for this molecule.

        - `lipophilicity: number`

          Lipophilicity score from the internal LogD prediction.

        - `permeability: number`

          Permeability score for this molecule.

        - `solubility: "high-confidence" or "medium-confidence" or "high-risk"`

          Solubility judgement for this molecule.

          - `"high-confidence"`

          - `"medium-confidence"`

          - `"high-risk"`

      - `error: unknown`

      - `smiles: string`

        Echoed SMILES from the request.

      - `status: "succeeded"`

        - `"succeeded"`

      - `external_id: optional string`

        Client-provided molecule identifier, if one was supplied.

    - `AdmeMoleculeFailed object { id, adme, error, 3 more }`

      - `id: string`

        Internally generated molecule identifier.

      - `adme: unknown`

      - `error: object { code, message, details }`

        - `code: string`

          Machine-readable error code

        - `message: string`

          Human-readable error message

        - `details: optional unknown`

          Additional field-level error details keyed by input path, when available.

      - `smiles: string`

        Echoed SMILES from the request.

      - `status: "failed"`

        - `"failed"`

      - `external_id: optional string`

        Client-provided molecule identifier, if one was supplied.

- `started_at: string`

- `status: "pending" or "running" or "succeeded" or "failed"`

  - `"pending"`

  - `"running"`

  - `"succeeded"`

  - `"failed"`

- `version: string`

  Model version used for prediction

- `workspace_id: string`

  Workspace ID

- `idempotency_key: optional string`

  Client-provided idempotency key

### Example

```http
curl https://api.boltz.bio/compute/v1/predictions/adme/$ID \
    -H "x-api-key: $BOLTZ_API_KEY"
```

#### Response

```json
{
  "id": "id",
  "completed_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "data_deleted_at": "2019-12-27T18:11:19.117Z",
  "error": {
    "code": "code",
    "message": "message",
    "details": {}
  },
  "expires_at": "2019-12-27T18:11:19.117Z",
  "input": {
    "molecules": [
      {
        "smiles": "x",
        "id": "x"
      }
    ]
  },
  "livemode": true,
  "model": "adme-v1",
  "output": {
    "molecules": [
      {
        "id": "id",
        "adme": {
          "lipophilicity": 0,
          "permeability": 0,
          "solubility": "high-confidence"
        },
        "error": null,
        "smiles": "smiles",
        "status": "succeeded",
        "external_id": "external_id"
      }
    ]
  },
  "started_at": "2019-12-27T18:11:19.117Z",
  "status": "pending",
  "version": "version",
  "workspace_id": "workspace_id",
  "idempotency_key": "idempotency_key"
}
```

## Delete ADME prediction data

**post** `/compute/v1/predictions/adme/{id}/delete-data`

Permanently delete the input, output, and result data associated with this prediction. The prediction record itself is retained with a `data_deleted_at` timestamp. This action is irreversible.

### Path Parameters

- `id: string`

### Returns

- `id: string`

  ID of the resource whose data was deleted

- `data_deleted: true`

  - `true`

- `data_deleted_at: string`

  When the data was deleted

### Example

```http
curl https://api.boltz.bio/compute/v1/predictions/adme/$ID/delete-data \
    -X POST \
    -H "x-api-key: $BOLTZ_API_KEY"
```

#### Response

```json
{
  "id": "id",
  "data_deleted": true,
  "data_deleted_at": "2019-12-27T18:11:19.117Z"
}
```

## Estimate cost for an ADME prediction

**post** `/compute/v1/predictions/adme/estimate-cost`

Estimate the cost of an ADME prediction without creating any resource or consuming GPU.

### Body Parameters

- `input: object { molecules }`

  - `molecules: array of object { smiles, id }`

    Molecules to score (1-128 per request). Results are returned in the same order as this list.

    - `smiles: string`

      SMILES string of the molecule to predict ADME properties for.

    - `id: optional string`

      Optional client-provided identifier. Returned as `external_id` in the matching output item.

- `model: "adme-v1"`

  Model to use for prediction

  - `"adme-v1"`

- `idempotency_key: optional string`

  Client-provided key to prevent duplicate submissions on retries

- `workspace_id: optional string`

  Target workspace ID (admin keys only; ignored for workspace keys)

### Returns

- `breakdown: object { application, cost_per_unit_usd, num_units }`

  Cost breakdown for the billed application.

  - `application: "structure_and_binding" or "small_molecule_design" or "small_molecule_library_screen" or 4 more`

    - `"structure_and_binding"`

    - `"small_molecule_design"`

    - `"small_molecule_library_screen"`

    - `"protein_design"`

    - `"protein_redesign"`

    - `"protein_library_screen"`

    - `"adme"`

  - `cost_per_unit_usd: string`

    Estimated cost per displayed unit as a decimal string, rounded up to 4 decimal places. This may include token-size multipliers or generation overhead; estimated_cost_usd is the authoritative total.

  - `num_units: number`

    Number of billable units in the estimate. The unit depends on the endpoint: samples for structure-and-binding, molecules for ADME, and requested proteins or molecules for design/screen endpoints.

- `disclaimer: string`

- `estimated_cost_usd: string`

  Estimated total cost as a decimal string

### Example

```http
curl https://api.boltz.bio/compute/v1/predictions/adme/estimate-cost \
    -H 'Content-Type: application/json' \
    -H "x-api-key: $BOLTZ_API_KEY" \
    -d '{
          "input": {
            "molecules": [
              {
                "smiles": "x"
              }
            ]
          },
          "model": "adme-v1"
        }'
```

#### Response

```json
{
  "breakdown": {
    "application": "structure_and_binding",
    "cost_per_unit_usd": "0.0500",
    "num_units": 1
  },
  "disclaimer": "This is an estimate only and may differ from your actual charges. Final billing is based on exact token counts computed at run time. For large library screens, the estimate is extrapolated from a sample and may be less accurate for highly variable inputs.",
  "estimated_cost_usd": "0.0500"
}
```

## Domain Types

### Adme Start Response

- `AdmeStartResponse object { id, completed_at, created_at, 12 more }`

  - `id: string`

    Unique prediction identifier

  - `completed_at: string`

  - `created_at: string`

  - `data_deleted_at: string`

    When the input/output data was deleted, or null if still available

  - `error: object { code, message, details }`

    Error details when failed

    - `code: string`

      Machine-readable error code

    - `message: string`

      Human-readable error message

    - `details: optional unknown`

      Additional field-level error details keyed by input path, when available.

  - `expires_at: string`

    When this resource and its associated data will be permanently deleted. Null while still in progress.

  - `input: object { molecules }`

    Prediction input (null if data deleted)

    - `molecules: array of object { smiles, id }`

      Molecules to score (1-128 per request). Results are returned in the same order as this list.

      - `smiles: string`

        SMILES string of the molecule to predict ADME properties for.

      - `id: optional string`

        Optional client-provided identifier. Returned as `external_id` in the matching output item.

  - `livemode: boolean`

    Whether this resource was created with a live API key.

  - `model: "adme-v1"`

    Model used for prediction

    - `"adme-v1"`

  - `output: object { molecules }`

    Prediction output when succeeded

    - `molecules: array of object { id, adme, error, 3 more }  or object { id, adme, error, 3 more }`

      Per-molecule results in the same order as the request. Successful molecules carry an `adme` summary. Failed molecules carry `status: "failed"` and a non-null `error`.

      - `AdmeMoleculeSucceeded object { id, adme, error, 3 more }`

        - `id: string`

          Internally generated molecule identifier.

        - `adme: object { lipophilicity, permeability, solubility }`

          Tier 1 ADME summary values for this molecule.

          - `lipophilicity: number`

            Lipophilicity score from the internal LogD prediction.

          - `permeability: number`

            Permeability score for this molecule.

          - `solubility: "high-confidence" or "medium-confidence" or "high-risk"`

            Solubility judgement for this molecule.

            - `"high-confidence"`

            - `"medium-confidence"`

            - `"high-risk"`

        - `error: unknown`

        - `smiles: string`

          Echoed SMILES from the request.

        - `status: "succeeded"`

          - `"succeeded"`

        - `external_id: optional string`

          Client-provided molecule identifier, if one was supplied.

      - `AdmeMoleculeFailed object { id, adme, error, 3 more }`

        - `id: string`

          Internally generated molecule identifier.

        - `adme: unknown`

        - `error: object { code, message, details }`

          - `code: string`

            Machine-readable error code

          - `message: string`

            Human-readable error message

          - `details: optional unknown`

            Additional field-level error details keyed by input path, when available.

        - `smiles: string`

          Echoed SMILES from the request.

        - `status: "failed"`

          - `"failed"`

        - `external_id: optional string`

          Client-provided molecule identifier, if one was supplied.

  - `started_at: string`

  - `status: "pending" or "running" or "succeeded" or "failed"`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

  - `version: string`

    Model version used for prediction

  - `workspace_id: string`

    Workspace ID

  - `idempotency_key: optional string`

    Client-provided idempotency key

### Adme List Response

- `AdmeListResponse object { id, completed_at, created_at, 10 more }`

  - `id: string`

    Unique prediction identifier

  - `completed_at: string`

  - `created_at: string`

  - `data_deleted_at: string`

    When the input/output data was deleted, or null if still available

  - `error: object { code, message, details }`

    Error details when failed

    - `code: string`

      Machine-readable error code

    - `message: string`

      Human-readable error message

    - `details: optional unknown`

      Additional field-level error details keyed by input path, when available.

  - `expires_at: string`

    When this resource and its associated data will be permanently deleted. Null while still in progress.

  - `livemode: boolean`

    Whether this resource was created with a live API key.

  - `model: "adme-v1"`

    Model used for prediction

    - `"adme-v1"`

  - `started_at: string`

  - `status: "pending" or "running" or "succeeded" or "failed"`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

  - `version: string`

    Model version used for prediction

  - `workspace_id: string`

    Workspace ID

  - `idempotency_key: optional string`

    Client-provided idempotency key

### Adme Retrieve Response

- `AdmeRetrieveResponse object { id, completed_at, created_at, 12 more }`

  - `id: string`

    Unique prediction identifier

  - `completed_at: string`

  - `created_at: string`

  - `data_deleted_at: string`

    When the input/output data was deleted, or null if still available

  - `error: object { code, message, details }`

    Error details when failed

    - `code: string`

      Machine-readable error code

    - `message: string`

      Human-readable error message

    - `details: optional unknown`

      Additional field-level error details keyed by input path, when available.

  - `expires_at: string`

    When this resource and its associated data will be permanently deleted. Null while still in progress.

  - `input: object { molecules }`

    Prediction input (null if data deleted)

    - `molecules: array of object { smiles, id }`

      Molecules to score (1-128 per request). Results are returned in the same order as this list.

      - `smiles: string`

        SMILES string of the molecule to predict ADME properties for.

      - `id: optional string`

        Optional client-provided identifier. Returned as `external_id` in the matching output item.

  - `livemode: boolean`

    Whether this resource was created with a live API key.

  - `model: "adme-v1"`

    Model used for prediction

    - `"adme-v1"`

  - `output: object { molecules }`

    Prediction output when succeeded

    - `molecules: array of object { id, adme, error, 3 more }  or object { id, adme, error, 3 more }`

      Per-molecule results in the same order as the request. Successful molecules carry an `adme` summary. Failed molecules carry `status: "failed"` and a non-null `error`.

      - `AdmeMoleculeSucceeded object { id, adme, error, 3 more }`

        - `id: string`

          Internally generated molecule identifier.

        - `adme: object { lipophilicity, permeability, solubility }`

          Tier 1 ADME summary values for this molecule.

          - `lipophilicity: number`

            Lipophilicity score from the internal LogD prediction.

          - `permeability: number`

            Permeability score for this molecule.

          - `solubility: "high-confidence" or "medium-confidence" or "high-risk"`

            Solubility judgement for this molecule.

            - `"high-confidence"`

            - `"medium-confidence"`

            - `"high-risk"`

        - `error: unknown`

        - `smiles: string`

          Echoed SMILES from the request.

        - `status: "succeeded"`

          - `"succeeded"`

        - `external_id: optional string`

          Client-provided molecule identifier, if one was supplied.

      - `AdmeMoleculeFailed object { id, adme, error, 3 more }`

        - `id: string`

          Internally generated molecule identifier.

        - `adme: unknown`

        - `error: object { code, message, details }`

          - `code: string`

            Machine-readable error code

          - `message: string`

            Human-readable error message

          - `details: optional unknown`

            Additional field-level error details keyed by input path, when available.

        - `smiles: string`

          Echoed SMILES from the request.

        - `status: "failed"`

          - `"failed"`

        - `external_id: optional string`

          Client-provided molecule identifier, if one was supplied.

  - `started_at: string`

  - `status: "pending" or "running" or "succeeded" or "failed"`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

  - `version: string`

    Model version used for prediction

  - `workspace_id: string`

    Workspace ID

  - `idempotency_key: optional string`

    Client-provided idempotency key

### Adme Delete Data Response

- `AdmeDeleteDataResponse object { id, data_deleted, data_deleted_at }`

  - `id: string`

    ID of the resource whose data was deleted

  - `data_deleted: true`

    - `true`

  - `data_deleted_at: string`

    When the data was deleted

### Adme Estimate Cost Response

- `AdmeEstimateCostResponse object { breakdown, disclaimer, estimated_cost_usd }`

  Estimate response with monetary values encoded as decimal strings to preserve precision.

  - `breakdown: object { application, cost_per_unit_usd, num_units }`

    Cost breakdown for the billed application.

    - `application: "structure_and_binding" or "small_molecule_design" or "small_molecule_library_screen" or 4 more`

      - `"structure_and_binding"`

      - `"small_molecule_design"`

      - `"small_molecule_library_screen"`

      - `"protein_design"`

      - `"protein_redesign"`

      - `"protein_library_screen"`

      - `"adme"`

    - `cost_per_unit_usd: string`

      Estimated cost per displayed unit as a decimal string, rounded up to 4 decimal places. This may include token-size multipliers or generation overhead; estimated_cost_usd is the authoritative total.

    - `num_units: number`

      Number of billable units in the estimate. The unit depends on the endpoint: samples for structure-and-binding, molecules for ADME, and requested proteins or molecules for design/screen endpoints.

  - `disclaimer: string`

  - `estimated_cost_usd: string`

    Estimated total cost as a decimal string
