Skip to main content

Run a delivered managed build with API, MCP, CLI, or SDK

List, inspect, price-check, run, and recover a Final Build from every supported programmatic surface.

Written by Josh Whitfield

Only a Final Build owned by the authenticated workspace is callable. Start by listing or inspecting the build, confirm its input contract and fixed credit price, then create one intended run and save the returned run_id.

Before every live run

  1. Confirm the selected Signaliz workspace.

  2. List the workspace’s Final Builds or inspect the exact BLD-... ID.

  3. Match your input to the delivered input_schema.

  4. Review fixed_credits_per_run and clay_credits_budget_per_run.

  5. Use one stable idempotency key for that intended run.

  6. Save the returned UUID run_id and recover it until terminal.

The JSON input may be up to 256 KiB. When input.records is used, a run accepts at most 5,000 record objects. Split larger work according to the delivered runbook.

REST API

Use the production base https://api.signaliz.com/functions/v1/api with a Bearer API key from the owning workspace.

List delivered builds

curl "https://api.signaliz.com/functions/v1/api/v1/managed-builds" \   -H "Authorization: Bearer YOUR_SIGNALIZ_API_KEY"

Inspect the build contract

curl "https://api.signaliz.com/functions/v1/api/v1/managed-builds/BLD-XXXXXXXXXXXX" \   -H "Authorization: Bearer YOUR_SIGNALIZ_API_KEY"

Create one intended run

Use a write-capable or spend:credits API key.

curl -X POST \   "https://api.signaliz.com/functions/v1/api/v1/managed-builds/BLD-XXXXXXXXXXXX/runs" \   -H "Authorization: Bearer YOUR_SIGNALIZ_API_KEY" \   -H "Content-Type: application/json" \   -H "Idempotency-Key: managed-build-2026-08-03-run-001" \   -d '{"input":{"records":[{"domain":"example.com"}]}}'

An accepted run returns HTTP 202, the durable run_id, fixed credits charged, billing status, and queue status.

Recover status and results

curl "https://api.signaliz.com/functions/v1/api/v1/managed-build-runs/RUN_UUID?limit=100" \   -H "Authorization: Bearer YOUR_SIGNALIZ_API_KEY"

limit can be 1–500. Poll the same run_id; do not submit a new paid run because a client timed out.

MCP and AI clients

Managed Builds expose four tools:

  • list_managed_builds

  • get_managed_build

  • run_managed_build

  • get_managed_build_run

For run_managed_build, first pass dry_run: true. The tool returns the exact fixed price and Clay budget without charging or dispatching. For live execution, use confirm_spend: true and set max_credits to an approved ceiling.

{   "build_id": "BLD-XXXXXXXXXXXX",   "input": { "records": [{ "domain": "example.com" }] },   "idempotency_key": "managed-build-2026-08-03-run-001",   "dry_run": false,   "confirm_spend": true,   "max_credits": 125 }

If the fixed price exceeds max_credits, MCP stops before charge. If confirm_spend is absent, it returns APPROVAL_REQUIRED instead of creating a run.

CLI

signaliz builds list signaliz builds get --build-id BLD-XXXXXXXXXXXX signaliz builds run --build-id BLD-XXXXXXXXXXXX --input request.json --idempotency-key managed-build-2026-08-03-run-001 signaliz builds status --run-id RUN_UUID --limit 100

The run command creates live spend. Inspect the build first and use the same idempotency key only to recover that exact intended run.

TypeScript SDK

import { Signaliz } from "@signaliz/sdk";  const signaliz = new Signaliz({ apiKey: process.env.SIGNALIZ_API_KEY! }); const { build } = await signaliz.getManagedBuild("BLD-XXXXXXXXXXXX");  const started = await signaliz.runManagedBuild(   build.build_id,   { records: [{ domain: "example.com" }] },   "managed-build-2026-08-03-run-001", );  const finished = await signaliz.getManagedBuildRun(started.run.run_id, 100);

Idempotency and billing

Each new intended execution needs a new idempotency key. Reusing the same key with the same build and input replays the original reservation rather than charging twice. Reusing it with a different build or different input returns an idempotency conflict.

Credits are reserved atomically before dispatch. If the workspace has insufficient credits, no run is dispatched. If dispatch fails after reservation, the reservation is refunded and the response reports zero credits charged with refunded billing state.

Next: Troubleshoot a managed build and read its receipts.

Did this answer your question?