Get a module
GET https://seerepo.com/api/v1/repos/:repo/world
Returns one module of the map: what it does, its parts (each with a one-line phrase and, if it opens, the path to go inside), the modules it connects to and the outside services. Start at / and follow the paths. It never returns code.
At / it also says how the product runs, read from its code: an import that's never called doesn't count, and a link for a person isn't a call. What the repo doesn't say isn't made up.
Request
| Parameter | Where | Description |
|---|---|---|
repo |
path | The repo's id, or owner/name with the slash written %2F. |
path |
query | The module's path, like /checkout. By default /. |
curl "https://seerepo.com/api/v1/repos/6ad79fd8e89233277ded17c9/world?path=/checkout" \
-H "Authorization: Bearer $SEEREPO_KEY"
Response
| Field | Type | Description |
|---|---|---|
data.repo |
object | The repo: its id and owner/name. |
data.parent |
string|null | The module above it; null at /. |
data.cables[] |
object | The ties between its parts: from, to, the verb and how many. |
data.path |
string | The module's path. |
data.name |
string | Its name. |
data.phrase |
string | What it does, in one sentence. |
data.crumbs[] |
object | The modules above it, from /. |
data.parts[].name |
string | A part's name. |
data.parts[].type |
string | What it is: world, screen, action, machine, scheduled, data, people, machines, clock… |
data.parts[].phrase |
string | What it does, in one line. Empty in a free repo, except in the part that changes most, whose sheet comes whole. |
data.parts[].path |
string | Only if it opens: the path to go inside. |
data.parts[].file |
string | Only for a part that is one file: its path. |
data.tests.byUrl |
object | Only at /: the routes the tests call by their address, routes and called. A floor, and not coverage. Absent when the repo has no routes read. |
data.tests |
object | What test files import here: files, named (imported directly), reached (through those), and parts[] with each module's path, name, files, named and reached, the fewest first. At /, also folders: tests, the test files against the code by folder (thinnest[], with path, tests and files, the thinnest first) and the ones in a folder of their own (apart[]). It isn't coverage: a test that only calls a URL isn't followed. Not in a free repo. |
data.comesFrom[] / data.goesTo[] |
object | The modules it connects to, with the verb (enters, uses, reads, writes to, calls, triggers), how many ties and their path. |
data.services[] |
object | The outside services (Stripe, Supabase…), at /. |
data.halfMade |
object | Only at /, and only when more than ceiling % (30) of the map's files sit in boxes it didn't design («+N more», what's inside one, a box by letters): files, under and share. The map is half made: read its names as the designed part. Comes with each repo's next scan. |
data.runs |
object | Only at /: how the product runs. Empty for a library, which doesn't run. |
data.runs.traced |
boolean | True when each process's services were followed by what it really names; false in a language without that yet, where they go by whole files. |
data.runs.entries[] |
object | Who comes in: people, agents, notices or timers, with how many and into which process. |
data.runs.processes[] |
object | What runs: its id, its kind (web, app, worker, job, edge), the file that says so, its name and what it does. |
data.runs.homes[] |
object | Where they live, when the repo says: Docker, Vercel, Cloudflare… |
data.runs.deploys[] |
object | What deploys them, when the repo says. |
data.runs.services[] |
object | What it uses: its name, how that's known (how), which processes use it (usedBy), the file and line, what it does, and solid: false when the code only suggests it. |
data.moduleRuns |
object | Only inside a module: who comes in (entries) and what it uses (uses), with the path of each module beside it. |
Example
{
"status": "success",
"data": {
"repo": {
"id": "6ad79fd8e89233277ded17c9",
"fullName": "ana/tienda"
},
"path": "/checkout",
"parent": "/",
"name": "Checkout",
"phrase": "Takes the payment.",
"parts": [
{
"id": "pay",
"name": "Pricing page",
"type": "screen",
"side": "product",
"phrase": "Where the plans are picked.",
"file": "app/pricing/page.tsx",
"webRoute": "/pricing"
},
{
"id": "hook",
"name": "Stripe webhook",
"type": "action",
"side": "product",
"phrase": "Turns the plan on once Stripe confirms.",
"file": "app/api/stripe/route.ts"
}
],
"comesFrom": [
{
"world": "Engine",
"verb": "uses",
"n": 2,
"path": "/engine"
}
],
"goesTo": [],
"services": []
}
}
Authentication
An API key as Authorization: Bearer sr_…. See Authentication.
Errors
| Code | code |
When |
|---|---|---|
| 400 | bad_path |
The path doesn't start with /. |
| 402 | plan_required |
A module inside a repo on the free look: its first level only. |
| 404 | no_world |
No module at that path, or the repo has no map (for example, SeeRepo found no code it can read in it). |
Besides the ones every endpoint has (401, 404, 429), see Errors.