Documentation

How to turn a product catalog into a live API, and how to call that API from your own systems. Start with the picture below if you'd rather see the shape of it before reading the details.

Your Feed your catalog, your rules YOUR FEED Query API read-only lookups & lists Manage API create, update, delete, bulk Bookings atomic stock decrement Download link CSV, XLSX, or JSON - no key Consumer Portal sign in to Feedwyre & book
One product feed, five ways in or out. Read with the Query API, manage the catalog with the Manage API, record a sale through Bookings, hand a partner a plain file with a download link, or give a buyer a consumer portal login - pick whichever fits the caller.

Getting started

  1. Create an account: register with a company name, email, and password (or continue with Google). You land on the Starter plan with a 30-day free trial, pre-loaded with a sample product feed so there's something real to explore right away.
  2. Create a product feed: a feed is just a named catalog. Add products by hand, import a CSV/XLSX file, or connect your own database.
  3. Configure the API: on the feed's API Config tab, choose which fields callers can search by, what counts as a "group," and what comes back in a response.
  4. Generate an API key: Query for read-only access, Query & Booking to also record sales, or Manage for full read/write access. The raw key is shown once at creation, so save it somewhere safe.
  5. Call the API: use the branded URL (/feeds/your-company/your-feed/products) shown on the feed's API Integration tab, or the generic /api/v1/... equivalent.

Team access

Everyone on your team signs in at the same login you do - there's no separate portal to stand up. From the Account page's Team section, add a teammate with their own email and password and give them one of three roles:

RoleCan doCan't do
OwnerEverything - exactly one per account, whoever registered it-
AdminEverything except billing and deleting the account, including adding or removing Member teammatesTouch billing, delete the account, or manage another Admin
MemberDay-to-day catalog work - products, imports, bookings, consumers, feed healthCreate or reveal API keys, configure database sync credentials, or touch billing

A role change or removal takes effect immediately, even for a teammate already signed in elsewhere - their very next request picks it up rather than waiting for their session to expire. Removing a teammate deletes their login only, not their history: anything they created stays exactly where it is.

What to give a consumer

Feedwyre has five ways to reach a feed. Which one to hand a particular consumer depends on what they need to do and what they're equipped to integrate - not on how technical you are, but on how technical they are. A single feed can serve every option at once, to different consumers, at the same time.

They need toGive themSet it up from
Look up products and record sales from their own app or storefrontA Query & Booking API keyThe feed's API Keys tab
Only look products up, and never book a saleA Query-only API keyThe feed's API Keys tab
Resell your catalog at their own markupA child feed with margin rules, then a key or link on that child feedThe Child Feeds tab
Open your catalog in a spreadsheet or import tool, no code at allA download link (CSV, XLSX, or JSON)The feed's Download Links tab
Place their own orders with no developer and no file to manageA consumer portal loginThe Consumers tab
Book from one shared inventory list across several branches or employeesA consumer portal login per branch, all on the same feedThe Consumers tab
Add, edit, or bulk-update the catalog itselfA Manage API key, or just the dashboard directlyThe feed's API Keys tab

None of these are mutually exclusive - a single child feed, say, can hand one partner an API key and another partner a download link, or a portal login, off the exact same margin-adjusted catalog. See the case studies for each of these worked through end to end, with a diagram.

Core concepts

Feeds & products

A product feed is a catalog. Most tenants only need one, but you can have several (one per brand or region, say). Each feed has its own products, its own API settings, and its own API keys. A product carries the usual fields (code, name, price, stock, images, and more) plus any custom attributes you add for that feed.

API configuration

Four simple settings, per feed, control how the Query API behaves and what an import expects:

SettingControls
AcceptedInputFieldsWhich single field a caller can look one product up by - has to be unique per product, e.g. SKU or barcode
GroupFieldsWhich fields define a "group" for listing many products at once - category or brand, say
OutputFieldsExactly which fields come back in every API response
RequiredFieldsWhich fields must have a value before an imported or synced row is accepted

The Query API

This is read-only, so it's safe to share widely, and it works with any key type: Query, Query & Booking, or Manage. There's one endpoint - what you put in the URL decides which of the three ways below you get.

Look up a single product

curl "https://api.feedwyre.example/feeds/acme-co/electronics/products?sku=SKU-1002" -H "X-API-Key: fw_live_query_..."

List a group

curl "https://api.feedwyre.example/feeds/acme-co/electronics/products?group=Keyboards&page=1&pageSize=50" -H "X-API-Key: fw_live_query_..."

List everything in the feed

curl "https://api.feedwyre.example/feeds/acme-co/electronics/products?pageSize=100" -H "X-API-Key: fw_live_query_..."

Every call counts against your plan's monthly query allowance. Going over it is billed at your plan's overage rate rather than blocked - your integration keeps working either way.

Not everyone who needs your product feed wants to integrate an API. Sometimes the simplest answer for a partner is a link they can drop straight into their own spreadsheet, POS, or import tool. A download link is a standing CSV, XLSX, or JSON URL that serves a feed's current data - no API key, no code, and it doesn't count against your query allowance.

Each feed gets one general link, plus as many per-consumer links as you want. Every one of them can be revoked on its own, without touching the others. On a child feed, a download link serves that child's own margin-adjusted prices, exactly like its API keys do. Give one partner an API key and another a download link off the same child feed, and both see the same marked-up numbers - just delivered in a different way.

How to set one up

  1. Open the Download Links tab on the feed you want to share.
  2. Create a link, optionally scoped to one consumer so it can be revoked without touching any other link.
  3. Pick a format when you use it - the same link serves CSV, XLSX, or JSON; the format is just a query parameter.
  4. Share the link. There's nothing to install or configure on their end.

A download link is a read-only snapshot - it can't book a sale. Give a consumer an API key too if they also need to record sales or write back to a feed.

The Manage API

This needs a Manage-scope key, the only tier that can actually edit the catalog. You can create products, update them, delete them, or bulk-update just price and stock without resending everything else about a product.

Create or update a product

curl -X POST "https://api.feedwyre.example/feeds/acme-co/electronics/products" -H "X-API-Key: fw_live_manage_..." -H "Content-Type: application/json" -d '{"productCode":"SKU-1002","name":"Mechanical Keyboard","price":79.99,"stock":12}'

Bulk-update price & stock only

curl -X POST "https://api.feedwyre.example/feeds/acme-co/electronics/products/bulk-update" -H "X-API-Key: fw_live_manage_..." -H "Content-Type: application/json" -d '{"items":[{"productCode":"SKU-1002","stock":9},{"productCode":"SKU-1003","price":29.99}]}'

Consumers & bookings

A consumer is a buyer you register to book sales against: a storefront, a marketplace, or a specific partner. It applies across your whole account, not just one product feed. Booking a sale decrements stock atomically - the "is there enough left" check and the actual decrement happen as one step, so two sales racing for the last unit can never both win.

This needs at least a Query & Booking-scope key (a Manage key works too). It's the right fit for a storefront or order system that needs to report sales but shouldn't be able to edit the catalog itself.

Book a sale

curl -X POST "https://api.feedwyre.example/feeds/acme-co/electronics/products/book" -H "X-API-Key: fw_live_book_..." -H "Content-Type: application/json" -d '{"productCode":"SKU-1002","consumerCode":"WEBSTORE","quantity":1,"referenceNumber":"ORD-8841","address":"42 Wallaby Way, Sydney","contactDetails":"jane@example.com, +1-555-0100"}'

referenceNumber is required and must be unique across every booking you've ever made - sending the same reference twice (say, a network retry) is rejected outright instead of quietly booking the same sale again. address and contactDetails are optional free-text - a delivery address and contact info for this specific order - stored on the booking but never validated or looked up against anything.

Consumer portal - no integration at all

A consumer doesn't even need an API key or a spreadsheet. From the Consumers tab, set up a login and choose which of your product feeds they can see. They get a link to their own portal on Feedwyre, sign in there with an email and password, browse the catalog and prices you've granted them, and book straight against your stock using the same atomic booking described above. Revoking the login later doesn't touch their booking history or anyone else's access.

Your Feed your catalog, your prices Accounts created in Feedwyre YOUR FEED Consumer A signs in to Feedwyre & orders Consumer B signs in to Feedwyre & orders Consumer C signs in to Feedwyre & orders
Each consumer's portal account is created by you, from inside Feedwyre - not by them, and not through any outside sign-up flow. Once it exists, that consumer signs in on their own, browses the catalog and prices you've granted them, and places an order that books against your stock the same atomic way an API call would.

How to set one up

  1. Open the Consumers tab and create or select the consumer this login belongs to.
  2. Set a password for their portal login - Feedwyre doesn't send email invites, so you set it directly and share it however you'd share any other credential.
  3. Choose which feeds they're allowed to see; one consumer can be granted access to more than one.
  4. Share their portal link. They sign in to Feedwyre there, browse, and book - no key, no file, no code.

This is also the right fit internally, not just for outside partners: give each branch or team of a multi-location business its own consumer and login, all pointed at the same feed, and they book against one real shared stock count instead of guessing what another location has on hand.

Database sync

On Business plan and above, you can point a product feed straight at your own SQL Server, MySQL, or PostgreSQL database. Give it a read-only query and a column mapping, and Feedwyre pulls in fresh rows on a schedule - anywhere from every 15 minutes to once a day. Sync only ever adds or updates; it will never delete a product, even if a query briefly returns fewer rows than expected. It also refuses to sync from an internal network address, as a safety check.

Child feeds & margin

Turn any product feed into a parent and create child feeds under it to resell the same catalog to a different audience at a different price. This comes with every plan, even the free trial. A child feed reads the parent's products live (nothing is duplicated) and applies your margin rules - a flat percentage or fixed amount, with an option to override it per category - before handing the products back. Your own channels don't need a child feed at all - they call the parent directly, at cost.

The example below is one catalog serving seven different consumers at once: your own store and mobile app read the parent directly, while three child feeds each apply a different margin and hand their customers a different way in - an API key, a download link, or a consumer portal login.

Parent Feed your real catalog 2 direct + 3 child feeds PARENT FEED Your Store full price, own key Mobile App full price, own key Child Feed A 5% margin → Customers A & B Child Feed B 7% margin → Customer C Child Feed C 6% margin → Customers D & E Customer A API - query & book Customer B API - query & book Customer C Download link only Customer D Consumer portal login Customer E Consumer portal login
Nothing is duplicated anywhere in this picture - every box reads the one parent catalog live. Your Store and Mobile App call the parent directly at cost. Each child feed applies its own margin and is handed out its own way: Child Feed A's 5% goes to Customer A and Customer B as API keys for querying and booking, Child Feed B's 7% goes to Customer C as a download link, and Child Feed C's 6% goes to Customer D and Customer E as consumer portal logins. None of the five customers ever sees the parent's real cost, another child feed's margin, or each other's access.

Stripped down to its simplest form, that's just one parent feeding one child feed, which hands one partner a single number:

Parent Feed your real catalog Widget X: $10.00 cost PARENT FEED Child Feed +20% margin, this partner only sees: $12.00 Partner B own API key
Nothing is duplicated - the child feed reads the parent's products live and applies its own margin rule at request time. Give a different partner their own child feed, and neither one ever sees the other's price or the parent's real cost.

How to set one up

  1. Create a child feed and point it at the parent whose catalog you want to resell.
  2. Add margin rules on the child feed's Margin Rules tab - a flat percentage or fixed amount, with per-category overrides where you need them.
  3. Check the Product List tab to see the parent's products priced exactly as this child feed's rules will show them, before you hand anyone a key.
  4. Generate a key or link on the child feed itself, never the parent - an API key, a download link, or a consumer portal login all work.
  5. Repeat per partner. Each child feed has its own margin, its own keys, and its own consumers, all reading the same live parent catalog.

A child feed has its own API keys, consumers, and download links, but no write access of its own - all product management happens on the parent. Child feeds count toward your plan's total feed limit, right alongside parent feeds.

Each plan also caps how many margin rules a single child feed can hold, from 10 on Starter up to 200 on Scale, with no limit on Enterprise. The feed's Margin Rules tab shows the exact number you're allowed and how many you're currently using, and stops you from adding more once you hit it.

Errors & status codes

StatusMeaning
200Success
400Invalid request - a missing field, a duplicate reference number, or not enough stock to book
401Missing, invalid, or revoked API key
403Your account is suspended, or your plan doesn't include this capability
404No product matches the field/value you gave

Rate & usage limits

Each plan includes a monthly query allowance (see pricing) - go over it and calls get billed per 1,000 instead of blocked. Product feeds, products, custom attributes, and API keys each have their own per-plan ceiling, and you can check your current usage against each one on the Account page. Your feed ceiling counts parent and child feeds together.