Skip to main content
A system is a hardware project you’re building, operating, or analyzing. All metagraph data, jobs, issues, test runs, and sessions are scoped to a system. See Populating the System Metagraph for a workflow guide.

Endpoints

MethodPathDescription
POST/systemsCreate a system
GET/systemsList systems
GET/systems/{system_id}Get a system
PUT/systems/{system_id}Update a system
DELETE/systems/{system_id}Delete a system
POST/systems/upload_documentUpload a reference document
GET/system-memoriesSearch entity memories across a system

Create a system

POST /systems Request body:
FieldRequiredTypeDescription
system_nameYesstringDisplay name for the system
descriptionNostringOptional description
Example request:
curl -X POST "https://spacex.atlas.arenaphysica.com/api/v1/systems" \
  -H "Authorization: Bearer $ATLAS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "system_name": "Power Distribution Unit",
    "description": "24V DC power distribution system for the vehicle platform"
  }'
Response fields:
FieldTypeNullableDescription
system_idUUIDNoUnique system identifier
system_namestringNoDisplay name
descriptionstringYesSystem description
has_blueprintsbooleanNoWhether the system has associated blueprints
created_bystringNoEmail of the user who created the system
created_atstringNoISO 8601 creation timestamp
is_deletedbooleanNoSoft-delete flag
Example response:
{
  "system_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "system_name": "Power Distribution Unit",
  "description": "24V DC power distribution system for the vehicle platform",
  "has_blueprints": false,
  "created_by": "engineer@example.com",
  "created_at": "2026-04-13T10:00:00.000000",
  "is_deleted": false
}

List systems

GET /systems Query parameters:
ParameterRequiredTypeDescription
searchNostringFilter by name (case-insensitive substring match)
is_deletedNobooleanSet to true to include soft-deleted systems. Defaults to false
Example request:
curl "https://spacex.atlas.arenaphysica.com/api/v1/systems" \
  -H "Authorization: Bearer $ATLAS_TOKEN"
Returns {"items": [...], "count": N} where each item is a system object with the same fields as the create response.

Get a system

GET /systems/{system_id} Path parameters:
ParameterRequiredTypeDescription
system_idYesUUIDSystem identifier
Example request:
curl "https://spacex.atlas.arenaphysica.com/api/v1/systems/$SYSTEM_ID" \
  -H "Authorization: Bearer $ATLAS_TOKEN"
Returns a single system object with the same fields as the create response.

Update a system

PUT /systems/{system_id} All fields are optional. Only provided fields are updated.
FieldTypeDescription
system_namestringNew display name
descriptionstringNew description
Example request:
curl -X PUT "https://spacex.atlas.arenaphysica.com/api/v1/systems/$SYSTEM_ID" \
  -H "Authorization: Bearer $ATLAS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"description": "Updated: 48V system after board revision 3"}'
Returns the updated system object with the same fields as the create response.

Delete a system

DELETE /systems/{system_id} Soft-deletes a system. The system remains in the database with is_deleted: true. Example request:
curl -X DELETE "https://spacex.atlas.arenaphysica.com/api/v1/systems/$SYSTEM_ID" \
  -H "Authorization: Bearer $ATLAS_TOKEN"
Response fields:
FieldTypeDescription
messagestringConfirmation message
uuidUUIDID of the deleted system
Example response:
{
  "message": "System deleted successfully",
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

Upload a reference document

POST /systems/upload_document Attaches PDFs, specs, schematics, or other documents to a system. Uploaded files are embedded and made available to Atlas during reasoning and metagraph updates. Query parameters:
ParameterRequiredTypeDescription
system_idNoUUIDSystem to scope the document to
Form fields (multipart/form-data):
FieldRequiredDescription
fileYesFile binary. Use multiple file fields to upload several files at once
metadataNoJSON string with optional file_name (string) and file_type (string)
Example request:
curl -X POST "https://spacex.atlas.arenaphysica.com/api/v1/systems/upload_document?system_id=$SYSTEM_ID" \
  -H "Authorization: Bearer $ATLAS_TOKEN" \
  -F "file=@system_spec.pdf" \
  -F 'metadata={"file_name": "system_spec.pdf", "file_type": "pdf"}'
Response fields:
FieldTypeDescription
messagestringSummary message
system_idUUIDSystem the documents were attached to
total_filesintegerNumber of files submitted
successfulintegerNumber of files successfully processed
failedintegerNumber of files that failed
resultsarrayPer-file result objects
Each item in results:
FieldTypeNullableDescription
file_namestringNoName of the file
successbooleanNoWhether processing succeeded
dataset_namestringYesDataset identifier assigned
job_run_idUUIDYesID of the embedding job run
errorstringYesError message if failed
Example response:
{
  "message": "Processed 1 file(s)",
  "system_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "total_files": 1,
  "successful": 1,
  "failed": 0,
  "results": [
    {
      "file_name": "system_spec.pdf",
      "success": true,
      "dataset_name": "pdu-system-spec",
      "job_run_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "error": null
    }
  ]
}

Search system memories

GET /system-memories Searches entity memories across all entities. Returns matching memory entries with their associated entity and system context. Query parameters:
ParameterRequiredTypeDescription
searchNostringKeyword search across memory content
entity_idsNoarray of UUIDFilter to specific entity IDs
root_entity_idsNoarray of UUIDFilter to entities under specific root entities
contributorsNoarray of stringFilter by contributor email
sort_byNostringSort field
offsetNointegerDefault 0
limitNointegerDefault 20
Example request:
curl "https://spacex.atlas.arenaphysica.com/api/v1/system-memories?search=temperature" \
  -H "Authorization: Bearer $ATLAS_TOKEN"
Response fields:
FieldTypeDescription
itemsarrayList of memory result objects
countintegerTotal number of matching entries
Each item in items:
FieldTypeDescription
item.idstringMemory entry identifier
item.contentstringMemory text
item.sourcestringHow the memory was created
item.contributorsarray of stringEmails of users who contributed
item.created_atstringISO 8601 creation timestamp
item.tagsarray of stringLabels applied to this memory
system_idstringID of the system the entity belongs to
system_namestringName of the system
entity_idstringID of the entity this memory is attached to
entity_namestringDisplay name of the entity
entity_typestringEntity type (e.g. COMPONENT, SUBSYSTEM)
Example response:
{
  "items": [
    {
      "item": {
        "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
        "content": "Known temperature sensitivity above 85°C. Readings drift ~0.5 deg/s per degree above threshold.",
        "source": "user",
        "contributors": ["engineer@example.com"],
        "created_at": "2026-04-13T09:00:00.000000",
        "tags": []
      },
      "system_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "system_name": "Power Distribution Unit",
      "entity_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "entity_name": "Battery Management IC",
      "entity_type": "COMPONENT"
    }
  ],
  "count": 1
}