Export a schema

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-schema

Example

cURL
12curl "https://api.jsonpad.io/sync-schema?tagged=recipe-app" \
  -H "x-api-token: <YOUR TOKEN>"

Parameters

  • optional
    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.
  • optional
    taggedstringhttps://api.jsonpad.io/sync-schema?tagged=recipe-app

    Only 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).

  • optional
    listsstringhttps://api.jsonpad.io/sync-schema?lists=recipes,ratingsOnly export the lists with these path names, separated by commas.

Request headers

  • required
    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.

Request body

No request body

Response body

200 OK
{
document: {
$schema: "https://jsonpad.io/schema/sync-v1.json"
lists: {
recipes: {
name: "Recipes"
description: ""
tags: [
0: "recipe-app"
]
schema: null
readonly: false
realtime: false
protected: false
indexable: true
indexes: {
slug: {
name: "Slug"
description: ""
tags: [
]
pointer: "/slug"
valueType: "string"
alias: true
sorting: false
filtering: false
searching: false
guard: false
defaultOrderDirection: "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.

Response headers

No response headers

2026-09-14