Marketplace API
Marketplace endpoints exposed by the Devotel CPaaS API Base path:/api/v1/marketplace
Endpoint count: 7
List marketplace listings
GET /api/v1/marketplacepublished listings are returned — drafts, submissions awaiting review, and rejected listings are never exposed here. Page forward with the cursor from the previous response’s meta.pagination.cursor, and narrow the catalog with type.
string
Opaque cursor for the next page, taken from a previous response’s
meta.pagination.cursor.integer
Listings per page (default 25, maximum 100).
string
Filter by listing type:
agent_template, flow_template, integration, or agent_tool.string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to
true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.Get a marketplace listing
GET /api/v1/marketplace/{id}config payload that installing it copies into your workspace — the agent definition, flow graph, integration settings, or tool pack. No authentication is required. A listing that is still a draft, awaiting review, or rejected returns 404, so an unpublished listing never leaks through a guessed id.
string
required
Marketplace listing identifier, as returned by
GET /marketplace.string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to
true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.List your own marketplace listings
GET /api/v1/marketplace/minedraft, pending_review, published, and rejected. The public catalog read returns published listings only, so this is the endpoint that surfaces a submission still waiting on review, a draft you have not submitted yet, and a listing that was rejected. Results are always scoped to your own organization and ordered newest first. Page forward with the cursor from the previous response, and narrow with type or status. Requires the owner, admin, or developer role.
string
Opaque cursor for the next page, taken from a previous response’s
meta.pagination.cursor.integer
Listings per page (default 25, maximum 100).
string
Filter by listing type:
agent_template, flow_template, integration, or agent_tool.string
Filter by lifecycle status:
draft, pending_review, published, or rejected. Omit to get every status.string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to
true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.Create a marketplace listing
POST /api/v1/marketplacetype and name are required. The listing starts in draft and stays out of the public catalog until you submit it for review and a platform reviewer approves it. config is the payload another tenant receives on install, and it is readable by anyone once the listing is live — never put API keys or other secrets in it. Requires the owner, admin, or developer role.
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the
Idempotency-Replay: true response header.string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to
true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.string
What you are publishing:
agent_template, flow_template, integration, or agent_tool.string
Listing name shown in the marketplace catalog.
string
What the listing does and who it is for, shown on the listing detail page.
object
The installable payload — the agent definition, flow graph, integration settings, or tool definition. Publicly readable once the listing is published, so it must not contain secrets.
Install a marketplace listing
POST /api/v1/marketplace/{id}/installdraft status that you can open and edit immediately; other types copy their configuration into your tenant. Installing the same agent template twice returns the existing agent instead of creating a duplicate. Paid listings deduct their price from your wallet before the install is created and credit the builder’s share to the author. Only published listings can be installed — anything else returns 404. Requires the owner, admin, or developer role.
string
required
Marketplace listing identifier, as returned by
GET /marketplace.string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the
Idempotency-Replay: true response header.string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to
true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.Update a marketplace listing
PUT /api/v1/marketplace/{id}config of a listing your organization authored. Every field is optional — omit one to leave it unchanged. Set status to pending_review to submit the listing for approval, or back to draft to pull it out of the review queue. You cannot set status to published yourself: only a platform reviewer approves a listing. Requires the owner, admin, or developer role.
string
required
Marketplace listing identifier, as returned by
GET /marketplace.string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the
Idempotency-Replay: true response header.string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to
true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.string
New listing name.
string
New listing description.
object
Replacement installable payload. Publicly readable once the listing is published, so it must not contain secrets.
string
Lifecycle status you are moving the listing to:
draft or pending_review. published is reviewer-only; rejected is written by the review decision.Delete a marketplace listing
DELETE /api/v1/marketplace/{id}string
required
Marketplace listing identifier, as returned by
GET /marketplace.string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to
true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.204 No Content