Recorded behaviour of the Flow Production Tracking REST API.
The REST documentation is incomplete and in places wrong. Every entry here is what a live site answered when a script asked it. The scripts are in the repository and run against any site.
Who is it for
| You | Every entry is a page on this site. Start with the entity types. |
| Your agent | Given proper instructions, it has a ground truth to refer to and probes it can run to check a claim. |
| Your code | FPT is the client every probe here uses, so what the corpus records is
what it does. Call the API with it. |
| Your site | Live data about your entity types, the fields in use, your status vocabularies and your projects. |
Recipes are a call and the response it returned. The corpus has them. /sg-groundtruth-adopt writes new ones from code you already have.
Start here
Four commands. The last one asks what you want run, then measures your site and rebuilds these pages with your own entities, fields, status vocabularies and projects in them.
# the corpus, the probes that produced it, and the setup command git clone https://github.com/ksallee/sg-groundtruth cd sg-groundtruth # start your agent from inside the clone, so it loads the repository's commands claude
/sg-groundtruth-setup
Read-only. Nothing is written without --write, and what it measures stays in corpus.local/, which is gitignored. What the command does, step by step.
Why it exists
Some Flow PT API calls fail silently. They answer 200 and do not do what you asked. They are documented here.
| you do this | this happens |
|---|---|
| Sort on a misspelled field | 200. The sort is ignored, rows come back id ascending, and nothing says
so 026 |
Page until links.next is absent | It is never absent. It is emitted on zero-row pages too. Stop when data is empty 006 |
| Create rows in a batch | You get an id per row. A batch can return an id for a row it never made 028 |
Every entry was measured by a script user with broad access. The API is the same for every caller, but what it returns is filtered by permission, so a lower-permission account may see fewer rows and fewer fields than an entry records.