# Webhook Configs

## Create Webhook Config

`$ llp webhook-configs create`

**post** `/api/v1/beta/webhook-configs`

Create a reusable webhook configuration for the current project.

### Parameters

- `--webhook-url: string`

  Body param: URL to receive webhook POST notifications.

- `--organization-id: optional string`

  Query param

- `--project-id: optional string`

  Query param

- `--webhook-event: optional array of "batch.cancelled" or "batch.error" or "batch.pending" or 30 more`

  Body param: Events to subscribe to. If null, all events are delivered. An empty list subscribes to nothing and is rejected.

- `--webhook-headers: optional map[string]`

  Body param: Custom HTTP headers sent with each webhook request.

- `--webhook-output-format: optional "json" or "string"`

  Body param: Response format sent to the webhook: 'string' (default) or 'json'.

- `--webhook-signing-secret: optional string`

  Body param: Shared secret used to sign deliveries to this endpoint. Write-only: it is never returned in responses.

### Returns

- `webhook_config_response: object { id, has_secret, tenant_id, 7 more }`

  A stored webhook configuration. The signing secret is never included.

  - `id: string`

    Unique identifier for the webhook configuration.

  - `has_secret: boolean`

    Whether a signing secret is configured for this endpoint.

  - `tenant_id: string`

    Owner tenant ID.

  - `tenant_type: "project"`

    Owner tenant type.

  - `webhook_url: string`

    URL that receives webhook POST notifications.

  - `created_at: optional string`

    Creation datetime

  - `updated_at: optional string`

    Update datetime

  - `webhook_events: optional array of "batch.cancelled" or "batch.error" or "batch.pending" or 30 more`

    Subscribed events (null = all events).

    - `"batch.cancelled"`

    - `"batch.error"`

    - `"batch.pending"`

    - `"batch.running"`

    - `"batch.success"`

    - `"classify.cancelled"`

    - `"classify.error"`

    - `"classify.partial_success"`

    - `"classify.pending"`

    - `"classify.running"`

    - `"classify.success"`

    - `"extract.cancelled"`

    - `"extract.error"`

    - `"extract.partial_success"`

    - `"extract.pending"`

    - `"extract.success"`

    - `"parse.cancelled"`

    - `"parse.error"`

    - `"parse.partial_success"`

    - `"parse.pending"`

    - `"parse.running"`

    - `"parse.success"`

    - `"sheets.cancelled"`

    - `"sheets.error"`

    - `"sheets.partial_success"`

    - `"sheets.pending"`

    - `"sheets.success"`

    - `"split.cancelled"`

    - `"split.error"`

    - `"split.pending"`

    - `"split.processing"`

    - `"split.success"`

    - `"unmapped_event"`

  - `webhook_headers: optional map[string]`

    Custom HTTP headers sent with each request.

  - `webhook_output_format: optional "json" or "string"`

    Response format sent to the webhook.

    - `"json"`

    - `"string"`

### Example

```cli
llp webhook-configs create \
  --api-key 'My API Key' \
  --webhook-url https://example.com/webhooks/llamacloud
```

#### Response

```json
{
  "id": "id",
  "has_secret": true,
  "tenant_id": "tenant_id",
  "tenant_type": "project",
  "webhook_url": "webhook_url",
  "created_at": "2019-12-27T18:11:19.117Z",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "webhook_events": [
    "batch.cancelled"
  ],
  "webhook_headers": {
    "foo": "string"
  },
  "webhook_output_format": "json"
}
```

## List Webhook Configs

`$ llp webhook-configs list`

**get** `/api/v1/beta/webhook-configs`

List the webhook configurations for the current project, newest first.

### Parameters

- `--organization-id: optional string`

- `--project-id: optional string`

### Returns

- `Response List Webhook Configs Api V1 Beta Webhook Configs Get: array of WebhookConfigResponse`

  - `id: string`

    Unique identifier for the webhook configuration.

  - `has_secret: boolean`

    Whether a signing secret is configured for this endpoint.

  - `tenant_id: string`

    Owner tenant ID.

  - `tenant_type: "project"`

    Owner tenant type.

  - `webhook_url: string`

    URL that receives webhook POST notifications.

  - `created_at: optional string`

    Creation datetime

  - `updated_at: optional string`

    Update datetime

  - `webhook_events: optional array of "batch.cancelled" or "batch.error" or "batch.pending" or 30 more`

    Subscribed events (null = all events).

    - `"batch.cancelled"`

    - `"batch.error"`

    - `"batch.pending"`

    - `"batch.running"`

    - `"batch.success"`

    - `"classify.cancelled"`

    - `"classify.error"`

    - `"classify.partial_success"`

    - `"classify.pending"`

    - `"classify.running"`

    - `"classify.success"`

    - `"extract.cancelled"`

    - `"extract.error"`

    - `"extract.partial_success"`

    - `"extract.pending"`

    - `"extract.success"`

    - `"parse.cancelled"`

    - `"parse.error"`

    - `"parse.partial_success"`

    - `"parse.pending"`

    - `"parse.running"`

    - `"parse.success"`

    - `"sheets.cancelled"`

    - `"sheets.error"`

    - `"sheets.partial_success"`

    - `"sheets.pending"`

    - `"sheets.success"`

    - `"split.cancelled"`

    - `"split.error"`

    - `"split.pending"`

    - `"split.processing"`

    - `"split.success"`

    - `"unmapped_event"`

  - `webhook_headers: optional map[string]`

    Custom HTTP headers sent with each request.

  - `webhook_output_format: optional "json" or "string"`

    Response format sent to the webhook.

    - `"json"`

    - `"string"`

### Example

```cli
llp webhook-configs list \
  --api-key 'My API Key'
```

#### Response

```json
[
  {
    "id": "id",
    "has_secret": true,
    "tenant_id": "tenant_id",
    "tenant_type": "project",
    "webhook_url": "webhook_url",
    "created_at": "2019-12-27T18:11:19.117Z",
    "updated_at": "2019-12-27T18:11:19.117Z",
    "webhook_events": [
      "batch.cancelled"
    ],
    "webhook_headers": {
      "foo": "string"
    },
    "webhook_output_format": "json"
  }
]
```

## Get Webhook Config

`$ llp webhook-configs retrieve`

**get** `/api/v1/beta/webhook-configs/{config_id}`

Get a single webhook configuration by ID.

### Parameters

- `--config-id: string`

- `--organization-id: optional string`

- `--project-id: optional string`

### Returns

- `webhook_config_response: object { id, has_secret, tenant_id, 7 more }`

  A stored webhook configuration. The signing secret is never included.

  - `id: string`

    Unique identifier for the webhook configuration.

  - `has_secret: boolean`

    Whether a signing secret is configured for this endpoint.

  - `tenant_id: string`

    Owner tenant ID.

  - `tenant_type: "project"`

    Owner tenant type.

  - `webhook_url: string`

    URL that receives webhook POST notifications.

  - `created_at: optional string`

    Creation datetime

  - `updated_at: optional string`

    Update datetime

  - `webhook_events: optional array of "batch.cancelled" or "batch.error" or "batch.pending" or 30 more`

    Subscribed events (null = all events).

    - `"batch.cancelled"`

    - `"batch.error"`

    - `"batch.pending"`

    - `"batch.running"`

    - `"batch.success"`

    - `"classify.cancelled"`

    - `"classify.error"`

    - `"classify.partial_success"`

    - `"classify.pending"`

    - `"classify.running"`

    - `"classify.success"`

    - `"extract.cancelled"`

    - `"extract.error"`

    - `"extract.partial_success"`

    - `"extract.pending"`

    - `"extract.success"`

    - `"parse.cancelled"`

    - `"parse.error"`

    - `"parse.partial_success"`

    - `"parse.pending"`

    - `"parse.running"`

    - `"parse.success"`

    - `"sheets.cancelled"`

    - `"sheets.error"`

    - `"sheets.partial_success"`

    - `"sheets.pending"`

    - `"sheets.success"`

    - `"split.cancelled"`

    - `"split.error"`

    - `"split.pending"`

    - `"split.processing"`

    - `"split.success"`

    - `"unmapped_event"`

  - `webhook_headers: optional map[string]`

    Custom HTTP headers sent with each request.

  - `webhook_output_format: optional "json" or "string"`

    Response format sent to the webhook.

    - `"json"`

    - `"string"`

### Example

```cli
llp webhook-configs retrieve \
  --api-key 'My API Key' \
  --config-id config_id
```

#### Response

```json
{
  "id": "id",
  "has_secret": true,
  "tenant_id": "tenant_id",
  "tenant_type": "project",
  "webhook_url": "webhook_url",
  "created_at": "2019-12-27T18:11:19.117Z",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "webhook_events": [
    "batch.cancelled"
  ],
  "webhook_headers": {
    "foo": "string"
  },
  "webhook_output_format": "json"
}
```

## Update Webhook Config

`$ llp webhook-configs update`

**put** `/api/v1/beta/webhook-configs/{config_id}`

Update a webhook configuration. Only fields present in the request change.

### Parameters

- `--config-id: string`

  Path param

- `--organization-id: optional string`

  Query param

- `--project-id: optional string`

  Query param

- `--webhook-event: optional array of "batch.cancelled" or "batch.error" or "batch.pending" or 30 more`

  Body param: Updated event subscriptions. Omit to leave unchanged; [] is rejected.

- `--webhook-headers: optional map[string]`

  Body param: Updated headers.

- `--webhook-output-format: optional "json" or "string"`

  Body param: Updated output format.

- `--webhook-signing-secret: optional string`

  Body param: Updated signing secret (write-only). Send to rotate the secret.

- `--webhook-url: optional string`

  Body param: Updated webhook URL.

### Returns

- `webhook_config_response: object { id, has_secret, tenant_id, 7 more }`

  A stored webhook configuration. The signing secret is never included.

  - `id: string`

    Unique identifier for the webhook configuration.

  - `has_secret: boolean`

    Whether a signing secret is configured for this endpoint.

  - `tenant_id: string`

    Owner tenant ID.

  - `tenant_type: "project"`

    Owner tenant type.

  - `webhook_url: string`

    URL that receives webhook POST notifications.

  - `created_at: optional string`

    Creation datetime

  - `updated_at: optional string`

    Update datetime

  - `webhook_events: optional array of "batch.cancelled" or "batch.error" or "batch.pending" or 30 more`

    Subscribed events (null = all events).

    - `"batch.cancelled"`

    - `"batch.error"`

    - `"batch.pending"`

    - `"batch.running"`

    - `"batch.success"`

    - `"classify.cancelled"`

    - `"classify.error"`

    - `"classify.partial_success"`

    - `"classify.pending"`

    - `"classify.running"`

    - `"classify.success"`

    - `"extract.cancelled"`

    - `"extract.error"`

    - `"extract.partial_success"`

    - `"extract.pending"`

    - `"extract.success"`

    - `"parse.cancelled"`

    - `"parse.error"`

    - `"parse.partial_success"`

    - `"parse.pending"`

    - `"parse.running"`

    - `"parse.success"`

    - `"sheets.cancelled"`

    - `"sheets.error"`

    - `"sheets.partial_success"`

    - `"sheets.pending"`

    - `"sheets.success"`

    - `"split.cancelled"`

    - `"split.error"`

    - `"split.pending"`

    - `"split.processing"`

    - `"split.success"`

    - `"unmapped_event"`

  - `webhook_headers: optional map[string]`

    Custom HTTP headers sent with each request.

  - `webhook_output_format: optional "json" or "string"`

    Response format sent to the webhook.

    - `"json"`

    - `"string"`

### Example

```cli
llp webhook-configs update \
  --api-key 'My API Key' \
  --config-id config_id
```

#### Response

```json
{
  "id": "id",
  "has_secret": true,
  "tenant_id": "tenant_id",
  "tenant_type": "project",
  "webhook_url": "webhook_url",
  "created_at": "2019-12-27T18:11:19.117Z",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "webhook_events": [
    "batch.cancelled"
  ],
  "webhook_headers": {
    "foo": "string"
  },
  "webhook_output_format": "json"
}
```

## Delete Webhook Config

`$ llp webhook-configs delete`

**delete** `/api/v1/beta/webhook-configs/{config_id}`

Delete a webhook configuration.

### Parameters

- `--config-id: string`

- `--organization-id: optional string`

- `--project-id: optional string`

### Example

```cli
llp webhook-configs delete \
  --api-key 'My API Key' \
  --config-id config_id
```

## Domain Types

### Webhook Config Create

- `webhook_config_create: object { webhook_url, webhook_events, webhook_headers, 2 more }`

  Request to create a stored webhook configuration.

  The owning tenant is taken from the request context (e.g. the project in the
  path), not the body.

  - `webhook_url: string`

    URL to receive webhook POST notifications.

  - `webhook_events: optional array of "batch.cancelled" or "batch.error" or "batch.pending" or 30 more`

    Events to subscribe to. If null, all events are delivered. An empty list subscribes to nothing and is rejected.

    - `"batch.cancelled"`

    - `"batch.error"`

    - `"batch.pending"`

    - `"batch.running"`

    - `"batch.success"`

    - `"classify.cancelled"`

    - `"classify.error"`

    - `"classify.partial_success"`

    - `"classify.pending"`

    - `"classify.running"`

    - `"classify.success"`

    - `"extract.cancelled"`

    - `"extract.error"`

    - `"extract.partial_success"`

    - `"extract.pending"`

    - `"extract.success"`

    - `"parse.cancelled"`

    - `"parse.error"`

    - `"parse.partial_success"`

    - `"parse.pending"`

    - `"parse.running"`

    - `"parse.success"`

    - `"sheets.cancelled"`

    - `"sheets.error"`

    - `"sheets.partial_success"`

    - `"sheets.pending"`

    - `"sheets.success"`

    - `"split.cancelled"`

    - `"split.error"`

    - `"split.pending"`

    - `"split.processing"`

    - `"split.success"`

    - `"unmapped_event"`

  - `webhook_headers: optional map[string]`

    Custom HTTP headers sent with each webhook request.

  - `webhook_output_format: optional "json" or "string"`

    Response format sent to the webhook: 'string' (default) or 'json'.

    - `"json"`

    - `"string"`

  - `webhook_signing_secret: optional string`

    Shared secret used to sign deliveries to this endpoint. Write-only: it is never returned in responses.

### Webhook Config Response

- `webhook_config_response: object { id, has_secret, tenant_id, 7 more }`

  A stored webhook configuration. The signing secret is never included.

  - `id: string`

    Unique identifier for the webhook configuration.

  - `has_secret: boolean`

    Whether a signing secret is configured for this endpoint.

  - `tenant_id: string`

    Owner tenant ID.

  - `tenant_type: "project"`

    Owner tenant type.

  - `webhook_url: string`

    URL that receives webhook POST notifications.

  - `created_at: optional string`

    Creation datetime

  - `updated_at: optional string`

    Update datetime

  - `webhook_events: optional array of "batch.cancelled" or "batch.error" or "batch.pending" or 30 more`

    Subscribed events (null = all events).

    - `"batch.cancelled"`

    - `"batch.error"`

    - `"batch.pending"`

    - `"batch.running"`

    - `"batch.success"`

    - `"classify.cancelled"`

    - `"classify.error"`

    - `"classify.partial_success"`

    - `"classify.pending"`

    - `"classify.running"`

    - `"classify.success"`

    - `"extract.cancelled"`

    - `"extract.error"`

    - `"extract.partial_success"`

    - `"extract.pending"`

    - `"extract.success"`

    - `"parse.cancelled"`

    - `"parse.error"`

    - `"parse.partial_success"`

    - `"parse.pending"`

    - `"parse.running"`

    - `"parse.success"`

    - `"sheets.cancelled"`

    - `"sheets.error"`

    - `"sheets.partial_success"`

    - `"sheets.pending"`

    - `"sheets.success"`

    - `"split.cancelled"`

    - `"split.error"`

    - `"split.pending"`

    - `"split.processing"`

    - `"split.success"`

    - `"unmapped_event"`

  - `webhook_headers: optional map[string]`

    Custom HTTP headers sent with each request.

  - `webhook_output_format: optional "json" or "string"`

    Response format sent to the webhook.

    - `"json"`

    - `"string"`
