API Reference
The Skycore REST API enables programmatic RTL generation and verification runs. API access is offered on Team (beta) and Studio (production) tiers.
API Reference
The Skycore API is an HTTPS REST interface. Requests and responses use JSON. All endpoints use https://api.skycore.dev/v1. Access requires a workspace token issued during provisioning.
Authentication
Send your API token in the Authorization header:
Authorization: Bearer sk_<your-workspace-token>
Workspace tokens are organization-scoped. Each team engineer receives an individual token. Do not share tokens between team members. Rotate tokens in the workspace dashboard under Settings > API.
Projects
A project is the top-level organizational unit. It stores EDA environment settings (process node, simulation tool, output language) and groups related blocks and generation runs.
Add a project.
"65nm", "28nm", or "22nm". Required.
"verilog" or "systemverilog"; default: "systemverilog".
"xcelium", "vcs", or "questa". Used for verification runs.
{
"name": "lna-library-q4",
"process_node": "65nm",
"output_language": "systemverilog",
"sim_tool": "xcelium"
}
{
"id": "proj_a1b2c3d4",
"name": "lna-library-q4",
"process_node": "65nm",
"output_language": "systemverilog",
"sim_tool": "xcelium",
"created_at": "2026-06-01T09:14:00Z"
}
Return every workspace project in a paginated array.
Fetch one project by ID.
Blocks
A block defines one RF IP block within a project. It contains the description, performance targets, and interface specification. Iteration can attach multiple generation runs to the same block.
Add a block definition.
{
"name": "lna_5g_n77",
"description": "LNA for 5G NR Band n77, NF < 1.5 dB, IIP3 > 10 dBm, 65 nm CMOS, differential input",
"interface": {
"ports": [
{ "name": "rf_inp", "direction": "input", "width": 1 },
{ "name": "rf_inn", "direction": "input", "width": 1 },
{ "name": "rf_outp", "direction": "output", "width": 1 },
{ "name": "gain_ctrl", "direction": "input", "width": 4 }
]
}
}
Generation Runs
A generation run creates RTL output for a block. Each run is versioned and stored with its generation metadata. Runs are asynchronous, so poll status until it reaches completed or failed.
"cascode" or "common-source". Skycore picks topology when omitted.
Check a generation run's status.
{
"id": "gen_x9y8z7w6",
"block_id": "blk_e5f6g7h8",
"status": "completed",
"output_language": "systemverilog",
"topology": "cascode",
"rtl_url": "https://api.skycore.dev/v1/generation-runs/gen_x9y8z7w6/rtl",
"created_at": "2026-06-18T14:22:07Z",
"completed_at": "2026-06-18T14:22:43Z"
}
Download the RTL output file. Returns raw Verilog or SystemVerilog source as text/plain.
Verification Runs
A verification run links to a generation run and executes the automatically produced UVM testbench against its RTL. It is available only when the parent project has a configured simulation tool.
["tt_1v_25c", "ss_0v9_m40c", "ff_1v1_125c"]. Nominal corner is default.
Check verification status and fetch results.
{
"id": "vrun_p1q2r3s4",
"generation_run_id": "gen_x9y8z7w6",
"status": "completed",
"tests_total": 3,
"tests_passed": 3,
"tests_failed": 0,
"results": [
{ "name": "gain_nominal_tb", "status": "pass", "detail": "gain 15.2 dB" },
{ "name": "nf_sweep_tb", "status": "pass", "detail": "NF 1.87 dB" },
{ "name": "iip3_linearity_tb", "status": "pass", "detail": "IIP3 +7.4 dBm" }
],
"report_url": "https://api.skycore.dev/v1/verification-runs/vrun_p1q2r3s4/report"
}
Errors
The API uses standard HTTP status codes. Error responses include a JSON body with code and message fields.
message field for details.
Retry-After header for the number of seconds to wait.
Rate Limits
Rate limits vary by workspace tier. Generation runs are the primary rate-limited resource.
For API access questions or quota increase requests, email [email protected].
API access?
Provisioned Team and Studio accounts can use the API. Apply for early access to begin.
Request Early Access