Describe existing lists and their indexes as a schema sync document. Every field that can be synced is written out, so syncing the document straight back changes nothing. Filters can be combined, and only lists matching all of them are exported.
GET https://api.jsonpad.io/sync-schemacurl "https://api.jsonpad.io/sync-schema?tagged=recipe-app" \
-H "x-api-token: <YOUR TOKEN>"scopestringhttps://api.jsonpad.io/sync-schema?scope=recipe-appOnly export lists managed by this scope. The document gets the scope, and the scope's own tag is left out of each list's tags, because a sync adds it back.taggedstringhttps://api.jsonpad.io/sync-schema?tagged=recipe-appOnly fetch lists with a tag.
Separate tags with commas to fetch lists with any of the tags (?tagged=recipe-app,cookbook-app), or repeat the parameter to fetch lists with all of them (?tagged=recipe-app&tagged=production).
listsstringhttps://api.jsonpad.io/sync-schema?lists=recipes,ratingsOnly export the lists with these path names, separated by commas.x-api-tokenstringYour API token. The token needs the sync-schema permission, which is enough to read the structure (not the items) of every list.No request body
{document: {$schema: "https://jsonpad.io/schema/sync-v1.json"lists: {recipes: {name: "Recipes"description: ""tags: [0: "recipe-app"]schema: nullreadonly: falserealtime: falseprotected: falseindexable: trueindexes: {slug: {name: "Slug"description: ""tags: []pointer: "/slug"valueType: "string"alias: truesorting: falsefiltering: falsesearching: falseguard: falsedefaultOrderDirection: "asc"}}}}}warnings: []}documentobjectThe schema document. Lists and indexes are sorted by path name, so exports of the same lists are easy to compare.warningsstring[]Anything that was left out or needs attention, e.g. a list with no path name (which a document can't sync), a list managed by a different scope, or a path name in lists that wasn't found. With an API token, deactivated and locked lists and deactivated indexes are left out too.No response headers
2026-09-14