API Reference

Use the Architect REST API to access all three agents. Base URL: https://api.architcetlabs.com/v1.

Authentication

Each request needs your API key as a Bearer token in the Authorization header:

http
Authorization: Bearer arc_sk_your_api_key_here

After arc login, get your API key from the Architect dashboard.

Layout Agent

POST /v1/layout/jobs

Create a layout job; upload inputs for asynchronous place-and-route by the Layout Agent.

Request body

json
{
  "project_id": "prj_a1b2c3d4",
  "netlist_upload_id": "upl_n1n2n3",
  "sdc_upload_id": "upl_s1s2s3",
  "lef_upload_id": "upl_l1l2l3",
  "def_upload_id": "upl_d1d2d3"
}

Response (201 Created)

json
{
  "job_id": "job_x7y8z9",
  "status": "queued",
  "created_at": "2026-08-14T09:22:11Z"
}
GET /v1/layout/jobs/{job_id}

Get a layout job's status and output.

Response (200 OK)

json
{
  "job_id": "job_x7y8z9",
  "status": "complete",
  "outputs": {
    "routed_def_url": "https://...",
    "spef_url": "https://...",
    "congestion_map_url": "https://..."
  }
}

Verify Agent

POST /v1/verify/jobs

Create a verification job for a completed layout job or uploaded DEF/SPEF.

Request body

json
{
  "project_id": "prj_a1b2c3d4",
  "layout_job_id": "job_x7y8z9",
  "checks": ["drc", "lvs", "sta"]
}

Refine Agent

POST /v1/refine/jobs

Run the Refine Agent on a completed verify job's violation report.

Request body

json
{
  "project_id": "prj_a1b2c3d4",
  "verify_job_id": "job_v1v2v3",
  "auto_fix": true,
  "max_heuristic_retries": 3
}

Response (201 Created)

json
{
  "job_id": "job_r4r5r6",
  "status": "running",
  "violations_total": 16,
  "violations_auto_fixed": 0,
  "violations_pending": 16
}

Error responses

All error responses follow a consistent structure:

json
{
  "error": {
    "code": "invalid_input",
    "message": "The provided LEF upload ID was not found.",
    "param": "lef_upload_id"
  }
}
Status Meaning
201Job created successfully
200Request successful
400Invalid request parameters
401Authentication required or token invalid
404Resource not found
429Rate limit exceeded
500Internal server error