Propose a primitive
Propose a primitive the industry's schema does not have yet, with public sources and quotes copied from them. Reviewed by the System Atlas team; proposing the same thing again adds sources.
POST
/api/v1/proposalsWrite · editor keyAuthentication
Authorization: Bearer sa_… from the workspace owner or a member. Counts against the upload rate limit.
Parameters
Body
- industrystringrequired
Industry key from list_industries, e.g. staffing
min 1 char - labelstringrequired
Plain name of the function, e.g. Credential verification
min 3 charsmax 120 chars - layerenumrequiredpeopleprocesssoftwaredatadecisions
- descriptionstringrequired
What it does in a company of this industry, in plain words
min 10 charsmax 800 chars - parametersobject[]optional
Numbers or facts that tell good from average for it
max 20 items - parameters[].keystringoptionalmax 60 chars
- parameters[].labelstringrequiredmin 2 charsmax 120 chars
- parameters[].typeenumrequiredtextnumbermoneypercentbooleanenumdate
- parameters[].unitstringoptionalmax 20 chars
- sourcesobject[]required
Public pages that show it, each with a verbatim quote
min 1 itemmax 5 items - sources[].urlstringrequiredmax 2000 chars
- sources[].quotestringrequired
Words copied exactly from that page
min 12 charsmax 600 chars
Request
curl -X POST "https://systematlas.org/api/v1/proposals" \
-H "Authorization: Bearer sa_…" \
-H "content-type: application/json" \
-d '{"industry":"staffing","label":"Shift marketplace","layer":"software","description":"A self-serve app where vetted workers claim open shifts.","sources":[{"url":"https://rival.example/workers","quote":"Pick up open shifts from your phone"}]}'Response
201 with the result in data (abbreviated here). Errors are listed in Errors and limits.
Response
{
"data": {
"id": "7a0e…",
"status": "pending",
"seenAt": 1
}
}Over MCP
The same call as an MCP tool: propose_primitive.