API Documentation

Every endpoint in the APEX-EDA platform, documented with code examples. 74 endpoints across 11 categories.

74 Endpoints 25 New in Phase 3 2 SDKs JWT Auth

Authentication

All API requests require a JWT bearer token obtained from the login endpoint. Tokens expire after 24 hours.

# Obtain token POST /v1/auth/login {"email": "user@example.com", "password": "your-password"} # Response includes JWT {"token": "eyJhbGciOiJSUzI1NiIs...", "expires_at": "2026-06-21T03:40:00Z"} # Use in all requests Authorization: Bearer <your-jwt-token>

SDKs

Official client libraries for Python and JavaScript.

Python SDK

Async support, type hints, request batching.

pip install apex-eda from apex_eda import APEXClient client = APEXClient(api_key="your-token") result = client.synthesize("design.v", "asic")

JavaScript SDK

TypeScript-first, ESM + CommonJS.

npm install apex-eda import { APEXClient } from 'apex-eda'; const client = new APEXClient({ apiKey: 'your-token' }); const result = await client.synthesize('design.v', 'asic');

All 74 Endpoints

Marked with NEW = Phase 3 additions.

1. Authentication & Account (4 endpoints)

POST /v1/auth/login

Authenticate

Returns JWT token valid 24h. Rate limited to 10 req/min.

{"email": "string", "password": "string"}
POST /v1/auth/register

Register

New account. Verification token sent via email.

{"email": "string", "password": "string", "name": "string"}
POST /v1/auth/refresh

Refresh token

Extends JWT by 24h.

GET /v1/account/usage

Usage

Monthly API calls, quota, plan details.

2. Synthesis (8 endpoints)

POST /v1/synthesis/run new

Run Yosys synthesis

Submit RTL for Yosys+ABC. Verilog/VHDL/SV. Target "asic" or "fpga".

# Pythonresult = client.synthesize(rtl_source="module...", target="asic", library="osu035")
GET /v1/synthesis/{id}/status

Job status

pending/running/completed/failed with ETA.

GET /v1/synthesis/{id}/netlist

Netlist download

Verilog or EDIF gate-level netlist.

GET /v1/synthesis/{id}/report

Synthesis report

Area, cell count, estimated frequency.

POST /v1/synthesis/optimize new

AI optimize

Qwen3-235B guided optimization. Natural language goals like "reduce area 20%".

POST /v1/synthesis/map new

Tech mapping

Map generic netlist to Liberty library.

GET /v1/synthesis/libraries

List libraries

Available tech libraries with cell counts.

POST /v1/synthesis/library/upload

Upload library

Upload .lib file for custom mapping.

3. Static Timing Analysis (6 endpoints)

POST /v1/sta/run new

Run STA

OpenSTA with SDC. Returns WNS/TNS, critical paths.

# Pythonresult = client.sta(netlist_id="net_abc", constraints="create_clock -period 2 [get_ports clk]")
GET /v1/sta/{id}/paths

Timing paths

All paths sorted by slack. Paginated.

GET /v1/sta/{id}/critical

Critical paths

Top N WNS paths with full cell/nets details.

GET /v1/sta/{id}/histogram

Slack histogram

Distribution for visualization.

GET /v1/sta/{id}/report

STA report

Full timing report, clock summary, WNS/TNS.

POST /v1/sta/check-constraints

Validate SDC

Check consistency, detect conflicts, recommend fixes.

4. Clock Domain Crossing (4 endpoints)

POST /v1/cdc/analyze new

CDC analysis

Identify all clock domains, crossings, synchronizers.

GET /v1/cdc/{id}/report

CDC report

Crossing points, sync schemes, metastability analysis.

GET /v1/cdc/{id}/violations

CDC violations

Improperly synchronized crossings with severity.

POST /v1/cdc/check-sync

Validate synchronizer

Validate dual-FF/FIFO synchronizer against MTBF criteria.

5. FSM Extraction (4 endpoints)

POST /v1/fsm/extract new

Extract FSMs

Extract all FSMs from RTL: state encoding, transitions.

GET /v1/fsm/{id}/graph

State graph

Transition graph data for viz.

GET /v1/fsm/{id}/unreachable

Unreachable states

Unreachable states and transition coverage.

GET /v1/fsm/{id}/report

FSM report

Complete documentation of all FSMs.

6. Physical Verification (6 endpoints)

POST /v1/drc/run

Run DRC

KLayout DRC with foundry rule decks.

// JSconst v = await client.drc.run({gdsId: "layout_xyz", ruleDeck: "tsmc_n3"});
GET /v1/drc/{id}/violations

DRC violations

All violations with type, severity, coordinates.

POST /v1/lvs/run

Run LVS

LVS via KLayout. Match % and discrepancies.

GET /v1/lvs/{id}/report

LVS report

Matched/mismatched nets, shorts, opens.

GET /v1/rule-decks

Rule decks

Available DRC rule decks.

POST /v1/rule-decks/upload

Upload deck

Upload custom .drc/.lvs rule deck.

7. Power Analysis (5 endpoints)

POST /v1/power/analyze new

Power analysis

Dynamic + static power with activity annotation.

GET /v1/power/{id}/breakdown

Power breakdown

Per-cell, per-hierarchy consumption.

POST /v1/ir-drop/analyze new

IR drop

Static/dynamic IR drop, voltage map, EM risk.

POST /v1/power-grid/synthesize

Power grid

Auto P/G ring/stripe/mesh generation.

POST /v1/thermal/analyze new

Thermal

Steady-state/transient thermal simulation.

8. Place & Route (6 endpoints)

POST /v1/pnr/floorplan

Floorplan

Aspect ratio, utilization, power domains.

POST /v1/pnr/place

Placement

Global + detailed with wirelength minimization.

POST /v1/pnr/cts

Clock tree

CTS with target skew/latency/power.

POST /v1/pnr/route

Routing

Global + detailed, DRC aware.

GET /v1/pnr/{id}/congestion

Congestion

Routing congestion heatmap.

POST /v1/pnr/eco

ECO

Minimal metal fixes.

9. GDS & Layout (6 endpoints)

POST /v1/gds/upload

Upload GDSII

Upload for preview and verification.

GET /v1/gds/{id}/preview

GDS preview

Browser viewer with layer toggle and measurement.

GET /v1/gds/{id}/layers

Layers

All GDS layers with counts and purpose.

POST /v1/gds/export

Export GDS

Layout from synthesis/PnR as GDSII.

POST /v1/gds/parasitics

Parasitics

R/C extraction. Output DSPF/SPEF.

POST /v1/gds/fill new

Fill insertion

Auto dummy fill for density uniformity.

10. Reporting & Metrics (9 endpoints)

POST /v1/metrics/rtl new

RTL metrics

Complexity, lint score, fanout, depth.

POST /v1/metrics/area

Area breakdown

Hierarchical by module, cell type, layer.

POST /v1/metrics/coverage

Coverage

Code, toggle, FSM, functional in one pass.

POST /v1/metrics/complexity

Complexity

Cyclomatic, hierarchy depth, instantiations.

POST /v1/si/analyze new

Signal integrity

Crosstalk noise and delay analysis.

POST /v1/report/generate

Generate report

PDF/HTML with charts and annotated paths.

POST /v1/equiv/check

Logic equivalence

Combinational + sequential. Counter-example generation.

POST /v1/compare/designs

Compare designs

Structural/functional diff of two designs.

POST /v1/pdk/map

PDK mapping

Configure layer map for any foundry PDK via JSON.

11. AI & Advanced (10 endpoints)

POST /v1/ai/optimize

AI optimize

Qwen3-235B optimization from natural language.

// JSconst opt = await client.ai.optimize({designId: "d_123", goal: "meet 1GHz"});
POST /v1/ai/testbench

Testbench gen

AI-driven UVM/SV testbench from specs.

POST /v1/ai/axi-gen

AXI4 gen

Parameterized AXI4/AXI4-Lite/AXI4-Stream.

POST /v1/retime

Retiming

Register retiming pre/post reports.

POST /v1/fanout/fix

Fanout fix

High-fanout detection + buffer tree insertion.

POST /v1/clock-gate

Clock gating

Auto insertion for power reduction.

POST /v1/pin-place

Pin placement

Optimized I/O with timing closure.

POST /v1/dft/scan

DFT scan

Scan chain, ATPG, fault coverage.

POST /v1/buffer-insert

Buffer insert

Optimal buffer placement for long wires.

GET /v1/system/health

Health check

Status, latency, maintenance windows.

Total: 74 endpoints | 11 categories | 25 new in Phase 3 | Updated June 2026