apis
Celigo APIs are custom HTTP endpoints that let external systems push data into, or query data through, Celigo integrations synchronously — the caller gets a structured response back in the same request.
REST API: APIs
celigo apis <subcommand> [args] [flags]Supports all global flags.
Subcommands
list
List all APIs, with optional --name and --disabled server-side filters.
get <id>
Fetch one API by ID.
create
Create an API from a JSON body (--file <path> or stdin).
update <id>
Full-replace an API from a JSON body (--file <path> or stdin); destructive PUT.
set <id> key=value …
Safe field edit: whitelisted fields via atomic PATCH, others GET → modify → PUT. Supports key=file://<path>.
delete <id>
Delete an API.
dependencies <id> (alias used-by)
List resources that depend on this API.
audit <id>
Show the API's audit log (change history).
logs <id>
List recent inbound request logs for an API.
log-detail <id> <key>
Fetch full request/response detail for one log entry.
request-history <id>
List the API's logged request executions — the run index.
execution-logs <apiId> <executionId>
Print one request execution's log (the trace view); --details assembles the full picture.
delete-execution-logs <id>
Queue deletion of stored execution logs in a date range.
clone <id>
Clone a builder-mode API (and its copied export/import resources). --dry-run checks the target route only.
download <id>
Download a builder-mode API and everything it references as a template ZIP.
add-processor <id> <exportOrImportId>
Add a page processor (export or import) to a builder-mode API branch.
remove-processor <id> <exportOrImportId>
Remove a page processor from a builder-mode API branch.
set-group <apiGroupingId> <apiIds...>
Assign one or more APIs to an API group.
unset-group <apiIds...>
Remove one or more APIs from their group.
test-run <id>
Start a test run and return stage-by-stage results.
test-run-step-results <id> <runId> <exportOrImportId>
Get stage-by-stage results for a single test-run step.
test-run-step-logs <id> <runId> <exportOrImportId>
List HTTP request/response logs for a test-run step.
debug-requests <id> <exportOrImportId>
List debug request log entries for an export or import inside the API.
debug-request-detail <id> <exportOrImportId> <key>
Fetch full request/response detail for a debug log entry.
celigo apis list
List all APIs visible to the current profile, with optional server-side filters.
Signature
Arguments
None.
Flags
--name <substring>
string
—
Filter by name — a server-side substring match, not exact. Added in celigo-cli 2026.8.7.
--disabled
boolean
false
Only APIs with disabled: true. Added in celigo-cli 2026.8.7.
--fields <spec>
string
default
Fields to request per row. default returns _id, name, and the table columns; all returns complete documents; a comma-separated list requests specific fields. See field projection.
--limit <n>
integer
—
Return at most <n> rows, fetching a single page.
Default table columns: _id, name, type, disabled, lastModified.
Example
Corresponds to: GET /v1/apis (operationId: listApis)
celigo apis get <id>
Fetch one API by ID.
Signature
Arguments
<id>
string
Yes
API resource ID.
Flags
Uses global flags only.
Example
Corresponds to: GET /v1/apis/{_id} (operationId: getApiById)
celigo apis create
Create a new API from a JSON body. Read the body from a file with -f, --file (recommended), or pipe it on stdin.
Signature
Arguments
None.
Flags
-f, --file <path>
string
—
Read the JSON body from a file instead of stdin (--file - also means stdin). Added in celigo-cli 2026.6.1.
Request body
A JSON object matching the POST /v1/apis request schema (builder vs. script mode, routers, page processors, etc.).
Example
Corresponds to: POST /v1/apis (operationId: createApi)
celigo apis update <id>
Full-replace an API from a JSON body (--file <path> or stdin).
⚠️
updateerases omitted fields. It sends aPUT, not aPATCH, so any field missing from the body is cleared.GETthe API first, edit it, then send back the complete object — or usesetfor partial edits.
Signature
Arguments
<id>
string
Yes
API resource ID.
Flags
-f, --file <path>
string
—
Read the JSON body from a file instead of stdin (--file - also means stdin). Added in celigo-cli 2026.6.1.
--force
boolean
false
Submit even if the body contains masked credential values (***) copied from a GET.
Request body
The full API JSON, matching the PUT /v1/apis/{_id} request schema.
Example
Corresponds to: PUT /v1/apis/{_id} (operationId: updateApi)
celigo apis set <id> [assignments...]
Safe field edit. Whitelisted fields — including logging.mode, logging.debugUntil, and traceKeyTemplate since celigo-cli 2026.8.7 — are applied via an atomic PATCH; other fields go through GET → modify → PUT so omitted fields survive. Accepts one or more key=value pairs with dot + bracket path support; key=null removes the field. A key=file://<path> value loads that field's value from a file instead of the command line (a leading ~ and relative paths are supported).
The PATCH route for the logging fields is a correctness fix, not just fewer round trips: the server silently ignores logging changes on a full PUT — every mode value revert-persists as basic, without an error — so set is the only CLI path that can actually change an API's logging level.
Signature
Arguments
<id>
string
Yes
API resource ID.
[assignments...]
key=value strings
Yes (≥1)
Field assignments. Dot notation (a.b.c) and array indexing (routers[0].name=r1) supported. JSON-parsed values: disabled=false, debugUntil=null. Use key=file://<path> to load a value from a file.
Flags
Uses global flags only.
Example
Corresponds to: PUT /v1/apis/{_id} (operationId: updateApi) — issued after an internal GET /v1/apis/{_id} — or an atomic PATCH /v1/apis/{_id} when every assigned field is whitelisted.
celigo apis delete <id>
Delete an API. Prompts for confirmation unless -y is passed.
⚠️
deleteis immediate. Callers of the API's endpoint start receiving errors. Rundependenciesfirst to see what relies on it.
Signature
Arguments
<id>
string
Yes
API resource ID.
Flags
-y, --yes
boolean
false
Skip confirmation prompt.
Example
Corresponds to: DELETE /v1/apis/{_id} (operationId: deleteApi)
celigo apis dependencies <id>
List resources that depend on this API (alias: used-by). Use it to check whether an API is safe to delete — an empty result means nothing references it.
Signature
Arguments
<id>
string
Yes
API resource ID.
Flags
Uses global flags only.
Example
Corresponds to: GET /v1/apis/{_id}/dependencies (operationId: listApiDependencies)
celigo apis audit <id>
Show the audit log (change history) for one API.
Signature
Arguments
<id>
string
Yes
API resource ID.
Flags
Uses global flags only.
Example
Corresponds to: GET /v1/apis/{_id}/audit
celigo apis logs <id>
List recent inbound request logs for an API.
Signature
Arguments
<id>
string
Yes
API resource ID.
Flags
Uses global flags only.
Example
Corresponds to: GET /v1/apis/{_id}/logs (operationId: listApiLogs)
celigo apis log-detail <id> <key>
Fetch full request/response detail for a single API log entry. The key comes from apis logs.
Signature
Arguments
<id>
string
Yes
API resource ID.
<key>
string
Yes
Log entry key from apis logs.
Flags
Uses global flags only.
Example
Corresponds to: GET /v1/apis/{_id}/logs/{key} (operationId: getApiLogByKey)
celigo apis request-history <id>
List an API's logged request executions — the run index behind the UI's Request history panel: one entry per inbound request processed while the API's logging.mode was anything other than no_logging. Defaults to the last 5 minutes; widen the window with --time-gte/--time-lte.
This is jobs' analog for APIs: pick an entry's executionId here, then drill into that run with apis execution-logs. Distinct from apis logs, which returns the legacy file-backed request/response envelopes — use request-history for run history, apis logs for the raw decoded request and response of a single call.
Signature
Arguments
<id>
string
Yes
API resource ID.
Flags
--time-gte <iso>
ISO 8601
5 minutes ago
Include requests at or after this timestamp.
--time-lte <iso>
ISO 8601
now
Include requests at or before this timestamp.
--status-code <code>
string
—
Filter by HTTP response status code (single value or comma-separated list).
--method <method>
string
—
Filter by HTTP method (case-insensitive).
--trace-key-prefix <prefix>
string
—
Filter on traceKey (prefix match; the API's traceKey param).
--remote-ip <prefix>
string
—
Filter on the client IP address (prefix match).
--relative-uri <prefix>
string
—
Filter on the request relative URI (prefix match).
--search-key <text>
string
—
Free-text search, OR-matched across traceKey (prefix), remoteIP (prefix), and relativeURI (substring); at least 3 characters. Overrides those three filters.
--page-size <n>
integer
—
Entries per page.
--sort-order <dir>
asc | desc
—
Sort direction by request time.
Example
Corresponds to: GET /v1/apis/{_id}/requests
celigo apis execution-logs <apiId> <executionId>
Print one request execution's log: the trace view with one record per step/stage event, recorded for runs logged in detailed or debug mode. The per-run layer under request-history, exactly as flows execution-logs <flowId> <jobId> is the per-run layer under jobs. Get the executionId from apis request-history.
Signature
Arguments
<apiId>
string
Yes
API resource ID.
<executionId>
string
Yes
Execution ID from apis request-history.
Flags
--details
boolean
false
Assemble the run's complete picture in one command: every step record gains data (its decoded payload), records that fanned out gain children (first page only, each child with its own data), and payloads too large to inline gain a short-lived downloadUrl on their S3 reference. A failed sub-fetch is reported in place as {"error": ...} instead of failing the command.
Example
Corresponds to: GET /v1/apis/{_id}/requests/{executionId}
celigo apis delete-execution-logs <id>
Queue deletion of stored API execution logs within an inclusive date range. Irreversible. Both bounds are required, and the end must not be in the future. Prompts for confirmation unless -y is passed.
Signature
Arguments
<id>
string
Yes
API resource ID.
Flags
--time-gte <iso>
ISO 8601
—
Required. Start of the deletion window, inclusive.
--time-lte <iso>
ISO 8601
—
Required. End of the deletion window (must not be in the future).
-y, --yes
boolean
false
Skip the confirmation prompt.
Example
Corresponds to: DELETE /v1/apis/{_id}/requests?startedAt=<iso>&endAt=<iso> — the API names the range params startedAt/endAt; the flags keep the CLI-wide --time-gte/--time-lte names.
celigo apis clone <id>
Clone a builder-mode API into a new API plus copied export/import resources. Returns an array of { model, _id } tuples — not a single resource — so pipe through --jq to flatten.
Script-mode APIs are rejected with Clone is only supported for builder-mode APIs.
Signature
Arguments
<id>
string
Yes
Source builder-mode API ID.
Flags
--api-version <version>
string
—
Required. Version for the cloned API (e.g. v2).
--name <name>
string
—
Name for the cloned API.
--description <description>
string
—
Description for the cloned API.
--environment <environmentId>
string
—
Clone into a target environment (sent as environmentId).
--dry-run
boolean
false
Check whether the target route is free and create nothing. Returns { canClone }.
--dry-run validates that the combination of target version, method, and relativeURI is not already taken. Use it before a real clone to catch a route conflict without leaving a partial API behind.
Example
Corresponds to: POST /v1/apis/{_id}/clone, or POST /v1/apis/{_id}/clone/validate with --dry-run.
celigo apis download <id>
Download a builder-mode API as a template ZIP file. The archive holds the API plus every resource it references: imports, exports, connections, and scripts. Use it to version an API in git, or to hand it to another account.
The CLI requests the template, follows the signed URL, and writes the file locally.
Signature
Arguments
<id>
string
Yes
Builder-mode API ID. Script-mode APIs cannot be exported.
Flags
-o, --output <path>
string
<api-name>.zip
Output file path. Without it, the CLI writes <api-name>.zip in the current directory, falling back to api-<id>.zip.
Example
Corresponds to: GET /v1/apis/{_id}/template, which returns a short-lived signed URL. The CLI then downloads the archive from that URL.
celigo apis add-processor <id> <exportOrImportId>
Add a page processor to a builder-mode API branch. Auto-detects whether the supplied ID is an export or an import. The CLI issues a GET on the API, mutates the branch's pageProcessors[], and writes back with a full PUT.
Signature
Arguments
<id>
string
Yes
API resource ID (must be builder-mode).
<exportOrImportId>
string
Yes
Export or import ID to add as a page processor.
Flags
--router <routerId>
string
—
Target a specific router.
--branch <branchName>
string
—
Target a specific branch.
-y, --yes
boolean
false
Skip confirmation prompt.
Example
Corresponds to: PUT /v1/apis/{_id} (operationId: updateApi) — issued after an internal GET /v1/apis/{_id}.
celigo apis remove-processor <id> <exportOrImportId>
Remove a page processor from a builder-mode API branch by its export or import ID. GET → splice the processor → PUT.
Signature
Arguments
<id>
string
Yes
API resource ID.
<exportOrImportId>
string
Yes
Export or import ID to remove.
Flags
--router <routerId>
string
—
Target a specific router.
--branch <branchName>
string
—
Target a specific branch.
-y, --yes
boolean
false
Skip confirmation prompt.
Example
Corresponds to: PUT /v1/apis/{_id} (operationId: updateApi) — issued after an internal GET /v1/apis/{_id}.
celigo apis set-group / unset-group
Assign APIs to an API group, or remove them from their group. Mirrors flows set-group/unset-group — pass the API IDs as positional arguments; no stdin body.
Signature
Arguments
<apiGroupingId>
string
Yes (set-group)
The API group to assign the APIs to.
<apiIds...>
string
Yes
One or more API resource IDs.
Example
Corresponds to: PUT /v1/apis/updateApiGrouping (operationId: updateApiGrouping). unset-group sends _apiGroupingId: null to ungroup.
celigo apis test-run <id>
Start a test run of an API and return stage-by-stage results, including metadata, flowJob, and childJobs.
Signature
Arguments
<id>
string
Yes
API resource ID.
Flags
--export <exportId>
string
—
Export ID (page generator). Sent as _exportId in the request body.
Example
Corresponds to: POST /v1/apis/{_id}/test/run (internal to the CLI; not published in api.yml).
celigo apis test-run-step-results <id> <runId> <exportOrImportId>
Get stage-by-stage results for a single step within a test run. runId and step IDs come from the test-run response. Base64-encoded responses are automatically decoded.
Signature
Arguments
<id>
string
Yes
API resource ID.
<runId>
string
Yes
Test-run ID returned from apis test-run.
<exportOrImportId>
string
Yes
Step ID (export or import) within the test run.
Flags
Uses global flags only.
Example
Corresponds to: GET /v1/apis/{_id}/test/run/{runId}/{exportOrImportId} (internal to the CLI; not published in api.yml).
celigo apis test-run-step-logs <id> <runId> <exportOrImportId>
List HTTP request/response logs for a single test-run step. Logs are only recorded for steps that issued outbound HTTP calls (exports, imports, lookups). Routers and stages that didn't make HTTP requests return 404 Not Found by design; the CLI rewrites that error into a clearer message.
Signature
Arguments
<id>
string
Yes
API resource ID.
<runId>
string
Yes
Test-run ID from apis test-run.
<exportOrImportId>
string
Yes
Step ID (export or import) within the test run.
Flags
Uses global flags only.
Example
Corresponds to: GET /v1/apis/{_id}/test/run/{runId}/{exportOrImportId}/logs/requestAndResponse (internal to the CLI; not published in api.yml).
celigo apis debug-requests <id> <exportOrImportId>
List debug request log entries for a specific export or import invoked by the API. Requires debugUntil to be set on that step (use exports set or imports set to enable debug first).
Signature
Arguments
<id>
string
Yes
API resource ID.
<exportOrImportId>
string
Yes
Export or import step ID inside the API.
Flags
--since <minutes>
integer
60
Show requests from the last N minutes. Translated to time_gt (epoch ms).
Example
Corresponds to: GET /v1/apis/{_id}/{exportOrImportId}/requests?time_gt=<epochMs> (internal to the CLI; not published in api.yml).
celigo apis debug-request-detail <id> <exportOrImportId> <key>
Fetch full request/response detail for one debug log entry. The key comes from apis debug-requests.
Signature
Arguments
<id>
string
Yes
API resource ID.
<exportOrImportId>
string
Yes
Export or import step ID inside the API.
<key>
string
Yes
Debug log entry key from apis debug-requests.
Flags
Uses global flags only.
Example
Corresponds to: GET /v1/apis/{_id}/{exportOrImportId}/requests/{key} (internal to the CLI; not published in api.yml).
Gotchas
No
apis testsubcommand. For end-to-end testing against a live inbound URL,curlthe API's published endpoint directly.test-runis a synthetic, stage-by-stage test harness — not a real HTTP invocation.cloneonly works on builder-mode APIs. Script-mode APIs throw immediately.--api-versionis required.clonereturns an array, not a single resource. Pipe with--jq '.[] | {model, id: ._id}'to flatten.clone --dry-runcreates nothing. It returns{ canClone }after checking the target version, method, andrelativeURIfor a conflict. Run it first when scripting a clone, so a route collision fails before any resource is copied.downloadcovers builder-mode APIs only. Script-mode APIs cannot be exported as a template. The archive includes referenced imports, exports, connections, and scripts, so it is a complete installable unit rather than the API document alone.add-processor/remove-processorrewrite the whole API. They do GET → mutate → PUT, so any concurrent edits made through the UI between those calls are clobbered.test-run-step-logsreturns404 Not Foundby design for steps that didn't issue outbound HTTP calls (e.g., routers, pure transforms). The CLI rewrites the error, but the absence of logs is normal.debug-requestsrequiresdebugUntilto be set on the target export or import. Without it the endpoint returns an empty array, not an error.logs(inbound) anddebug-requests(outbound) are different surfaces.logscaptures callers hitting the API;debug-requestscaptures the API's own outbound calls to exports/imports.request-historyonly shows logged runs. An entry is recorded per inbound request only whilelogging.modeis anything other thanno_logging, and the per-step trace thatexecution-logsprints is recorded only fordetailed/debugruns. Turn logging on first:celigo apis set <id> logging.mode=detailed.A full PUT cannot change
logging. The server silently ignoresloggingedits onupdate— the mode revert-persists asbasicwithout an error. Useapis set, which routeslogging.mode,logging.debugUntil, andtraceKeyTemplatethrough an atomic PATCH.
When to use a Celigo API vs. a Flow
Caller needs an immediate response
No
Yes
Work can be async (queue for batch processing)
Yes
No
Caller can't authenticate to the target
No
Yes (proxy pattern)
High-volume, throughput-focused batch
Yes
No
Related
flows — async, scheduled pipelines; the counterpart to synchronous APIs.
tools — APIs often orchestrate tools under the hood.
mcp-servers — builder-mode APIs can be exposed as MCP endpoints.
Last updated
Was this helpful?