Paginated endpoints, handled automatically.
Plenty of catalogs live behind a JSON endpoint rather than in a file or a store platform: dealer sites, supplier portals, internal systems. Ducted reads them directly as a project source, so there is no export to request, no file to schedule, and nothing to rebuild when the catalog grows.
Ducted walks the pages for you. Point it at the endpoint and it collects the full catalog, with nothing for you to configure and nothing to keep working as the source changes.
The walk is consistent by design: the shape of your data is fixed by the first response and held for every page after it, so a short or ragged last page cannot quietly reshape your records. If a later page fails, the fetch stops and keeps everything it already read rather than losing the run.
Not every API returns a clean array of products. When the records sit under a wrapper, or several levels down, or under keys rather than in a list, pick the level that holds your records and Ducted reads from there.
A second control handles rows that carry their product inside them: choose the part of each record that holds the product, and Ducted re-roots every row on it. Wrapper noise disappears, column names get shorter, and rows that do not carry that part are kept as they are rather than dropped.
APIs that return parallel arrays instead of a list of records are read correctly too, with no setting to find.
Self-serve covers unauthenticated GET endpoints, and APIs authenticated with a key in the URL.
For POST requests, session or OAuth login, or multi-step and bespoke sources, Website Indexing builds it for you, quoted before any work begins.
Ducted pulls the full catalog from the paginated endpoint, AutoMap matches the vehicle fields, and the same mapped data serves Google Vehicle Listing Ads, Meta and TikTok from one project.
Recognised platforms, files, feed URLs, REST APIs, or no source at all.
Create a free account, connect the API, and map your first feed. No payment information required.