Viewing products

API reference for viewing and retrieving Shopify product data through the Fileflare API.

Beka Rice Avatar

Written by

Last updated


List Shopify products synced into Fileflare, or fetch one by its Fileflare product ID. Each row carries both the Fileflare product UUID and the Shopify product and variant IDs, so this endpoint is how you find the UUID for a specific variant when you want to attach an asset to that variant alone.

Requires Bearer authentication with your Fileflare key. Rate-limited to 60 requests per minute.

Endpoint

GET https://app.digital-downloads.com/api/v1/products

Fetch a single product:

GET https://app.digital-downloads.com/api/v1/products/{product}

Parameters

Path

  • {product} — the Fileflare product ID (only for GET /products/{product})

Query

  • page — page number (default 1)
  • limit — items per page (default 100, max 1000)
  • name — searches product or variant name
  • sku — filter by SKU
  • product_id — filter by Shopify product ID
  • vendor — filter by Shopify vendor
  • tag — filter by Shopify tag
  • with_assets — when truthy, include each row’s attached assets (see below)
  • include_parents — when truthy, also return the parent row of every product that has variants (see below)

Which rows you get back

By default the list is variant-level: for a product with variants you get one row per variant, and for a product without variants you get its single product row. That’s the right shape for most catalog walks, since it’s one row per thing a customer can buy.

Add include_parents=1 to also get the parent row of each product that has variants. The parent row is the one a Shopify product ID resolves to when you attach an asset, so include it when you want to inspect or reconcile product-level attachments rather than variant-level ones.

Example request

# List all products (variant-level rows)
curl https://app.digital-downloads.com/api/v1/products \
  -H "Authorization: Bearer YOUR_API_KEY"

# Include the parent row of every product that has variants
curl "https://app.digital-downloads.com/api/v1/products?include_parents=1" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Look up every row for one Shopify product
curl "https://app.digital-downloads.com/api/v1/products?product_id=123456789" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response — 200 OK

The response is a paginated flat list of rows, one per product or variant.

{
  "data": [
    {
      "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
      "name": "My new Book",
      "variant_name": "Paper back",
      "sku": "BOOK-PB",
      "product_id": 123456789,
      "variant_id": 987654321,
      "vendor": "my-store",
      "tags": ["ebook"]
    }
  ],
  "links": { "first": "...", "last": "...", "prev": null, "next": null },
  "meta": { "current_page": 1, "per_page": 100, "total": 87, "last_page": 1 }
}
  • id — the Fileflare product UUID. Pass this in the products array when attaching assets to a specific variant.
  • name — the product name.
  • variant_name — the variant name, or null for product-level rows.
  • sku — the SKU.
  • product_id — the Shopify product ID. Pass this in shopify_product_ids when attaching at the product level.
  • variant_id — the Shopify variant ID. Filter on this to pick the right row when a product has multiple variants.
  • vendor — the Shopify vendor.
  • tags — the Shopify tags array.

With attached assets

Add with_assets=1 to include an assets array on each row. Each asset is an object:

"assets": [
  {
    "id": "82664d96-6dfd-4343-96b0-05c46f412a5b",
    "filename": "my-book.pdf",
    "size": "10 MB",
    "raw_size": 10485760,
    "is_file": true,
    "is_link": false,
    "url": "https://..."
  }
]
  • size is a human-readable string; raw_size is the size in bytes (null for URL assets).

Common errors

  • 404 — the product isn’t on your store.

Keep learning