Skip to content

Feed Security & Tokens

By default, a feed URL is public: anyone who has the URL can see your product data. Most stores leave it this way, because the URL is long and hard to guess, and ad platforms need to read it.

If you’d rather lock it down, turn on Feed Security. The feed then only responds when the request includes a secret token.

  1. Go to Feeds and open the feed.
  2. Expand the Feed Security card.
  3. Turn on Require authentication.
  4. The Your Feed Token window shows the token and the Protected URL. Copy and store them somewhere safe.
  5. Click Done.

The feed header now shows a Protected badge, and Preview is turned off for this feed.

Give the platform the token in one of two ways:

MethodExample
Query parameterhttps://feedy.lenuslabs.com/feeds/<feed-id>.tsv?token=YOUR_TOKEN
HTTP headerAuthorization: Bearer YOUR_TOKEN

Most ad platforms only accept a URL, so use the query parameter version (the Protected URL). Requests without a token get “Authentication required”, and requests with a wrong token get “Invalid token”.

Do this if the token may have leaked, or you’ve lost it.

  1. In Feed Security, click Regenerate Token.
  2. Confirm. The old token stops working immediately.
  3. Copy the new token and Protected URL, then update every platform that fetches this feed.
  1. In Feed Security, turn off Require authentication.
  2. Confirm Disable Protection.

The feed becomes public again and the old token is no longer needed.

While protection is on, the feed page shows an access log of the last 50 attempts to fetch the feed with a token or without one. Each entry shows the time, result (Success, Invalid Token, No Token or Denied), IP address and browser or crawler name. Use it to confirm your platforms are fetching successfully, and to spot unexpected requests.

  • Protected feeds are limited to 30 requests per minute per IP address, which is plenty for ad platforms.
  • Protected feed responses are never cached, so platforms always get the latest file.
  • A token protects one feed. Each feed has its own token.