---
title: "List session packages"
description: "Use the organization gMedic account. Read-only request; provider failures are never empty results.\n\n- **Scope:** `gmedic:sessions:read`\n- **Credentials:** an API key, a client-credentials token or a person's access token\n- **Effect:** read-only; safe to retry\n- **Limits:** response up to 256 KB\n- **CLI:** `arbol gmedic session-packages list` · **MCP tool:** `gmedic_session_packages_list`"
---

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

Path: gMedic API › Session packages

`GET /v1/gmedic/session-packages`

Use the organization gMedic account. Read-only request; provider failures are never empty results.

- **Scope:** `gmedic:sessions:read`
- **Credentials:** an API key, a client-credentials token or a person's access token
- **Effect:** read-only; safe to retry
- **Limits:** response up to 256 KB
- **CLI:** `arbol gmedic session-packages list` · **MCP tool:** `gmedic_session_packages_list`

## Authentication

Requires one of the following:

- `arbolHuman`, oauth2, scopes: `gmedic:sessions:read`
- `arbolMachine`, oauth2, scopes: `gmedic:sessions:read`
- `arbolApiKey`, http, header `Authorization`

## Query parameters

- `cursor` (`gmedic.sessionPackages.list.query.cursor`; string, optional) — Opaque cursor returned by pageInfo; omit it to request the first page.
- `direction` (`gmedic.sessionPackages.list.query.direction`; string, optional) — Direction to traverse the stable keyset ordering from the supplied cursor.
  - one of `"forward"`, `"backward"`; default `"forward"`
- `limit` (`gmedic.sessionPackages.list.query.limit`; integer, optional) — Maximum items returned in one page. Defaults to 25; larger reads require another cursor.
  - min 1; max 100; default `25`
- `authorization` (`gmedic.sessionPackages.list.query.authorization`; string, optional) — The authorization.
  - maxLength 20000
- `sessionPackageId` (`gmedic.sessionPackages.list.query.sessionPackageId`; string, optional) — The session package id.
  - pattern `^[1-9][0-9]{0,14}$`
- `patientId` (`gmedic.sessionPackages.list.query.patientId`; string, optional) — The patient id.
  - pattern `^[1-9][0-9]{0,14}$`
- `connectionId` (`gmedic.sessionPackages.list.query.connectionId`; string, optional) — The connection id.
  - pattern `^con_[0-9A-Za-z]{26}$`
- `id` (`gmedic.sessionPackages.list.query.id`; string, optional) — Deprecated: use `sessionPackageId`. Answered until 2027-01-28.
  - pattern `^[1-9][0-9]{0,14}$`

## Code samples

### cURL

```bash
curl https://api.getarbol.com/v1/gmedic/session-packages \
  --header "Authorization: Bearer $ARBOL_API_KEY"
```

### TypeScript

```typescript
import { createClient } from "@arbol-ai/sdk";

const arbol = createClient({
  baseUrl: "https://api.getarbol.com",
  token: process.env.ARBOL_API_KEY!,
});

const { data } = await arbol.gmedic.sessionPackages.list();
```

### Rust

```rust
use arbol_sdk::{types, Client, Credential};

let arbol = Client::new(Credential::ApiKey(std::env::var("ARBOL_API_KEY")?))?;

let data = arbol
    .gmedic()
    .session_packages()
    .list(&types::GmedicSessionPackagesListInput::default())
    .await?;
```

### CLI

```bash
arbol gmedic session-packages list
```

### MCP

```json
{
  "name": "gmedic_session_packages_list",
  "arguments": {}
}
```

## Responses

### 200

Successful operation.

#### Example

```json
{
  "success": true,
  "data": {
    "data": [
      {
        "id": "string",
        "key": "string",
        "createdAt": "string",
        "creationDate": "string",
        "updatedAt": "string",
        "modificationDate": "string",
        "number": "string",
        "healthPartner": "string",
        "patientId": "string",
        "patientDocumentType": {
          "id": "string",
          "name": "string",
          "label": "string",
          "value": "string"
        },
        "patientDocumentNumber": "string",
        "patientFirstName": "string",
        "patientLastName": "string",
        "billingService": "string",
        "billingServiceId": "string",
        "issueDate": "string",
        "expirationDate": "string",
        "active": true,
        "maxSessions": 0,
        "currentSessions": 0,
        "availableSessions": 0,
        "invoice": "string",
        "invoiceId": "string",
        "documentId": "string"
      }
    ],
    "object": "list",
    "pageInfo": {
      "hasNextPage": true,
      "hasPreviousPage": true,
      "nextCursor": "string",
      "previousCursor": "string"
    }
  },
  "error": null,
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.200.success`; boolean, required)
  - one of `true`
- `data` (`gmedic.sessionPackages.list.response.200.data`; object, required)
  - `data` (`gmedic.sessionPackages.list.response.200.data.data`; array<object>, required) — Items admitted by this resource contract within the verified organization.
    - `id` (`gmedic.sessionPackages.list.response.200.data.data.id`; string, required)
      - pattern `^[1-9][0-9]{0,14}$`
    - `key` (`gmedic.sessionPackages.list.response.200.data.data.key`; string | null, optional)
      - maxLength 20000
    - `createdAt` (`gmedic.sessionPackages.list.response.200.data.data.createdAt`; string | null, optional)
      - maxLength 20000
    - `creationDate` (`gmedic.sessionPackages.list.response.200.data.data.creationDate`; string | null, optional, deprecated) — Deprecated: use `createdAt`. Answered until 2027-01-28.
      - maxLength 20000
    - `updatedAt` (`gmedic.sessionPackages.list.response.200.data.data.updatedAt`; string | null, optional)
      - maxLength 20000
    - `modificationDate` (`gmedic.sessionPackages.list.response.200.data.data.modificationDate`; string | null, optional, deprecated) — Deprecated: use `updatedAt`. Answered until 2027-01-28.
      - maxLength 20000
    - `number` (`gmedic.sessionPackages.list.response.200.data.data.number`; string | null, optional)
      - maxLength 20000
    - `healthPartner` (`gmedic.sessionPackages.list.response.200.data.data.healthPartner`; string | null, optional)
      - maxLength 20000
    - `patientId` (`gmedic.sessionPackages.list.response.200.data.data.patientId`; string | null, optional)
      - pattern `^[1-9][0-9]{0,14}$`
    - `patientDocumentType` (`gmedic.sessionPackages.list.response.200.data.data.patientDocumentType`; object | null, optional)
      - `id` (`gmedic.sessionPackages.list.response.200.data.data.patientDocumentType.id`; string, required)
        - pattern `^[1-9][0-9]{0,14}$`
      - `name` (`gmedic.sessionPackages.list.response.200.data.data.patientDocumentType.name`; string | null, optional)
        - maxLength 20000
      - `label` (`gmedic.sessionPackages.list.response.200.data.data.patientDocumentType.label`; string | null, optional)
        - maxLength 20000
      - `value` (`gmedic.sessionPackages.list.response.200.data.data.patientDocumentType.value`; string | null, optional)
        - maxLength 20000
    - `patientDocumentNumber` (`gmedic.sessionPackages.list.response.200.data.data.patientDocumentNumber`; string | null, optional)
      - maxLength 20000
    - `patientFirstName` (`gmedic.sessionPackages.list.response.200.data.data.patientFirstName`; string | null, optional)
      - maxLength 20000
    - `patientLastName` (`gmedic.sessionPackages.list.response.200.data.data.patientLastName`; string | null, optional)
      - maxLength 20000
    - `billingService` (`gmedic.sessionPackages.list.response.200.data.data.billingService`; string | null, optional)
      - maxLength 20000
    - `billingServiceId` (`gmedic.sessionPackages.list.response.200.data.data.billingServiceId`; string | null, optional)
      - pattern `^[1-9][0-9]{0,14}$`
    - `issueDate` (`gmedic.sessionPackages.list.response.200.data.data.issueDate`; string | null, optional)
      - maxLength 20000
    - `expirationDate` (`gmedic.sessionPackages.list.response.200.data.data.expirationDate`; string | null, optional)
      - maxLength 20000
    - `active` (`gmedic.sessionPackages.list.response.200.data.data.active`; boolean | null, optional)
    - `maxSessions` (`gmedic.sessionPackages.list.response.200.data.data.maxSessions`; integer | null, optional)
      - min 0; max 9007199254740991
    - `currentSessions` (`gmedic.sessionPackages.list.response.200.data.data.currentSessions`; integer | null, optional)
      - min 0; max 9007199254740991
    - `availableSessions` (`gmedic.sessionPackages.list.response.200.data.data.availableSessions`; integer | null, optional)
      - min 0; max 9007199254740991
    - `invoice` (`gmedic.sessionPackages.list.response.200.data.data.invoice`; string | null, optional)
      - maxLength 20000
    - `invoiceId` (`gmedic.sessionPackages.list.response.200.data.data.invoiceId`; string | null, optional)
      - pattern `^[1-9][0-9]{0,14}$`
    - `documentId` (`gmedic.sessionPackages.list.response.200.data.data.documentId`; string | null, optional)
      - pattern `^[1-9][0-9]{0,14}$`
  - `object` (`gmedic.sessionPackages.list.response.200.data.object`; string, required) — Discriminator for a resource list response.
  - `pageInfo` (`gmedic.sessionPackages.list.response.200.data.pageInfo`; object, required) — Opaque navigation cursors for this page’s stable keyset order.
    - `hasNextPage` (`gmedic.sessionPackages.list.response.200.data.pageInfo.hasNextPage`; boolean, required) — Whether a later page exists in the current ordering.
    - `hasPreviousPage` (`gmedic.sessionPackages.list.response.200.data.pageInfo.hasPreviousPage`; boolean, required) — Whether an earlier page exists in the current ordering.
    - `nextCursor` (`gmedic.sessionPackages.list.response.200.data.pageInfo.nextCursor`; string | null, required) — Opaque cursor for the next page, or null when there is none.
    - `previousCursor` (`gmedic.sessionPackages.list.response.200.data.pageInfo.previousCursor`; string | null, required) — Opaque cursor for the previous page, or null when there is none.
- `error` (`gmedic.sessionPackages.list.response.200.error`; unknown, required)
- `metadata` (`gmedic.sessionPackages.list.response.200.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.200.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 400

`INVALID_INPUT`: The request does not match the published schema.

#### Example

```json
{
  "success": false,
  "data": null,
  "error": {
    "code": "INVALID_INPUT",
    "message": "string",
    "retryable": false,
    "data": {
      "issues": [
        {
          "path": "string",
          "message": "string"
        }
      ]
    }
  },
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.400.success`; boolean, required)
  - one of `false`
- `data` (`gmedic.sessionPackages.list.response.400.data`; unknown, required)
- `error` (`gmedic.sessionPackages.list.response.400.error`; object, required) — The request does not match the published schema.
  - `code` (`gmedic.sessionPackages.list.response.400.error.code`; string, required) — The failure code, stable across releases.
    - one of `"INVALID_INPUT"`
  - `message` (`gmedic.sessionPackages.list.response.400.error.message`; string, required) — What went wrong, for people; it never contains input values.
  - `retryable` (`gmedic.sessionPackages.list.response.400.error.retryable`; boolean, required) — Whether repeating the same request may succeed.
    - one of `false`
  - `data` (`gmedic.sessionPackages.list.response.400.error.data`; object, required)
    - `issues` (`gmedic.sessionPackages.list.response.400.error.data.issues`; array<object>, optional)
      - `path` (`gmedic.sessionPackages.list.response.400.error.data.issues.path`; string, required) — RFC 6901 JSON Pointer to the refused field; empty for the whole input.
        - maxLength 256
      - `message` (`gmedic.sessionPackages.list.response.400.error.data.issues.message`; string, required)
        - maxLength 256
- `metadata` (`gmedic.sessionPackages.list.response.400.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.400.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 401

`UNAUTHORIZED`: A valid access token is required.

#### Example

```json
{
  "success": false,
  "data": null,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "string",
    "retryable": false,
    "data": {}
  },
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.401.success`; boolean, required)
  - one of `false`
- `data` (`gmedic.sessionPackages.list.response.401.data`; unknown, required)
- `error` (`gmedic.sessionPackages.list.response.401.error`; object, required) — A valid access token is required.
  - `code` (`gmedic.sessionPackages.list.response.401.error.code`; string, required) — The failure code, stable across releases.
    - one of `"UNAUTHORIZED"`
  - `message` (`gmedic.sessionPackages.list.response.401.error.message`; string, required) — What went wrong, for people; it never contains input values.
  - `retryable` (`gmedic.sessionPackages.list.response.401.error.retryable`; boolean, required) — Whether repeating the same request may succeed.
    - one of `false`
  - `data` (`gmedic.sessionPackages.list.response.401.error.data`; object, required) — No fields.
- `metadata` (`gmedic.sessionPackages.list.response.401.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.401.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 403

`FORBIDDEN`: The token does not authorize this operation.

#### Example

```json
{
  "success": false,
  "data": null,
  "error": {
    "code": "FORBIDDEN",
    "message": "string",
    "retryable": false,
    "data": {}
  },
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.403.success`; boolean, required)
  - one of `false`
- `data` (`gmedic.sessionPackages.list.response.403.data`; unknown, required)
- `error` (`gmedic.sessionPackages.list.response.403.error`; object, required) — The token does not authorize this operation.
  - `code` (`gmedic.sessionPackages.list.response.403.error.code`; string, required) — The failure code, stable across releases.
    - one of `"FORBIDDEN"`
  - `message` (`gmedic.sessionPackages.list.response.403.error.message`; string, required) — What went wrong, for people; it never contains input values.
  - `retryable` (`gmedic.sessionPackages.list.response.403.error.retryable`; boolean, required) — Whether repeating the same request may succeed.
    - one of `false`
  - `data` (`gmedic.sessionPackages.list.response.403.error.data`; object, required) — No fields.
- `metadata` (`gmedic.sessionPackages.list.response.403.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.403.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 404

- `CONNECTION_NOT_FOUND`: This organization has no gMedic connection with this id.
- `RECORD_NOT_FOUND`: gMedic has no record with one of the ids sent.
- `SESSION_PACKAGE_NOT_FOUND`: The organization's connection to this integration couldn't complete the request. Don't retry it automatically; if it keeps happening, contact your Arbol team.

#### Example

```json
{
  "success": false,
  "data": null,
  "error": {
    "code": "CONNECTION_NOT_FOUND",
    "message": "string",
    "retryable": false,
    "data": {}
  },
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.404.success`; boolean, required)
  - one of `false`
- `data` (`gmedic.sessionPackages.list.response.404.data`; unknown, required)
- `error` (`gmedic.sessionPackages.list.response.404.error`; one of, required)
  - one of: `GmedicConnectionNotFoundFailure`, `GmedicRecordNotFoundFailure`, `GmedicSessionPackageNotFoundFailure`
  - discriminator: `code`
- `metadata` (`gmedic.sessionPackages.list.response.404.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.404.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 409

`NOT_CONFIGURED`: This organization has no verified gMedic connection.

#### Example

```json
{
  "success": false,
  "data": null,
  "error": {
    "code": "NOT_CONFIGURED",
    "message": "string",
    "retryable": false,
    "data": {}
  },
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.409.success`; boolean, required)
  - one of `false`
- `data` (`gmedic.sessionPackages.list.response.409.data`; unknown, required)
- `error` (`gmedic.sessionPackages.list.response.409.error`; object, required) — This organization has no verified gMedic connection.
  - `code` (`gmedic.sessionPackages.list.response.409.error.code`; string, required) — The failure code, stable across releases.
    - one of `"NOT_CONFIGURED"`
  - `message` (`gmedic.sessionPackages.list.response.409.error.message`; string, required) — What went wrong, for people; it never contains input values.
  - `retryable` (`gmedic.sessionPackages.list.response.409.error.retryable`; boolean, required) — Whether repeating the same request may succeed.
    - one of `false`
  - `data` (`gmedic.sessionPackages.list.response.409.error.data`; object, required) — No fields.
- `metadata` (`gmedic.sessionPackages.list.response.409.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.409.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 422

`PROVIDER_INPUT_REJECTED`: gMedic rejected the supplied fields.

#### Example

```json
{
  "success": false,
  "data": null,
  "error": {
    "code": "PROVIDER_INPUT_REJECTED",
    "message": "string",
    "retryable": false,
    "data": {}
  },
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.422.success`; boolean, required)
  - one of `false`
- `data` (`gmedic.sessionPackages.list.response.422.data`; unknown, required)
- `error` (`gmedic.sessionPackages.list.response.422.error`; object, required) — gMedic rejected the supplied fields.
  - `code` (`gmedic.sessionPackages.list.response.422.error.code`; string, required) — The failure code, stable across releases.
    - one of `"PROVIDER_INPUT_REJECTED"`
  - `message` (`gmedic.sessionPackages.list.response.422.error.message`; string, required) — What went wrong, for people; it never contains input values.
  - `retryable` (`gmedic.sessionPackages.list.response.422.error.retryable`; boolean, required) — Whether repeating the same request may succeed.
    - one of `false`
  - `data` (`gmedic.sessionPackages.list.response.422.error.data`; object, required) — No fields.
- `metadata` (`gmedic.sessionPackages.list.response.422.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.422.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 429

`RATE_LIMITED`: The request rate limit was exceeded. Try again later.

#### Example

```json
{
  "success": false,
  "data": null,
  "error": {
    "code": "RATE_LIMITED",
    "message": "string",
    "retryable": true,
    "data": {}
  },
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.429.success`; boolean, required)
  - one of `false`
- `data` (`gmedic.sessionPackages.list.response.429.data`; unknown, required)
- `error` (`gmedic.sessionPackages.list.response.429.error`; object, required) — The request rate limit was exceeded. Try again later.
  - `code` (`gmedic.sessionPackages.list.response.429.error.code`; string, required) — The failure code, stable across releases.
    - one of `"RATE_LIMITED"`
  - `message` (`gmedic.sessionPackages.list.response.429.error.message`; string, required) — What went wrong, for people; it never contains input values.
  - `retryable` (`gmedic.sessionPackages.list.response.429.error.retryable`; boolean, required) — Whether repeating the same request may succeed.
    - one of `true`
  - `data` (`gmedic.sessionPackages.list.response.429.error.data`; object, required) — No fields.
- `metadata` (`gmedic.sessionPackages.list.response.429.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.429.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 500

`INTERNAL_ERROR`: The service could not complete the operation.

#### Example

```json
{
  "success": false,
  "data": null,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "string",
    "retryable": false,
    "data": {}
  },
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.500.success`; boolean, required)
  - one of `false`
- `data` (`gmedic.sessionPackages.list.response.500.data`; unknown, required)
- `error` (`gmedic.sessionPackages.list.response.500.error`; object, required) — The service could not complete the operation.
  - `code` (`gmedic.sessionPackages.list.response.500.error.code`; string, required) — The failure code, stable across releases.
    - one of `"INTERNAL_ERROR"`
  - `message` (`gmedic.sessionPackages.list.response.500.error.message`; string, required) — What went wrong, for people; it never contains input values.
  - `retryable` (`gmedic.sessionPackages.list.response.500.error.retryable`; boolean, required) — Whether repeating the same request may succeed.
    - one of `false`
  - `data` (`gmedic.sessionPackages.list.response.500.error.data`; object, required) — No fields.
- `metadata` (`gmedic.sessionPackages.list.response.500.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.500.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 502

- `OUTCOME_UNKNOWN`: The operation may have been applied; check its result before repeating it.
- `PROVIDER_ACCESS_REJECTED`: The configured gMedic account did not authorize this operation.
- `PROVIDER_RESPONSE_INVALID`: gMedic returned an unexpected response.

#### Example

```json
{
  "success": false,
  "data": null,
  "error": {
    "code": "OUTCOME_UNKNOWN",
    "message": "string",
    "retryable": false,
    "data": {}
  },
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.502.success`; boolean, required)
  - one of `false`
- `data` (`gmedic.sessionPackages.list.response.502.data`; unknown, required)
- `error` (`gmedic.sessionPackages.list.response.502.error`; one of, required)
  - one of: `OutcomeUnknownFailure`, `GmedicProviderAccessRejectedFailure`, `GmedicProviderResponseInvalidFailure`
  - discriminator: `code`
- `metadata` (`gmedic.sessionPackages.list.response.502.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.502.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 503

- `UPSTREAM_UNAVAILABLE`: The upstream service could not complete the request.
- `CATALOG_SEARCH_INCOMPLETE`: The service catalog search could not be completed within its limits. Service absence cannot be concluded.
- `PROVIDER_UNAVAILABLE`: gMedic is temporarily unavailable.

#### Example

```json
{
  "success": false,
  "data": null,
  "error": {
    "code": "UPSTREAM_UNAVAILABLE",
    "message": "string",
    "retryable": true,
    "data": {}
  },
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.503.success`; boolean, required)
  - one of `false`
- `data` (`gmedic.sessionPackages.list.response.503.data`; unknown, required)
- `error` (`gmedic.sessionPackages.list.response.503.error`; one of, required)
  - one of: `UpstreamUnavailableFailure`, `GmedicCatalogSearchIncompleteFailure`, `GmedicProviderUnavailableFailure`
  - discriminator: `code`
- `metadata` (`gmedic.sessionPackages.list.response.503.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.503.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.

### 504

`UPSTREAM_TIMEOUT`: The upstream service did not respond before its deadline.

#### Example

```json
{
  "success": false,
  "data": null,
  "error": {
    "code": "UPSTREAM_TIMEOUT",
    "message": "string",
    "retryable": true,
    "data": {}
  },
  "metadata": {
    "requestId": "string"
  }
}
```

- `success` (`gmedic.sessionPackages.list.response.504.success`; boolean, required)
  - one of `false`
- `data` (`gmedic.sessionPackages.list.response.504.data`; unknown, required)
- `error` (`gmedic.sessionPackages.list.response.504.error`; object, required) — The upstream service did not respond before its deadline.
  - `code` (`gmedic.sessionPackages.list.response.504.error.code`; string, required) — The failure code, stable across releases.
    - one of `"UPSTREAM_TIMEOUT"`
  - `message` (`gmedic.sessionPackages.list.response.504.error.message`; string, required) — What went wrong, for people; it never contains input values.
  - `retryable` (`gmedic.sessionPackages.list.response.504.error.retryable`; boolean, required) — Whether repeating the same request may succeed.
    - one of `true`
  - `data` (`gmedic.sessionPackages.list.response.504.error.data`; object, required) — No fields.
- `metadata` (`gmedic.sessionPackages.list.response.504.metadata`; object, required) — What every answer carries besides its data or error.
  - `requestId` (`gmedic.sessionPackages.list.response.504.metadata.requestId`; string, required) — Request correlation identifier, also sent as X-Request-Id.


Source: https://docs.getarbol.com/api/gmedic/session-packages/list/index.md
