# Luigi's Box API Version: `0.1.0` Canonical customer API. One host, with each product served under its own path prefix. **Pre-launch.** The concepts are settled, but the API shape is not: request and response fields, parameters and defaults can still change. The `v1` in each path is the URL namespace, not a stability promise. ## catalog - `GET /catalog/v1/{catalog_id}/mappings` — [List a catalog's mappings](/api/operations/list_mappings.md) - `POST /catalog/v1/{catalog_id}/mappings` — [Create a mapping](/api/operations/create_mapping.md) - `POST /catalog/v1/{catalog_id}/mappings/validate` — [Validate a mapping without saving](/api/operations/validate_mapping.md) - `GET /catalog/v1/{catalog_id}/mappings/{mapping_id}` — [Get a mapping](/api/operations/get_mapping.md) - `DELETE /catalog/v1/{catalog_id}/mappings/{mapping_id}` — [Delete a mapping](/api/operations/delete_mapping.md) - `PATCH /catalog/v1/{catalog_id}/mappings/{mapping_id}` — [Update a mapping](/api/operations/update_mapping.md) - `GET /catalog/v1/{catalog_id}/sources/feeds` — [List a catalog's feed sources](/api/operations/list_feeds.md) - `POST /catalog/v1/{catalog_id}/sources/feeds` — [Register a feed source](/api/operations/create_feed.md) - `GET /catalog/v1/{catalog_id}/sources/feeds/{feed_id}` — [Get a feed source](/api/operations/get_feed.md) - `DELETE /catalog/v1/{catalog_id}/sources/feeds/{feed_id}` — [Deactivate a feed source](/api/operations/delete_feed.md) - `PATCH /catalog/v1/{catalog_id}/sources/feeds/{feed_id}` — [Update a feed source](/api/operations/update_feed.md) - `POST /catalog/v1/{catalog_id}/sources/feeds/{feed_id}/fingerprints/reset` — [Reset a feed's fingerprints (force full resend)](/api/operations/reset_fingerprints.md) - `GET /catalog/v1/{catalog_id}/sources/feeds/{feed_id}/status` — [Get a feed's processing status](/api/operations/feed_status.md) - `GET /catalog/v1/{catalog_id}/sources/feeds/{feed_id}/syncs` — [List a feed's sync history](/api/operations/list_syncs.md) - `POST /catalog/v1/{catalog_id}/sync` — [Trigger a manual catalog sync](/api/operations/sync_catalog.md) - `GET /catalog/v1/{catalog_id}/types` — [List a catalog's object types](/api/operations/list_catalog_object_types.md) - `GET /catalog/v1/{catalog_id}/types/{object_type}/attributes` — [List an object type's attributes](/api/operations/list_catalog_attributes.md) - `GET /catalog/v1/{catalog_id}/types/{object_type}/attributes/{attribute_name}/values` — [List an attribute's distinct values](/api/operations/list_catalog_attribute_values.md) ## discovery - `GET /discovery/v1/bulk-get` — [Look up catalog entities by reference](/api/operations/bulk_get_entities.md) - `GET /discovery/v1/collections` — [Browse a collection](/api/operations/browse_collection.md) - `POST /discovery/v1/collections` — [Browse catalog collections](/api/operations/browse_collections.md) - `GET /discovery/v1/facets` — [Compute facets for a result set](/api/operations/get_facets.md) - `POST /discovery/v1/facets` — [Compute result facets](/api/operations/compute_facets.md) - `POST /discovery/v1/objects` — [Get objects by reference](/api/operations/get_objects.md) - `GET /discovery/v1/recommender` — [Recommend catalog items](/api/operations/get_recommendations.md) - `POST /discovery/v1/recommender` — [Recommend catalog items](/api/operations/recommend_items.md) - `GET /discovery/v1/search` — [Search the catalog](/api/operations/search.md) - `POST /discovery/v1/search` — [Search the catalog](/api/operations/search_catalog.md) - `POST /discovery/v1/variants` — [Resolve variant groups for ids](/api/operations/get_variants.md) ## distribution - `GET /distribution/v1/repositories` — [List an organization's repositories](/api/operations/list_repositories.md) - `POST /distribution/v1/repositories` — [Create a repository](/api/operations/create_repository.md) - `GET /distribution/v1/repositories/{repository_id}` — [Get a repository](/api/operations/get_repository.md) - `DELETE /distribution/v1/repositories/{repository_id}` — [Delete a repository](/api/operations/delete_repository.md) - `PATCH /distribution/v1/repositories/{repository_id}` — [Update a repository](/api/operations/update_repository.md) ## events - `POST /events/v1/events` — [Ingest an analytics event](/api/operations/ingest_event.md) ## index - `POST /index/v1/{catalog_id}/index/` — [Upsert catalog objects](/api/operations/index_objects.md) - `DELETE /index/v1/{catalog_id}/index/` — [Delete catalog objects](/api/operations/delete_objects.md) - `PATCH /index/v1/{catalog_id}/index/` — [Update fields on existing catalog objects](/api/operations/partial_update_objects.md) ## ledger - `GET /ledger/v1/catalogs/{catalog_id}/objects/{public_id}/timeline` — [Get an object's change timeline](/api/operations/get_object_timeline.md) ## platform - `GET /platform/v1/campaigns` — [List campaigns](/api/operations/list_campaigns.md) - `POST /platform/v1/campaigns` — [Create a campaign](/api/operations/create_campaign.md) - `POST /platform/v1/campaigns/trigger-schema` — [List authorable trigger fields](/api/operations/list_campaign_trigger_fields.md) - `POST /platform/v1/campaigns/validate-targeting` — [Validate campaign targeting](/api/operations/validate_campaign_targeting.md) - `GET /platform/v1/campaigns/{campaign_id}` — [Get a campaign](/api/operations/get_campaign.md) - `DELETE /platform/v1/campaigns/{campaign_id}` — [Archive a campaign](/api/operations/delete_campaign.md) - `PATCH /platform/v1/campaigns/{campaign_id}` — [Update a campaign](/api/operations/update_campaign.md) - `GET /platform/v1/campaigns/{campaign_id}/effective-scope` — [Get a campaign's effective scope](/api/operations/get_campaign_effective_scope.md) - `GET /platform/v1/catalogs` — [List catalogs](/api/operations/list_catalogs.md) - `POST /platform/v1/catalogs` — [Create a catalog](/api/operations/create_catalog.md) - `GET /platform/v1/catalogs/{catalog_id}` — [Get a catalog](/api/operations/get_catalog.md) - `DELETE /platform/v1/catalogs/{catalog_id}` — [Delete a catalog](/api/operations/delete_catalog.md) - `PATCH /platform/v1/catalogs/{catalog_id}` — [Update a catalog](/api/operations/update_catalog.md) - `GET /platform/v1/catalogs/{catalog_id}/surfaces` — [List surfaces](/api/operations/list_surfaces.md) - `POST /platform/v1/catalogs/{catalog_id}/surfaces` — [Create a surface](/api/operations/create_surface.md) - `GET /platform/v1/catalogs/{catalog_id}/surfaces/{surface_id}` — [Get a surface](/api/operations/get_surface.md) - `DELETE /platform/v1/catalogs/{catalog_id}/surfaces/{surface_id}` — [Delete a surface](/api/operations/delete_surface.md) - `GET /platform/v1/channels` — [List channels](/api/operations/list_channels.md) - `POST /platform/v1/channels` — [Create a channel](/api/operations/create_channel.md) - `GET /platform/v1/channels/{channel_id}` — [Get a channel](/api/operations/get_channel.md) - `DELETE /platform/v1/channels/{channel_id}` — [Delete a channel](/api/operations/delete_channel.md) - `PATCH /platform/v1/channels/{channel_id}` — [Update a channel](/api/operations/update_channel.md) - `GET /platform/v1/channels/{channel_id}/sponsored-placements` — [List a channel's sponsored-products placements](/api/operations/list_sponsored_placements.md) - `POST /platform/v1/channels/{channel_id}/sponsored-placements` — [Bind a sponsored-products provider to a channel](/api/operations/create_sponsored_placement.md) - `GET /platform/v1/channels/{channel_id}/sponsored-placements/{sponsored_provider_id}` — [Get a channel's placement of one sponsored-products provider](/api/operations/get_sponsored_placement.md) - `DELETE /platform/v1/channels/{channel_id}/sponsored-placements/{sponsored_provider_id}` — [Delete a channel's placement of one sponsored-products provider](/api/operations/delete_sponsored_placement.md) - `PATCH /platform/v1/channels/{channel_id}/sponsored-placements/{sponsored_provider_id}` — [Update a channel's placement of one sponsored-products provider](/api/operations/update_sponsored_placement.md) - `GET /platform/v1/me/entitlements` — [Get the authenticated principal's entitlements](/api/operations/get_entitlements.md) - `GET /platform/v1/organizations` — [List organizations](/api/operations/list_organizations.md) - `POST /platform/v1/organizations` — [Create an organization](/api/operations/create_organization.md) - `GET /platform/v1/organizations/{organization_id}` — [Get an organization](/api/operations/get_organization.md) - `DELETE /platform/v1/organizations/{organization_id}` — [Delete an organization](/api/operations/delete_organization.md) - `PATCH /platform/v1/organizations/{organization_id}` — [Update an organization](/api/operations/update_organization.md) - `GET /platform/v1/sponsored-providers` — [List sponsored-products providers](/api/operations/list_sponsored_providers.md) - `POST /platform/v1/sponsored-providers` — [Create a sponsored-products provider](/api/operations/create_sponsored_provider.md) - `GET /platform/v1/sponsored-providers/{sponsored_provider_id}` — [Get a sponsored-products provider](/api/operations/get_sponsored_provider.md) - `DELETE /platform/v1/sponsored-providers/{sponsored_provider_id}` — [Delete a sponsored-products provider](/api/operations/delete_sponsored_provider.md) - `PATCH /platform/v1/sponsored-providers/{sponsored_provider_id}` — [Update a sponsored-products provider](/api/operations/update_sponsored_provider.md) - `GET /platform/v1/sponsored-providers/{sponsored_provider_id}/sponsored-placements` — [List every placement of a sponsored-products provider](/api/operations/list_sponsored_provider_placements.md) - `GET /platform/v1/tags` — [List tags](/api/operations/list_tags.md) - `POST /platform/v1/tags` — [Create a tag](/api/operations/create_tag.md) - `GET /platform/v1/tags/{tag_id}` — [Get a tag](/api/operations/get_tag.md) - `DELETE /platform/v1/tags/{tag_id}` — [Delete a tag](/api/operations/delete_tag.md) - `PATCH /platform/v1/tags/{tag_id}` — [Update a tag](/api/operations/update_tag.md)