Skip to content
Last updated

Postman collections

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.

What the collection covers

Requests are organized to match the API reference. Read-only requests come first; write requests are grouped per resource and clearly labeled.

FolderContents
Setup checksQuick read-only connectivity and authentication checks for both APIs.
DAM REST API v2.0 / ImagesList, filter, get, create, update, and delete images.
DAM REST API v2.0 / FilesList, filter, get, create, update, and delete non-image files (documents, spreadsheets, archives, and more).
Catalog REST API v2.0 / MetadataSchema discovery for the Catalog model, Products, Variants, Categories, and Custom Entities.
Catalog REST API v2.0 / Attribute SetsLegacy OData-style list, get, and metadata requests for attribute sets.
Catalog REST API v2.0 / Attribute Sets v2List, get, create, update, and delete attribute sets using the v2 endpoints.
Catalog REST API v2.0 / ProductsList, filter, get, get within a category, get within an attribute set, create, update, delete, and changelogs.
Catalog REST API v2.0 / VariantsList, get, list within a product, get within a product, create, update, delete, and changelogs.
Catalog REST API v2.0 / CategoriesList, list with expanded products, get, create, update, delete, changelogs, and layout.
Catalog REST API v2.0 / Custom EntitiesList items, create, update, delete, item changelogs, and layout.

The Accept-Language, $select, $filter, $orderby, $expand, $top, and $skip values in each request are starting examples. Field names such as prod_ref, cat_ref, or frmt_ref depend on the account. Confirm the available fields with the matching metadata request before adapting a query or a write payload.

Downloads

Import both files into Postman:

FilePurpose
Sales Layer REST APIs collectionRequests grouped by setup checks, DAM REST API v2.0, and Catalog REST API v2.0 resources.
Sales Layer API environment templateEnvironment 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.

Import into Postman

  1. Open Postman.
  2. Select Import.
  3. Import sales-layer-rest-api.postman_collection.json.
  4. Import sales-layer-rest-api.postman_environment.json.
  5. Select the Sales Layer API - Template environment in the top-right environment selector.
  6. Open the environment and set the Current value of apiKey to the API key provided by Sales Layer.
  7. Save the environment.

Keep API keys out of exported files, screenshots, shared workspaces, and source control.

Environment variables

VariableRequiredDefaultDescription
baseUrlYeshttps://api2.saleslayer.comBase URL for the current Sales Layer REST APIs.
apiKeyYesEmpty secretAPI key sent as X-API-KEY. Set this locally in Postman.
acceptLanguageNoenLanguage or locale preference sent as Accept-Language for Catalog requests.
damImageReferenceFor DAM image get, update, and delete testsEmptyDAM 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.
damFileReferenceFor DAM file get, update, and delete testsEmptyDAM 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.
catalogProductIdentifierFor single-product testsEmptyProduct identifier. Filled automatically after a successful create-product request, or set manually.
catalogCategoryIdentifierFor category and in-category testsEmptyCategory identifier. Filled automatically after a successful create-category request, or set manually.
catalogVariantIdentifierFor variant testsEmptyVariant identifier. Filled automatically after a successful create-variant request, or set manually.
attributeSetIdentifierFor legacy Attribute Sets and products-in-attribute-set testsEmptyAttribute set identifier from the account. Used by legacy OData-style Attribute Sets endpoints.
attributeSetV2IdentifierFor Attribute Sets v2 testsEmptyAttribute set identifier for the v2 endpoints. Accepts default or a positive integer. Filled automatically after a successful create-attribute-set request, or set manually.
customEntityDenominatorFor custom entity testsEmptyCustom entity denominator. Discover available values with the Custom Entities metadata request.
customEntityItemIdFor custom entity item testsEmptyCustom entity item identifier. Filled automatically after a successful create-item request, or set manually.

Start with read-only requests that do not modify data:

  1. Run Setup checks / Catalog service metadata.
  2. Run Setup checks / DAM list first page.
  3. Run Catalog REST API v2.0 / Metadata / Products metadata.
  4. Run Catalog REST API v2.0 / Products / List products.
  5. Run DAM REST API v2.0 / Images / List images with pagination.
  6. 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.

Testing write operations

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:

  1. Create category (write) — stores the new id in catalogCategoryIdentifier.
  2. Create product (write) — uses that category and stores the new id in catalogProductIdentifier.
  3. Update product (write) — sends a partial update.
  4. Get product by identifier — confirms the change.
  5. 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:

  1. Edit the Create image (write) or Create file (write) request body and replace the placeholder example.com URL with a real, publicly reachable asset.
  2. Set damImageReference or damFileReference to the filename at the end of that URL — that filename becomes the reference.
  3. Run Create, then Get, Update, and Delete in order, using the same reference variable throughout.
OperationMethod and endpointNotes
Create DAM imagePOST /dam/imagesRequires a real, publicly reachable URL in place of the placeholder. Creates an image and optional tags; the image is processed asynchronously.
Update DAM imagePATCH /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 imageDELETE /dam/images({reference})Requires damImageReference. Returns 409 Conflict if the image is still processing.
Create DAM filePOST /dam/filesRequires 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 filePATCH /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 fileDELETE /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 setPOST / PATCH / DELETE /catalog/v2/AttributeSetsname is required for create. DELETE accepts deleteAssociatedProductsAndVariants query parameter.
Create / update / delete categoryPOST / PATCH / DELETE /catalog/CategoriesBody fields come from the Categories metadata.
Create / update / delete productPOST / PATCH / DELETE /catalog/Productscat_id accepts a single id or an array for multi-category assignment.
Create / update / delete variantPOST / PATCH / DELETE /catalog/Variantsprod_id links the variant to its parent product.
Create / update / delete custom entity itemPOST / 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.

Discovering fields with metadata

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}')/$metadata

After confirming available fields, adjust $select, $filter, $orderby, $expand, $top, and $skip values in Postman as needed.

Headers used by the collection

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.

Troubleshooting

If a request fails, check the following:

  • The Sales Layer API - Template environment is selected.
  • apiKey has a current value in the selected environment.
  • baseUrl is https://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 damImageReference or damFileReference (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.com URL 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 429 response.