---
title: "Import an API spec or workflow — add to the searchable catalog"
method: POST
path: "/import"
tags: ["catalog"]
---

# Import an API spec or workflow — add to the searchable catalog

`POST /import`

Registers an OpenAPI spec or Arazzo workflow into the catalog and BM25 index.
Source types: path (local file), url (fetch from URL), inline (spec content in request body).
For OpenAPI specs: parses operations, computes capability IDs, indexes descriptions.
For Arazzo workflows: stores definition, extracts input schema and involved APIs.
Returns the registered API or workflow with its canonical id.

## Request body

- ImportRequest — Batch import request for multiple OpenAPI specs or Arazzo workflows. Sources processed in parallel.
  - `sources` ImportSource[], required — Array of import sources (OpenAPI specs or Arazzo workflows) to register in the catalog
    - `type` string, required — Source type: 'path' (local file), 'url' (fetch from URL), or 'inline' (spec content in request)
    - `path` string, nullable — Local file system path (required if type='path')
    - `url` string, nullable — Remote spec URL (required if type='url')
    - `filename` string, nullable — Override filename for saved spec (optional)
    - `content` string, nullable — Inline spec content as JSON or YAML string (required if type='inline')
    - `force_api_id` string, nullable — Override derived API ID with catalog canonical ID (optional)

## Response `200`

Successful Response

- ImportOut — Result of importing an OpenAPI spec or Arazzo workflow into the catalog. The import endpoint (POST /import) accepts specs from URLs, local file paths, or inline content. It parses the document, indexes operations/workflows in BM25, and stores metadata for broker execution. Returns the registered ID and count of indexed operations.
  - `status` string, required — Import status: 'ok' if all sources succeeded, 'partial' if some failed, 'failed' if all failed
  - `id` string, nullable — Registered API ID (for OpenAPI specs) or workflow slug (for Arazzo)
  - `name` string, nullable — Display name extracted from spec (info.title for APIs, workflow.summary for workflows)
  - `operations_indexed` integer, nullable — Number of operations parsed and indexed in BM25 (OpenAPI specs only)
  - `type` string, nullable — Import type: 'api' for OpenAPI specs, 'workflow' for Arazzo documents

## Other responses

- `422` — Validation Error

## Changes

- **2026-04-13** `76e8f6063728` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/jentic/apis/jentic-control-plane-api/changes/import/post.md)

---

[API](https://skmtc.dev/jentic/apis/jentic-control-plane-api.md) · [All operations](https://skmtc.dev/jentic/apis/jentic-control-plane-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/jentic/jentic-control-plane-api/revisions/bd463fcefb14/schema)
