---
title: "Create Importer Webhook"
method: POST
path: "/v1/importer-webhooks"
tags: ["Importer Webhooks"]
---

# Create Importer Webhook

`POST /v1/importer-webhooks`

Create a new Importer Webhook for the organization.

## Request body

- ImporterWebhookCreateRequest
  - `url` string, required — The URL that the importer will POST to.
  - `webhook_key` string, required — A unique (per-org) key identifying this webhook.
  - `type` 'batch' | 'metadata', required — The delivery mode for the webhook. `batch` delivers rows in batches; `metadata` delivers only the import metadata.
  - `auth_type` 'basic' | 'bearer_user_jwt', nullable — The authentication mode for requests to the webhook URL. `basic` requires a `secret_key`. `bearer_user_jwt` attaches the end-user JWT as a bearer token. Omit (`null`) for unauthenticated delivery.
  - `secret_key` string, nullable — Required when `auth_type` is `basic`. Ignored for other auth types.
  - `batch_size` integer, nullable — Optional batch size (number of rows per webhook request) for `batch`-type webhooks.

## Response `201`

The request has succeeded and a new resource has been created as a result.

- ImporterWebhookResource
  - `id` integer — The unique identifier of the importer webhook.
  - `webhook_key` string — The org-unique key identifying this webhook.
  - `type` 'batch' | 'metadata' — The delivery mode for the webhook. `batch` delivers rows in batches; `metadata` delivers only the import metadata.
  - `url` string — The URL that the importer will POST to.
  - `auth_type` 'basic' | 'bearer_user_jwt', nullable — The authentication mode for requests to the webhook URL. `basic` requires a `secret_key`. `bearer_user_jwt` attaches the end-user JWT as a bearer token. Omit (`null`) for unauthenticated delivery.
  - `secret_key` string, nullable — The shared secret used for `basic` auth. Only returned to admin and developer API key users.
  - `batch_size` integer, nullable — Optional batch size (number of rows per webhook request) for `batch`-type webhooks.

## Other responses

- `400` — Bad request
- `401` — Unauthorized (missing or invalid API key)
- `403` — Forbidden

---

[API](https://skmtc.net/oneschema/apis/templates.md) · [All operations](https://skmtc.net/oneschema/apis/templates/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneschema/templates/revisions/40674aa6d4d9/schema)
