System Atlas

Upsert registry components

Up to 200 public components with values, each on an open-web source. Re-sending a clientId updates it.

POST/api/v1/admin/registry/componentsAdmin

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
  • itemsobject[]required
    min 1 itemmax 200 items
  • items[].clientIdstringoptional

    Your stable id for this thing (e.g. repo path or tool slug). Re-uploading the same clientId updates instead of duplicating.

    min 1 charmax 120 charspattern ^[\w.:/@-]+$
  • items[].labelstringrequired

    The company's own name for it: 'Payroll (Gusto)', 'Platform team'

    min 1 charmax 200 chars
  • items[].descriptionstringoptional

    One or two plain sentences: what it is, what it does

    max 2000 chars
  • items[].layerenumoptional
    peopleprocesssoftwaredatadecisions
  • items[].primitivestringoptional

    Primitive key from get_mapping_guide, if you know it

    max 80 chars
  • items[].parentstringoptional

    Parent component: its clientId, label, or component id

    min 1 charmax 200 chars
  • items[].kindenumoptionaldefault "internal"
    internalexternal
  • items[].externalKindenumoptional
    customersupplierpartnerregulatoreconomic_factor
  • items[].valuesobject[]optionaldefault []
    max 50 items
  • items[].values[].parameterstringrequired
    min 1 charmax 80 chars
  • items[].values[].valuestring | number | booleanrequired
  • items[].values[].sourceobjectoptional

    Defaults to the component's source

  • items[].values[].source.urlstringrequired

    Public web address the finding rests on

    min 1 charmax 500 chars
  • items[].values[].source.kindenumoptionaldefault "website"
    websitecareersjob_postpressreviewfilingregistry
  • items[].values[].source.titlestringoptional
    max 200 chars
  • items[].sourceobjectrequired
  • items[].source.urlstringrequired

    Public web address the finding rests on

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

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

    highlow

Request

curl -X POST "https://systematlas.org/api/v1/admin/registry/components" \
  -H "Authorization: Bearer sa_…" \
  -H "content-type: application/json" \
  -d '{"organization":"acmebuilders.example","items":[{"clientId":"estimating","label":"In-house estimating team","primitive":"estimating","layer":"people","confidence":"high","source":{"url":"https://acmebuilders.example/careers/estimator","kind":"job_post"},"values":[{"parameter":"estimating_method","value":"estimating software"}]}]}'

Response

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

Response
{
  "data": {
    "organization": {
      "domain": "acmebuilders.example",
      "ref": "acme-builders-3f2a9c1d"
    },
    "placed": {
      "given": 1,
      "existing": 0,
      "matched": 0,
      "model": 0,
      "parent": 0,
      "custom": 0,
      "failed": 0
    },
    "results": [
      {
        "clientId": "estimating",
        "label": "In-house estimating team",
        "primitive": "estimating",
        "placedBy": "given",
        "created": true,
        "values": 1
      }
    ]
  }
}

Over MCP

The same call as an MCP tool: registry_upsert_components.