> For the complete documentation index, see [llms.txt](https://developer.celigo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.celigo.com/api/api-reference/marketplace.md).

# Marketplace

Browse Celigo marketplace content. The marketplace contains two types of entries:

* **Integration Apps** — licensed, Celigo-built connectors (e.g. Shopify–NetSuite) that install with managed updates.
* **Templates** — reusable integration blueprints that create a set of resources (integration, connections, flows, exports, imports, scripts) when installed.

You can preview what a template would create before committing to the install.

### Marketplace entry schema

## The MarketplaceEntry object

```json
{"openapi":"3.2.0","info":{"title":"Marketplace","version":"1.0.0"},"components":{"schemas":{"MarketplaceEntry":{"type":"object","required":["_id","name","description","applications","numInstalls","user","lastModified"],"description":"A single marketplace listing — either an Integration App (`docType: Connector`)\nor a Template (`docType: Template`). `docType` is only present in\n`POST /v1/published/combined` responses; `GET /v1/published` entries (Connectors\nonly) omit the field.","properties":{"_id":{"type":"string","format":"objectId","description":"Marketplace entry id. For Templates, use this with `/v1/templates/{_id}/preview`."},"name":{"type":"string","description":"Display name of the marketplace entry."},"description":{"type":"string","description":"Marketing description shown in the marketplace listing."},"imageURL":{"type":"string","description":"Relative image path (e.g. `/images/company-logos/amazon-netsuite.png`)\nor absolute URL. Not always present on Template entries."},"websiteURL":{"type":"string","format":"uri","description":"External product page URL. Rare on Template entries."},"applications":{"type":"array","description":"Systems this marketplace entry bridges. Values are either\nwell-known application slugs (`netsuite`, `shopify`, `amazonmws`) or\nobject ids referencing an Application definition.","items":{"type":"string"}},"user":{"type":"object","description":"Publisher metadata.","properties":{"name":{"type":"string","description":"Publisher display name."},"company":{"type":"string","description":"Publisher's company. For Celigo-built content this is `\"Celigo\"`."}}},"trialEnabled":{"type":"boolean","description":"Whether this entry offers a trial install. Populated on Integration\nApp entries; rarely set on Templates."},"lastModified":{"type":"string","format":"date-time","description":"When the marketplace entry was last updated."},"numInstalls":{"type":"integer","description":"Live install counter across all Celigo accounts. Used as the\n`sort_by=numInstalls` key."},"docType":{"type":"string","enum":["Connector","Template"],"description":"Discriminator distinguishing Integration Apps from Templates. Only\npopulated in `POST /v1/published/combined` responses. Absent in\n`GET /v1/published` (Connectors only)."},"framework":{"type":"string","enum":["twoDotZero"],"description":"Integration App framework version. Present only on Connector entries\nthat use the 2.0 edition-based architecture. When set, the\n`twoDotZero` object contains edition metadata."},"twoDotZero":{"type":"object","description":"Edition metadata for Integration Apps using the 2.0 framework.\nPresent only when `framework` is `twoDotZero`.","properties":{"_integrationId":{"type":"string","format":"objectId","description":"Integration id that backs this Integration App."},"editions":{"type":"array","description":"Available editions (e.g. Starter, Professional). Empty when no editions are configured.","items":{"type":"object","properties":{"_id":{"type":"string","format":"objectId","description":"System-generated unique identifier for the edition."},"displayName":{"type":"string","description":"Edition label shown to users (e.g. \"Starter Edition\")."},"order":{"type":"integer","description":"Display order among editions."},"resources":{"type":"object","description":"Resource ids included in this edition.","properties":{"_flowIds":{"type":"array","description":"Ids of the flows included in this edition.","items":{"type":"string","format":"objectId"}},"_importIds":{"type":"array","description":"Ids of the imports included in this edition.","items":{"type":"string","format":"objectId"}},"_exportIds":{"type":"array","description":"Ids of the exports included in this edition.","items":{"type":"string","format":"objectId"}},"_connectionIds":{"type":"array","description":"Ids of the connections included in this edition.","items":{"type":"string","format":"objectId"}},"_asyncHelperIds":{"type":"array","description":"Ids of the async helpers included in this edition.","items":{"type":"string","format":"objectId"}},"_fileDefinitionIds":{"type":"array","description":"Ids of the file definitions included in this edition.","items":{"type":"string","format":"objectId"}}}},"childResources":{"type":"object","description":"Child resource ids (for parent-child Integration Apps).","properties":{"_flowIds":{"type":"array","description":"Ids of the flows included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_importIds":{"type":"array","description":"Ids of the imports included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_exportIds":{"type":"array","description":"Ids of the exports included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_connectionIds":{"type":"array","description":"Ids of the connections included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_asyncHelperIds":{"type":"array","description":"Ids of the async helpers included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_fileDefinitionIds":{"type":"array","description":"Ids of the file definitions included in this edition's child integrations.","items":{"type":"string","format":"objectId"}}}}}}},"isParentChild":{"type":"boolean","description":"When true, this Integration App uses the parent-child model."}}}}}}}}
```

## Preview a template's installed resource docs

> Returns the concrete resource documents a template would create if\
> installed. The response is an envelope \`{objects, stackRequired}\` where\
> \`objects\` is an array of \`{model, doc}\` entries — one per resource that\
> the install step would materialize.\
> \
> \`stackRequired\` is \`true\` when the template includes NetSuite-distributed\
> resources that need a dedicated stack — the installer prompts for one\
> before the install proceeds.\
> \
> The ID must belong to a Template, not a Connector (Integration App).\
> Connector IDs from \`/v1/published\` return 404 here -- pull template\
> IDs from the \`Template\`-typed entries of \`POST /v1/published/combined\`.

```json
{"openapi":"3.2.0","info":{"title":"Marketplace","version":"1.0.0"},"tags":[{"name":"Marketplace","description":"Browse Celigo marketplace content. The marketplace contains two types\nof entries:\n\n- **Integration Apps** — licensed, Celigo-built connectors (e.g.\n  Shopify–NetSuite) that install with managed updates.\n- **Templates** — reusable integration blueprints that create a set of\n  resources (integration, connections, flows, exports, imports, scripts)\n  when installed.\n\nYou can preview what a template would create before committing to the\ninstall.\n\n## Marketplace entry schema\n\n{% openapi-schemas spec=\"marketplace\" schemas=\"MarketplaceEntry\" grouped=\"true\" %}"}],"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"},{"url":"https://api.au.integrator.io","description":"Production (AU region)"},{"url":"https://api.ca.integrator.io","description":"Production (CA region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"TemplatePreviewResponse":{"type":"object","description":"Envelope describing what a template's install would produce. `objects[]`\nenumerates each resource doc the installer would create, tagged by\n`model`. The docs are populated with the template's defaults and\nplaceholder ids that the installer rewrites during the real install.","properties":{"objects":{"type":"array","description":"Resource docs the installer would materialize. Ordering is\ntypically `Integration` first (exactly one), then `Connection`s,\n`Export`s, `Import`s, `Flow`s, `Script`s.","items":{"type":"object","description":"One resource doc tagged with its model type.","properties":{"model":{"type":"string","enum":["Integration","Connection","Export","Import","Flow","Script","AsyncHelper"],"description":"Resource class this doc describes."},"doc":{"type":"object","description":"The concrete resource document. Shape matches the write shape\nof the corresponding resource endpoint (e.g. `POST /v1/flows`,\n`POST /v1/exports`, etc.). Fields are populated with the\ntemplate's defaults; ids are placeholders that the installer\nreplaces during the real install.","additionalProperties":true}}}},"stackRequired":{"type":"boolean","description":"`true` when the template includes NetSuite-distributed resources\nthat need a dedicated stack — the installer prompts for one before\nthe install proceeds. `false` for Shopify / HTTP / file-only\ntemplates."}}},"Error":{"type":"object","description":"Standard error response envelope returned by integrator.io APIs.","properties":{"errors":{"type":"array","description":"List of errors that occurred while processing the request.","items":{"type":"object","properties":{"code":{"oneOf":[{"type":"string"},{"type":"integer"}],"description":"Machine-readable error code. Usually a string like\n`invalid_ref`, `missing_required_field`, or `unauthorized`;\nmay be an **integer** when the error mirrors an upstream HTTP\nstatus (e.g. `500`) — most commonly returned by connection-ping\nand adaptor-proxy responses."},"message":{"type":"string","description":"Human-readable description of the error."},"field":{"type":"string","description":"Optional pointer to the document field that caused the error.\nUsed by structural validation errors (`missing_required_field`,\n`invalid_ref`) to indicate which field is at fault\n(e.g. `_id`, `type`, `http.baseURI`)."},"source":{"type":"string","description":"Optional origin layer for the error — e.g. `application` when\nthe error came from the remote system the adaptor called,\n`connector` when the adaptor itself rejected the request."}},"required":["message"]}}},"required":["errors"]}},"responses":{"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}}}},"paths":{"/v1/templates/{_id}/preview":{"get":{"operationId":"previewTemplate","tags":["Marketplace"],"summary":"Preview a template's installed resource docs","description":"Returns the concrete resource documents a template would create if\ninstalled. The response is an envelope `{objects, stackRequired}` where\n`objects` is an array of `{model, doc}` entries — one per resource that\nthe install step would materialize.\n\n`stackRequired` is `true` when the template includes NetSuite-distributed\nresources that need a dedicated stack — the installer prompts for one\nbefore the install proceeds.\n\nThe ID must belong to a Template, not a Connector (Integration App).\nConnector IDs from `/v1/published` return 404 here -- pull template\nIDs from the `Template`-typed entries of `POST /v1/published/combined`.","parameters":[{"name":"_id","in":"path","required":true,"description":"Template id from `POST /v1/published/combined`.","schema":{"type":"string","format":"objectId"}}],"responses":{"200":{"description":"Template preview envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplatePreviewResponse"}}}},"401":{"$ref":"#/components/responses/401-unauthorized"},"404":{"description":"No template matched the id. Most commonly: the id belongs to a\nConnector (Integration App) rather than a Template — Connectors are\ninstalled via `/v1/integrations/<id>/install`, not through this\npreview endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## List published Integration Apps (Connectors)

> Returns the marketplace catalog of \*\*Integration Apps\*\* — the\
> Celigo-built, fully-managed connectors that install as a single\
> integration. Roughly 30 entries curated by Celigo.\
> \
> Each item is a marketplace listing, not an integration instance —\
> \`\_id\` is the marketplace entry id, the \`applications\` array enumerates\
> the systems the connector bridges, and \`numInstalls\` is the live install\
> counter across all Celigo accounts.\
> \
> For a combined list that also includes user-installable Templates,\
> use \`POST /v1/published/combined\` instead. Entries here have no\
> \`docType\` field -- that discriminator only appears in the combined\
> endpoint's response.

```json
{"openapi":"3.2.0","info":{"title":"Marketplace","version":"1.0.0"},"tags":[{"name":"Marketplace","description":"Browse Celigo marketplace content. The marketplace contains two types\nof entries:\n\n- **Integration Apps** — licensed, Celigo-built connectors (e.g.\n  Shopify–NetSuite) that install with managed updates.\n- **Templates** — reusable integration blueprints that create a set of\n  resources (integration, connections, flows, exports, imports, scripts)\n  when installed.\n\nYou can preview what a template would create before committing to the\ninstall.\n\n## Marketplace entry schema\n\n{% openapi-schemas spec=\"marketplace\" schemas=\"MarketplaceEntry\" grouped=\"true\" %}"}],"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"},{"url":"https://api.au.integrator.io","description":"Production (AU region)"},{"url":"https://api.ca.integrator.io","description":"Production (CA region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"MarketplaceEntry":{"type":"object","required":["_id","name","description","applications","numInstalls","user","lastModified"],"description":"A single marketplace listing — either an Integration App (`docType: Connector`)\nor a Template (`docType: Template`). `docType` is only present in\n`POST /v1/published/combined` responses; `GET /v1/published` entries (Connectors\nonly) omit the field.","properties":{"_id":{"type":"string","format":"objectId","description":"Marketplace entry id. For Templates, use this with `/v1/templates/{_id}/preview`."},"name":{"type":"string","description":"Display name of the marketplace entry."},"description":{"type":"string","description":"Marketing description shown in the marketplace listing."},"imageURL":{"type":"string","description":"Relative image path (e.g. `/images/company-logos/amazon-netsuite.png`)\nor absolute URL. Not always present on Template entries."},"websiteURL":{"type":"string","format":"uri","description":"External product page URL. Rare on Template entries."},"applications":{"type":"array","description":"Systems this marketplace entry bridges. Values are either\nwell-known application slugs (`netsuite`, `shopify`, `amazonmws`) or\nobject ids referencing an Application definition.","items":{"type":"string"}},"user":{"type":"object","description":"Publisher metadata.","properties":{"name":{"type":"string","description":"Publisher display name."},"company":{"type":"string","description":"Publisher's company. For Celigo-built content this is `\"Celigo\"`."}}},"trialEnabled":{"type":"boolean","description":"Whether this entry offers a trial install. Populated on Integration\nApp entries; rarely set on Templates."},"lastModified":{"type":"string","format":"date-time","description":"When the marketplace entry was last updated."},"numInstalls":{"type":"integer","description":"Live install counter across all Celigo accounts. Used as the\n`sort_by=numInstalls` key."},"docType":{"type":"string","enum":["Connector","Template"],"description":"Discriminator distinguishing Integration Apps from Templates. Only\npopulated in `POST /v1/published/combined` responses. Absent in\n`GET /v1/published` (Connectors only)."},"framework":{"type":"string","enum":["twoDotZero"],"description":"Integration App framework version. Present only on Connector entries\nthat use the 2.0 edition-based architecture. When set, the\n`twoDotZero` object contains edition metadata."},"twoDotZero":{"type":"object","description":"Edition metadata for Integration Apps using the 2.0 framework.\nPresent only when `framework` is `twoDotZero`.","properties":{"_integrationId":{"type":"string","format":"objectId","description":"Integration id that backs this Integration App."},"editions":{"type":"array","description":"Available editions (e.g. Starter, Professional). Empty when no editions are configured.","items":{"type":"object","properties":{"_id":{"type":"string","format":"objectId","description":"System-generated unique identifier for the edition."},"displayName":{"type":"string","description":"Edition label shown to users (e.g. \"Starter Edition\")."},"order":{"type":"integer","description":"Display order among editions."},"resources":{"type":"object","description":"Resource ids included in this edition.","properties":{"_flowIds":{"type":"array","description":"Ids of the flows included in this edition.","items":{"type":"string","format":"objectId"}},"_importIds":{"type":"array","description":"Ids of the imports included in this edition.","items":{"type":"string","format":"objectId"}},"_exportIds":{"type":"array","description":"Ids of the exports included in this edition.","items":{"type":"string","format":"objectId"}},"_connectionIds":{"type":"array","description":"Ids of the connections included in this edition.","items":{"type":"string","format":"objectId"}},"_asyncHelperIds":{"type":"array","description":"Ids of the async helpers included in this edition.","items":{"type":"string","format":"objectId"}},"_fileDefinitionIds":{"type":"array","description":"Ids of the file definitions included in this edition.","items":{"type":"string","format":"objectId"}}}},"childResources":{"type":"object","description":"Child resource ids (for parent-child Integration Apps).","properties":{"_flowIds":{"type":"array","description":"Ids of the flows included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_importIds":{"type":"array","description":"Ids of the imports included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_exportIds":{"type":"array","description":"Ids of the exports included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_connectionIds":{"type":"array","description":"Ids of the connections included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_asyncHelperIds":{"type":"array","description":"Ids of the async helpers included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_fileDefinitionIds":{"type":"array","description":"Ids of the file definitions included in this edition's child integrations.","items":{"type":"string","format":"objectId"}}}}}}},"isParentChild":{"type":"boolean","description":"When true, this Integration App uses the parent-child model."}}}}}},"responses":{"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}}}},"paths":{"/v1/published":{"get":{"operationId":"listPublishedConnectors","tags":["Marketplace"],"summary":"List published Integration Apps (Connectors)","description":"Returns the marketplace catalog of **Integration Apps** — the\nCeligo-built, fully-managed connectors that install as a single\nintegration. Roughly 30 entries curated by Celigo.\n\nEach item is a marketplace listing, not an integration instance —\n`_id` is the marketplace entry id, the `applications` array enumerates\nthe systems the connector bridges, and `numInstalls` is the live install\ncounter across all Celigo accounts.\n\nFor a combined list that also includes user-installable Templates,\nuse `POST /v1/published/combined` instead. Entries here have no\n`docType` field -- that discriminator only appears in the combined\nendpoint's response.","responses":{"200":{"description":"Array of Integration App (Connector) marketplace entries.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MarketplaceEntry"}}}}},"401":{"$ref":"#/components/responses/401-unauthorized"}}}}}}
```

## List Integration Apps and Templates together

> Returns a unified array of \*\*all\*\* marketplace content — both Integration\
> Apps (\`docType: Connector\`) and Templates (\`docType: Template\`). Each\
> entry carries the \`docType\` discriminator so callers can partition.\
> \
> Despite being a POST, this is a \*\*read-only, safe\*\* endpoint — the body\
> is an empty \`{}\` in the default CLI invocation. POST is used purely to\
> carry sort and filter parameters that don't fit cleanly in a query\
> string. The route is POST-only.\
> \
> Always send \`Content-Type: application/json\` with at least \`{}\` as\
> the body. For Connector-only listings, \`GET /v1/published\` is\
> lighter.

```json
{"openapi":"3.2.0","info":{"title":"Marketplace","version":"1.0.0"},"tags":[{"name":"Marketplace","description":"Browse Celigo marketplace content. The marketplace contains two types\nof entries:\n\n- **Integration Apps** — licensed, Celigo-built connectors (e.g.\n  Shopify–NetSuite) that install with managed updates.\n- **Templates** — reusable integration blueprints that create a set of\n  resources (integration, connections, flows, exports, imports, scripts)\n  when installed.\n\nYou can preview what a template would create before committing to the\ninstall.\n\n## Marketplace entry schema\n\n{% openapi-schemas spec=\"marketplace\" schemas=\"MarketplaceEntry\" grouped=\"true\" %}"}],"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"},{"url":"https://api.au.integrator.io","description":"Production (AU region)"},{"url":"https://api.ca.integrator.io","description":"Production (CA region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"MarketplaceEntry":{"type":"object","required":["_id","name","description","applications","numInstalls","user","lastModified"],"description":"A single marketplace listing — either an Integration App (`docType: Connector`)\nor a Template (`docType: Template`). `docType` is only present in\n`POST /v1/published/combined` responses; `GET /v1/published` entries (Connectors\nonly) omit the field.","properties":{"_id":{"type":"string","format":"objectId","description":"Marketplace entry id. For Templates, use this with `/v1/templates/{_id}/preview`."},"name":{"type":"string","description":"Display name of the marketplace entry."},"description":{"type":"string","description":"Marketing description shown in the marketplace listing."},"imageURL":{"type":"string","description":"Relative image path (e.g. `/images/company-logos/amazon-netsuite.png`)\nor absolute URL. Not always present on Template entries."},"websiteURL":{"type":"string","format":"uri","description":"External product page URL. Rare on Template entries."},"applications":{"type":"array","description":"Systems this marketplace entry bridges. Values are either\nwell-known application slugs (`netsuite`, `shopify`, `amazonmws`) or\nobject ids referencing an Application definition.","items":{"type":"string"}},"user":{"type":"object","description":"Publisher metadata.","properties":{"name":{"type":"string","description":"Publisher display name."},"company":{"type":"string","description":"Publisher's company. For Celigo-built content this is `\"Celigo\"`."}}},"trialEnabled":{"type":"boolean","description":"Whether this entry offers a trial install. Populated on Integration\nApp entries; rarely set on Templates."},"lastModified":{"type":"string","format":"date-time","description":"When the marketplace entry was last updated."},"numInstalls":{"type":"integer","description":"Live install counter across all Celigo accounts. Used as the\n`sort_by=numInstalls` key."},"docType":{"type":"string","enum":["Connector","Template"],"description":"Discriminator distinguishing Integration Apps from Templates. Only\npopulated in `POST /v1/published/combined` responses. Absent in\n`GET /v1/published` (Connectors only)."},"framework":{"type":"string","enum":["twoDotZero"],"description":"Integration App framework version. Present only on Connector entries\nthat use the 2.0 edition-based architecture. When set, the\n`twoDotZero` object contains edition metadata."},"twoDotZero":{"type":"object","description":"Edition metadata for Integration Apps using the 2.0 framework.\nPresent only when `framework` is `twoDotZero`.","properties":{"_integrationId":{"type":"string","format":"objectId","description":"Integration id that backs this Integration App."},"editions":{"type":"array","description":"Available editions (e.g. Starter, Professional). Empty when no editions are configured.","items":{"type":"object","properties":{"_id":{"type":"string","format":"objectId","description":"System-generated unique identifier for the edition."},"displayName":{"type":"string","description":"Edition label shown to users (e.g. \"Starter Edition\")."},"order":{"type":"integer","description":"Display order among editions."},"resources":{"type":"object","description":"Resource ids included in this edition.","properties":{"_flowIds":{"type":"array","description":"Ids of the flows included in this edition.","items":{"type":"string","format":"objectId"}},"_importIds":{"type":"array","description":"Ids of the imports included in this edition.","items":{"type":"string","format":"objectId"}},"_exportIds":{"type":"array","description":"Ids of the exports included in this edition.","items":{"type":"string","format":"objectId"}},"_connectionIds":{"type":"array","description":"Ids of the connections included in this edition.","items":{"type":"string","format":"objectId"}},"_asyncHelperIds":{"type":"array","description":"Ids of the async helpers included in this edition.","items":{"type":"string","format":"objectId"}},"_fileDefinitionIds":{"type":"array","description":"Ids of the file definitions included in this edition.","items":{"type":"string","format":"objectId"}}}},"childResources":{"type":"object","description":"Child resource ids (for parent-child Integration Apps).","properties":{"_flowIds":{"type":"array","description":"Ids of the flows included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_importIds":{"type":"array","description":"Ids of the imports included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_exportIds":{"type":"array","description":"Ids of the exports included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_connectionIds":{"type":"array","description":"Ids of the connections included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_asyncHelperIds":{"type":"array","description":"Ids of the async helpers included in this edition's child integrations.","items":{"type":"string","format":"objectId"}},"_fileDefinitionIds":{"type":"array","description":"Ids of the file definitions included in this edition's child integrations.","items":{"type":"string","format":"objectId"}}}}}}},"isParentChild":{"type":"boolean","description":"When true, this Integration App uses the parent-child model."}}}}},"Error":{"type":"object","description":"Standard error response envelope returned by integrator.io APIs.","properties":{"errors":{"type":"array","description":"List of errors that occurred while processing the request.","items":{"type":"object","properties":{"code":{"oneOf":[{"type":"string"},{"type":"integer"}],"description":"Machine-readable error code. Usually a string like\n`invalid_ref`, `missing_required_field`, or `unauthorized`;\nmay be an **integer** when the error mirrors an upstream HTTP\nstatus (e.g. `500`) — most commonly returned by connection-ping\nand adaptor-proxy responses."},"message":{"type":"string","description":"Human-readable description of the error."},"field":{"type":"string","description":"Optional pointer to the document field that caused the error.\nUsed by structural validation errors (`missing_required_field`,\n`invalid_ref`) to indicate which field is at fault\n(e.g. `_id`, `type`, `http.baseURI`)."},"source":{"type":"string","description":"Optional origin layer for the error — e.g. `application` when\nthe error came from the remote system the adaptor called,\n`connector` when the adaptor itself rejected the request."}},"required":["message"]}}},"required":["errors"]}},"responses":{"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}}}},"paths":{"/v1/published/combined":{"post":{"operationId":"listPublishedCombined","tags":["Marketplace"],"summary":"List Integration Apps and Templates together","description":"Returns a unified array of **all** marketplace content — both Integration\nApps (`docType: Connector`) and Templates (`docType: Template`). Each\nentry carries the `docType` discriminator so callers can partition.\n\nDespite being a POST, this is a **read-only, safe** endpoint — the body\nis an empty `{}` in the default CLI invocation. POST is used purely to\ncarry sort and filter parameters that don't fit cleanly in a query\nstring. The route is POST-only.\n\nAlways send `Content-Type: application/json` with at least `{}` as\nthe body. For Connector-only listings, `GET /v1/published` is\nlighter.","parameters":[{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","enum":["numInstalls","name","lastModified"]},"description":"Sort key. `numInstalls` (descending) matches the CLI default.\nOmitting `sort_by` returns results in server-default order."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Body is required (even if empty) because the endpoint is POST\nand the server enforces `Content-Type: application/json` —\notherwise 415. No fields inside the body are currently honored by\nthe server for filtering."}}}},"responses":{"200":{"description":"Array of marketplace entries, both Connectors and Templates.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MarketplaceEntry"}}}}},"400":{"description":"Typically `invalid_query_param` when `sort_by` is outside the\naccepted enum.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/401-unauthorized"},"415":{"description":"Request lacked `Content-Type: application/json`. The server refuses\nto accept the body and returns this even when the body is an empty\nstring.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.celigo.com/api/api-reference/marketplace.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
