Pre-launch API. The concepts described here are settled, but the API shape is not: request and response fields, parameters and defaults can still change. Build against it, and talk to your Luigi's Box contact before you put an integration into production.
const url = 'https://api.eu1.luigisbox.ai/platform/v1/me/entitlements?page=1&size=20';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.eu1.luigisbox.ai/platform/v1/me/entitlements?page=1&size=20' \ --header 'Authorization: Bearer <token>'Return the organizations, catalogs, channels and surfaces the authenticated principal can reach.
Paginated by organization: one item is one organization, with its catalog, channel and
surface subtree nested inside, and total counts organizations. Organizations are ordered
by id, so paging is stable. Credentials granted on every organization page over all of
them; credentials granted on particular organizations page over those.
size accepts up to 1000 here — above the limit of 100 that applies elsewhere
on the API — so a token entitled to many organizations can read the whole tree in one call.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Responses
Section titled “ Responses ”Successful Response
object
object
The organization’s catalogs the principal is entitled to.
object
The catalog’s channels the principal is entitled to.
object
Channel identifier, lbn_ prefixed.
Human-readable channel name, e.g. example.com.
Catalog identifier, lbc_ prefixed.
The catalog’s language, as a locale identifier, e.g. en_GB.
Human-readable catalog name.
The catalog’s surfaces the principal is entitled to.
object
Surface identifier, lbs_<intent>_<slug>.
Distinguishes surfaces of the same intent within a catalog.
The discovery intent this surface serves.
Organization identifier, lbo_ prefixed.
Human-readable organization name.
Example
{ "items": [ { "catalogs": [ { "surfaces": [ { "surface_kind": "search" } ] } ] } ]}Missing or invalid credentials
Canonical error body — every non-2xx response uses this shape.
object
Machine-readable error context; empty object when there is nothing to add.
object
One field-level reason a request was rejected.
object
Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].
What is wrong with the value at loc.
Stable machine code for the problem, e.g. missing or string_too_short.
Human-readable, actionable error message.
Example generated
{ "exception_details": { "validation_errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ] }, "reason": "example", "request_id": "example"}Authenticated but not permitted
Canonical error body — every non-2xx response uses this shape.
object
Machine-readable error context; empty object when there is nothing to add.
object
One field-level reason a request was rejected.
object
Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].
What is wrong with the value at loc.
Stable machine code for the problem, e.g. missing or string_too_short.
Human-readable, actionable error message.
Example generated
{ "exception_details": { "validation_errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ] }, "reason": "example", "request_id": "example"}Request validation failed
Canonical error body — every non-2xx response uses this shape.
object
Machine-readable error context; empty object when there is nothing to add.
object
One field-level reason a request was rejected.
object
Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].
What is wrong with the value at loc.
Stable machine code for the problem, e.g. missing or string_too_short.
Human-readable, actionable error message.
Example generated
{ "exception_details": { "validation_errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ] }, "reason": "example", "request_id": "example"}Was this page helpful?
Thanks.