System Atlas

Upsert registry flows

Up to 200 public flows between an organization's components.

POST/api/v1/admin/registry/flowsAdmin

Authentication

Authorization: Bearer sa_… from a System Atlas admin. Any other key gets 403. Counts against the upload rate limit.

Parameters

Body

  • organizationstringrequired

    The organization's domain or website, as given to registry_upsert_organization

    min 3 charsmax 300 chars
  • flowsobject[]required
    min 1 itemmax 200 items
  • flows[].fromstringrequired

    Component id, clientId or label

    min 1 charmax 200 chars
  • flows[].tostringrequired
    min 1 charmax 200 chars
  • flows[].flowTypeenumrequired
    moneyinformationmaterialworkenergycontrol
  • flows[].labelstringoptional
    max 200 chars
  • flows[].directionenumoptionaldefault "one_way"
    one_waytwo_way
  • flows[].confidenceenumoptionaldefault "high"

    How sure the public evidence makes it: high (stated plainly) or low (implied)

    highlow
  • flows[].sourceobjectoptional
  • flows[].source.urlstringrequired

    Public web address the finding rests on

    min 1 charmax 500 chars
  • flows[].source.kindenumoptionaldefault "website"
    websitecareersjob_postpressreviewfilingregistry
  • flows[].source.titlestringoptional
    max 200 chars

Request

curl -X POST "https://systematlas.org/api/v1/admin/registry/flows" \
  -H "Authorization: Bearer sa_…" \
  -H "content-type: application/json" \
  -d '{"organization":"acmebuilders.example","flows":[{"from":"estimating","to":"project-management","flowType":"information","label":"approved budget"}]}'

Response

200 with the result in data (abbreviated here). Errors are listed in Errors and limits.

Response
{
  "data": {
    "organization": {
      "domain": "acmebuilders.example"
    },
    "results": [
      {
        "from": "estimating",
        "to": "project-management",
        "edgeId": "4b1e…",
        "created": true
      }
    ]
  }
}

Over MCP

The same call as an MCP tool: registry_upsert_flows.