Skip to content

List a site’s included apps

GET
/teams/{teamId}/domains/{domainId}/included-apps
curl --request GET \
--url 'https://qinto-api.blotout.io/teams/7b8d1a52-6c1e-4b6f-9a30-2f8a54d1c3e9/domains/3f2a9c81-5d47-4e0b-8c66-91b2a7f04d15/included-apps?cursorName=Facebook%20CAPI&cursorId=5a6b7c8d-9e0f-4a1b-8c2d-3e4f5a6b7c8d&limit=50' \
--header 'Authorization: Bearer <token>'

Lists one page of the apps a bundle the team bought covers on the site that the site does not run yet. Install one with the install operation at no charge beyond the bundle: it needs no charge approval.

How it works

Each app comes with the purchase that covers it, the version an install takes and that version’s consent category and legal links. An app that joined the bundle after the purchase is listed like any other; one the site runs, or one that was deleted, is not. Only a token with a user lists; a team API token is refused.

Required permissions

  • domain:read on all domains, or on the addressed domain when its id is in the route
teamId
required

Unique id (UUID) of the team that owns the addressed resources, as shown in the team settings on the Blotout platform.

string format: uuid

Example

7b8d1a52-6c1e-4b6f-9a30-2f8a54d1c3e9

Unique id (UUID) of the team that owns the addressed resources, as shown in the team settings on the Blotout platform.

domainId
required

Unique id (UUID) of the site, as returned by the site operations.

string format: uuid

Example

3f2a9c81-5d47-4e0b-8c66-91b2a7f04d15

Unique id (UUID) of the site, as returned by the site operations.

cursorName

The nextCursor.name of the previous page.

string

Example

Facebook CAPI

The nextCursor.name of the previous page.

cursorId

The nextCursor.id of the previous page.

string

Example

5a6b7c8d-9e0f-4a1b-8c2d-3e4f5a6b7c8d

The nextCursor.id of the previous page.

limit

Page size, 1–200 (default 50).

integer
>= 1 <= 200

Example

50

Page size, 1–200 (default 50).

The included apps.

Media typeapplication/json
object
apps
required

One page of the site’s included apps, A–Z by name.

Array<object>

An app a bundle purchase covers on the site that the site does not run yet.

object
appId
required

Id of the app.

string
slug
required

Slug of the app, to pass to the install operation.

string
name
required

Display name of the app.

string
iconHash
required

Content hash of the app’s icon; null when it has none.

string | null
publisher
required

The developer organization’s name.

string
bundlePurchaseId
required

The team’s purchase that covers the app on this site.

string
bundleName
required

The name of the bundle the purchase holds.

string
version
required

The version an install takes: the newest the site may run.

string
consentCategory
required

The consent category that version declares; necessary needs acknowledgeNecessary to install.

string
Allowed values: necessary functional analytics marketing salesOfData
legal
required

The developer’s legal documents, accepted when the bundle was bought.

object
termsUrl
required

The developer’s terms for the app.

string
privacyUrl
required

The developer’s privacy policy for the app.

string
nextCursor
required

Pass it as cursorName and cursorId for the next page; null on the last page.

object
name
required

Name of the last listed app.

string
id
required

Id of the last listed app.

string

Example

{
"apps": [
{
"appId": "5a6b7c8d-9e0f-4a1b-8c2d-3e4f5a6b7c8d",
"slug": "facebook-capi",
"name": "Facebook CAPI",
"iconHash": null,
"publisher": "Acme Dev",
"bundlePurchaseId": "9c1d2e3f-4a5b-4c6d-8e7f-0a1b2c3d4e5f",
"bundleName": "Growth Stack",
"version": "1.4.1",
"consentCategory": "necessary",
"legal": {
"termsUrl": "https://example.com/legal/terms",
"privacyUrl": "https://example.com/legal/privacy"
}
}
],
"nextCursor": {
"name": "Facebook CAPI",
"id": "5a6b7c8d-9e0f-4a1b-8c2d-3e4f5a6b7c8d"
}
}

invalid_params — A path parameter failed validation (for example a malformed UUID); details pinpoints the offending parameter.

Media typeapplication/json
object
error
required

Machine-readable error slug; switch on this value rather than on the HTTP status alone.

string
Allowed values: invalid_params
details

Field-level validation errors: a tree keyed by input property, each node carrying an errors array of human-readable messages. Render it to help the caller correct the request.

object
key
additional properties

Example

{
"error": "invalid_params",
"details": {
"errors": [],
"properties": {
"teamId": {
"errors": [
"Invalid UUID"
]
}
}
}
}

unauthenticated — The Authorization: Bearer token is missing, malformed, or no longer valid. Generate a team API token or obtain a new OAuth access token.

Media typeapplication/json
object
error
required

Machine-readable error slug; switch on this value rather than on the HTTP status alone.

string
Allowed values: unauthenticated

Example

{
"error": "unauthenticated"
}

forbidden — The bearer credential lacks the required permission or belongs to another team, or its user lacks the organization role a developer operation needs. Update its policies, use a credential bound to the addressed team, or ask an organization owner for the role; message states the reason when one is known.

Media typeapplication/json
object
error
required

Machine-readable error slug; switch on this value rather than on the HTTP status alone.

string
Allowed values: forbidden
message

Human-readable reason for this specific failure, intended for display — do not parse it programmatically.

string

Example

{
"error": "forbidden",
"message": "The Cloudflare API token is invalid or expired."
}

internal — Unexpected server error. Nothing is guaranteed to have been persisted; idempotent operations are safe to retry.

Media typeapplication/json
object
error
required

Machine-readable error slug; switch on this value rather than on the HTTP status alone.

string
Allowed values: internal

Example

{
"error": "internal"
}