Use the Sales Layer Postman collection to test the DAM and Catalog REST APIs from a controlled local workspace.
The collection is built for prospects, customers, and implementation partners who want to validate connectivity, authentication, headers, query parameters, and complete request flows before building an integration. It includes ready-to-run examples for every endpoint exposed by the current OpenAPI specifications, for both DAM resources (images and files) and every Catalog resource.
The OpenAPI reference remains the source of truth for the full current endpoint surface.
Requests are organized to match the API reference. Read-only requests come first; write requests are grouped per resource and clearly labeled.
| Folder | Contents |
|---|---|
| Setup checks | Quick read-only connectivity and authentication checks for both APIs. |
| DAM REST API v2.0 / Images | List, filter, get, create, update, and delete images. |
| DAM REST API v2.0 / Files | List, filter, get, create, update, and delete non-image files (documents, spreadsheets, archives, and more). |
| Catalog REST API v2.0 / Metadata | Schema discovery for the Catalog model, Products, Variants, Categories, and Custom Entities. |
| Catalog REST API v2.0 / Attribute Sets | Legacy OData-style list, get, and metadata requests for attribute sets. |
| Catalog REST API v2.0 / Attribute Sets v2 | List, get, create, update, and delete attribute sets using the v2 endpoints. |
| Catalog REST API v2.0 / Products | List, filter, get, get within a category, get within an attribute set, create, update, delete, and changelogs. |
| Catalog REST API v2.0 / Variants | List, get, list within a product, get within a product, create, update, delete, and changelogs. |
| Catalog REST API v2.0 / Categories | List, list with expanded products, get, create, update, delete, changelogs, and layout. |
| Catalog REST API v2.0 / Custom Entities | List items, create, update, delete, item changelogs, and layout. |
The
Accept-Language,$select,$filter,$orderby,$expand,$top, and$skipvalues in each request are starting examples. Field names such asprod_ref,cat_ref, orfrmt_refdepend on the account. Confirm the available fields with the matching metadata request before adapting a query or a write payload.
Import both files into Postman:
| File | Purpose |
|---|---|
| Sales Layer REST APIs collection | Requests grouped by setup checks, DAM REST API v2.0, and Catalog REST API v2.0 resources. |
| Sales Layer API environment template | Environment variables for base URL, API key, language, and reusable test identifiers. |
The environment template does not contain a real API key. The apiKey variable is intentionally empty and marked as a secret.
- Open Postman.
- Select Import.
- Import
sales-layer-rest-api.postman_collection.json. - Import
sales-layer-rest-api.postman_environment.json. - Select the Sales Layer API - Template environment in the top-right environment selector.
- Open the environment and set the Current value of
apiKeyto the API key provided by Sales Layer. - Save the environment.
Keep API keys out of exported files, screenshots, shared workspaces, and source control.
| Variable | Required | Default | Description |
|---|---|---|---|
baseUrl | Yes | https://api2.saleslayer.com | Base URL for the current Sales Layer REST APIs. |
apiKey | Yes | Empty secret | API key sent as X-API-KEY. Set this locally in Postman. |
acceptLanguage | No | en | Language or locale preference sent as Accept-Language for Catalog requests. |
damImageReference | For DAM image get, update, and delete tests | Empty | DAM image reference (filename). Set it to match the filename in the Create image request's url before running Get, Update, or Delete for that same image. |
damFileReference | For DAM file get, update, and delete tests | Empty | DAM file reference (filename). Set it to match the filename in the Create file request's url before running Get, Update, or Delete for that same file. |
catalogProductIdentifier | For single-product tests | Empty | Product identifier. Filled automatically after a successful create-product request, or set manually. |
catalogCategoryIdentifier | For category and in-category tests | Empty | Category identifier. Filled automatically after a successful create-category request, or set manually. |
catalogVariantIdentifier | For variant tests | Empty | Variant identifier. Filled automatically after a successful create-variant request, or set manually. |
attributeSetIdentifier | For legacy Attribute Sets and products-in-attribute-set tests | Empty | Attribute set identifier from the account. Used by legacy OData-style Attribute Sets endpoints. |
attributeSetV2Identifier | For Attribute Sets v2 tests | Empty | Attribute set identifier for the v2 endpoints. Accepts default or a positive integer. Filled automatically after a successful create-attribute-set request, or set manually. |
customEntityDenominator | For custom entity tests | Empty | Custom entity denominator. Discover available values with the Custom Entities metadata request. |
customEntityItemId | For custom entity item tests | Empty | Custom entity item identifier. Filled automatically after a successful create-item request, or set manually. |
Start with read-only requests that do not modify data:
- Run Setup checks / Catalog service metadata.
- Run Setup checks / DAM list first page.
- Run Catalog REST API v2.0 / Metadata / Products metadata.
- Run Catalog REST API v2.0 / Products / List products.
- Run DAM REST API v2.0 / Images / List images with pagination.
- Run DAM REST API v2.0 / Files / List files with pagination.
These requests verify the base URL, API key, and account access without creating, updating, or deleting resources.
Write requests are labeled (write) and live alongside the read requests for each resource. Run them only against a test account.
The Catalog create requests include a test script that captures the created identifier into the matching environment variable (catalogProductIdentifier, catalogCategoryIdentifier, catalogVariantIdentifier, or customEntityItemId). This lets you run a full lifecycle in order, for example:
- Create category (write) — stores the new id in
catalogCategoryIdentifier. - Create product (write) — uses that category and stores the new id in
catalogProductIdentifier. - Update product (write) — sends a partial update.
- Get product by identifier — confirms the change.
- Delete product (write) — removes the test product.
DAM images and files work differently: their reference (filename) is not generated by the server, so there is nothing for a test script to capture. Instead:
- Edit the Create image (write) or Create file (write) request body and replace the placeholder
example.comURL with a real, publicly reachable asset. - Set
damImageReferenceordamFileReferenceto the filename at the end of that URL — that filename becomes the reference. - Run Create, then Get, Update, and Delete in order, using the same reference variable throughout.
| Operation | Method and endpoint | Notes |
|---|---|---|
| Create DAM image | POST /dam/images | Requires a real, publicly reachable URL in place of the placeholder. Creates an image and optional tags; the image is processed asynchronously. |
| Update DAM image | PATCH /dam/images({reference}) | Requires damImageReference. Send url, tags, or both. A replacement URL can use any filename — only its content type must match. |
| Delete DAM image | DELETE /dam/images({reference}) | Requires damImageReference. Returns 409 Conflict if the image is still processing. |
| Create DAM file | POST /dam/files | Requires a real, publicly reachable URL in place of the placeholder. Creates a file and optional tags; usable immediately. Returns 409 Conflict on a duplicate filename or a full file-library quota. |
| Update DAM file | PATCH /dam/files({reference}) | Requires damFileReference. Send url, tags, or both. A replacement URL can use any filename — only its content type must match. Never returns 409. |
| Delete DAM file | DELETE /dam/files({reference}) | Requires damFileReference. Deletion does not cascade — entities still referencing the file are left pointing at a filename that no longer exists. Never returns 409. |
| Create / update / delete attribute set | POST / PATCH / DELETE /catalog/v2/AttributeSets | name is required for create. DELETE accepts deleteAssociatedProductsAndVariants query parameter. |
| Create / update / delete category | POST / PATCH / DELETE /catalog/Categories | Body fields come from the Categories metadata. |
| Create / update / delete product | POST / PATCH / DELETE /catalog/Products | cat_id accepts a single id or an array for multi-category assignment. |
| Create / update / delete variant | POST / PATCH / DELETE /catalog/Variants | prod_id links the variant to its parent product. |
| Create / update / delete custom entity item | POST / PATCH / DELETE /catalog/CustomEntities('{denominator}') | Body fields depend on the custom entity definition. |
Before running write requests, confirm that the account and environment are safe for testing.
Catalog fields vary by account configuration. Use the metadata requests before building specific queries or write payloads:
GET /catalog/$metadata
GET /catalog/Products/$metadata
GET /catalog/Categories/$metadata
GET /catalog/Variants/$metadata
GET /catalog/AttributeSets/$metadata
GET /catalog/CustomEntities/$metadata
GET /catalog/CustomEntities('{denominator}')/$metadataAfter confirming available fields, adjust $select, $filter, $orderby, $expand, $top, and $skip values in Postman as needed.
The collection sends the API key through Postman's collection-level authentication:
X-API-KEY: {{apiKey}}Requests also use:
Accept: application/json
Content-Type: application/json
Accept-Language: {{acceptLanguage}}Content-Type is only required for requests with a JSON body. Accept-Language supports exact language or locale codes; q-factor weighting and the wildcard * are not supported.
If a request fails, check the following:
- The Sales Layer API - Template environment is selected.
apiKeyhas a current value in the selected environment.baseUrlishttps://api2.saleslayer.com.- The API key is valid for the account and API area being tested.
- Catalog identifiers and field names exist in the current account metadata.
- DAM get, update, and delete requests use a valid
damImageReferenceordamFileReference(the filename), matching an asset that actually exists in the account. - DAM create and update requests point at a real, publicly reachable URL — the placeholder
example.comURL does not resolve and always fails validation. - Rate limiting may apply (50 requests per 10 seconds). Retry after a short delay if you receive a
429response.