Get a source

Full detail, same shape as the list rows. label is the workspace's primary-attribute value (render label ?? id); attributes is sparse — a missing key means unset or not-applicable (read attributes[key] ?? null). Narrow the returned keys with fields=<key>,<key>.

Scope: read:sources.

get/sources/{id}

Request

  • Base URL
    https://www.merchkit.com/api/v1
  • Auth
    HTTP bearer

Query parameters

fieldsstring

Return only the attribute keys you name instead of every populated one. Useful when a workspace has hundreds of attributes and your integration reads a handful.

fields=sku,price (comma-separated) or fields=sku&fields=price (repeated param, same result). Omit it entirely to get every populated key.

Only the attributes map narrows. System fields (id, type, label, parent_id, created_at, updated_at) always come back, so naming one returns 400. label still resolves from the primary attribute whether or not you select it. pagination.total is unchanged. filter and sort are independent: filter on keys you did not select.

Sparse still means sparse. A selected key with no value stays absent. Keep reading attributes[key] ?? null.

Reference keys return {id, type, label} stubs as usual, but fields does not reach through them. fields=gallery_images.image_url is not supported. Select the reference key, then batch-fetch: GET /images?filter[id][in]=<ids>&fields=image_url.

Unknown keys return 400 with field_errors. Inverse-reference keys are rejected the same way. They are queries, not stored values. Read them via /{resource}/{id}/references?attribute=.

Selecting only non-reference keys skips the reference join entirely, which avoids loading every referenced entity just to attach its label.

Response

The source.

Example response

{
  "data": {
    "id": "9b2f6c1e-8a04-4c6e-b0d3-5f2f6f7a9e21",
    "type": "product",
    "label": "Aria Oak Dining Table",
    "parent_id": null,
    "created_at": "2026-06-02T14:11:09Z",
    "updated_at": "2026-07-18T09:30:22Z",
    "attributes": {
      "sku": "ARIA-DT-72",
      "product_name": "Aria Oak Dining Table",
      "price": 1299,
      "material": "White Oak",
      "vendor": {
        "id": "77e1b2aa-6b3d-4f19-9d10-8c2a5e7f4b21",
        "type": "vendor",
        "label": "Nordic Timber Co."
      },
      "category": {
        "id": "c41d09f3-2e85-47a6-b93c-d5f8e1a20c67",
        "type": "category",
        "label": "Dining Tables"
      },
      "gallery_images": [
        {
          "id": "f0a1b2c3-d4e5-4f60-8a7b-9c0d1e2f3a4b",
          "type": "image",
          "label": "aria-hero.jpg"
        },
        {
          "id": "f0a2c3d4-e5f6-4a70-9b8c-0d1e2f3a4b5c",
          "type": "image",
          "label": "aria-detail.jpg"
        },
        {
          "id": "f0a3d4e5-f6a7-4b80-8c9d-1e2f3a4b5c6d",
          "type": "image",
          "label": "aria-side.jpg"
        },
        {
          "id": "f0a4e5f6-a7b8-4c90-9dae-2f3a4b5c6d7e",
          "type": "image",
          "label": "aria-lifestyle.jpg"
        },
        {
          "id": "f0a5f6a7-b8c9-4da0-8ebf-3a4b5c6d7e8f",
          "type": "image",
          "label": "aria-packshot.jpg"
        }
      ]
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.