API Reference
The Photoniq REST API allows you to submit verification jobs, poll status, retrieve reports, and manage PDKs programmatically. All endpoints require an API key.
Authentication
Pass your API key in the Authorization header as a Bearer token:
Authorization: Bearer YOUR_API_KEY
Base URL: https://api.photoniqo.com/v1
Endpoints
Submit a new verification job. Upload GDS, netlist, and specify a PDK. Returns a job ID for status polling.
Request (multipart/form-data)
| Parameter | Type | Required | Description |
|---|---|---|---|
| gds_file | file | required | GDS-II or OASIS layout file |
| netlist | file | required | SPICE netlist (.sp/.spi) or INTERCONNECT .icp |
| pdk | string | required | PDK identifier (e.g. AIM_300mm_v3.1) |
| pdk_config | file | optional | Custom PDK JSON config (overrides pdk) |
| label | string | optional | Human-readable label for this job |
curl -X POST https://api.photoniqo.com/v1/verify \
-H "Authorization: Bearer $API_KEY" \
-F "gds_file=@./layout/pic_top.gds" \
-F "netlist=@./sim/pic_top.spi" \
-F "pdk=AIM_300mm_v3.1" \
-F "label=pic_top_v3_review"
{
"job_id": "PNQ-2A8F-20260315",
"status": "queued",
"pdk": "AIM_300mm_v3.1",
"created_at": "2026-03-15T14:22:07Z",
"estimated_minutes": 10
}
Get current status and summary of a verification job. Poll this endpoint until status is complete or failed.
curl https://api.photoniqo.com/v1/jobs/PNQ-2A8F-20260315 \
-H "Authorization: Bearer $API_KEY"
{
"job_id": "PNQ-2A8F-20260315",
"status": "complete",
"result": "FAIL",
"summary": { "errors": 1, "warnings": 2, "passed": 4 },
"duration_seconds": 656
}
Download the full JSON verification report. Returns the structured error/warning list with all location and fix metadata.
curl https://api.photoniqo.com/v1/report/PNQ-2A8F-20260315/json \
-H "Authorization: Bearer $API_KEY" \
-o report.json
Download the HTML verification report for human review. Self-contained HTML with inline styles — no external dependencies.
List all available PDKs for your account tier, including custom PDKs you've uploaded.
{
"pdks": [
{ "id": "AIM_300mm_v3.1", "version": "3.1", "type": "standard" },
{ "id": "IMEC_iSiPP50G", "version": "2.3", "type": "standard" },
{ "id": "ANT_NanoSOI", "version": "2.0", "type": "standard" }
]
}
Upload a custom PDK configuration JSON. Available on Professional and Enterprise plans. The PDK config is validated and stored privately on your account.
curl -X POST https://api.photoniqo.com/v1/pdks/custom \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d @./my_foundry_pdk.json
Error codes
Standard HTTP status codes. Common error responses:
401 Unauthorized— Missing or invalid API key402 Payment Required— Run limit exceeded for Starter plan404 Not Found— Job ID or PDK ID not found422 Unprocessable Entity— GDS or netlist file failed parsing429 Too Many Requests— Rate limit exceeded