{
  "openapi": "3.0.1",
  "info": {
    "title": "SPICE Circuit Simulator: ngspice Netlists, Bode & Transient",
    "description": "Simulate SPICE netlists with ngspice: DC operating point, sweeps, AC Bode plots, transients, transfer functions and .meas. Node voltages, currents, power, gain, bandwidth, phase margin, waveform stats, charts and CSV. Common parts built in. For AI agents.",
    "version": "0.1",
    "x-build-id": "omSyxtkk6IrITj9Wu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jumblemog~circuit-simulator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jumblemog-circuit-simulator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/jumblemog~circuit-simulator/runs": {
      "post": {
        "operationId": "runs-sync-jumblemog-circuit-simulator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/jumblemog~circuit-simulator/run-sync": {
      "post": {
        "operationId": "run-sync-jumblemog-circuit-simulator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "netlist": {
            "title": "SPICE netlist",
            "type": "string",
            "description": "The circuit as a SPICE netlist: components (R1 in out 1k, C1 out 0 100n, V1 in 0 DC 5 AC 1 PULSE(0 5 0 1u 1u 1m 2m), D1 a k 1N4148, Q1 c b e 2N3904, M1 d g s s 2N7000, X1 in+ in- vcc vee out OPAMP_RAILS), .model and .subckt lines, and analyses (.op, .dc, .ac, .tran, .tf) with .meas measurements. Node 0 (or gnd) is ground. A first line that is already a component gets a title line added. Parts used without a .model come from the built-in library."
          },
          "analyses": {
            "title": "Analyses to add",
            "type": "array",
            "description": "Analysis lines added to the netlist, such as .tran 10u 5m, .ac dec 20 10 1meg, .dc V1 0 5 0.1, .op or .tf v(out) V1. With none here or in the netlist, the DC operating point is found.",
            "items": {
              "type": "string"
            }
          },
          "measurements": {
            "title": "Measurements to add",
            "type": "array",
            "description": "ngspice .meas lines added to the netlist, such as .meas tran vmax MAX v(out), .meas ac f3db WHEN vdb(out)=-3, .meas tran tr TRIG v(out) VAL=0.5 RISE=1 TARG v(out) VAL=4.5 RISE=1.",
            "items": {
              "type": "string"
            }
          },
          "signals": {
            "title": "Signals to report",
            "type": "array",
            "description": "Which voltages and currents to chart and summarize, such as v(out), out, v(out,in) (a difference) or i(V1) (the current through a voltage source). Empty: up to 6 of the circuit's nodes, outputs first.",
            "items": {
              "type": "string"
            }
          },
          "title": {
            "title": "Title",
            "type": "string",
            "description": "A title for the results and files. Empty: the netlist's title line."
          },
          "temperature": {
            "title": "Temperature (°C)",
            "type": "number",
            "description": "The circuit's temperature. Empty: 27 °C, SPICE's default."
          },
          "dataPoints": {
            "title": "Data points per analysis",
            "minimum": 10,
            "maximum": 5000,
            "type": "integer",
            "description": "How many evenly spaced points of each signal the result's data holds (on a log axis for AC). The CSV file has every point the simulator computed.",
            "default": 500
          },
          "timeLimitSeconds": {
            "title": "Time limit per circuit (seconds)",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "How long a circuit may simulate. Most finish in well under a second; long transients of switching circuits take longer. Simulating past 30 seconds is billed per started 10 seconds.",
            "default": 60
          },
          "circuits": {
            "title": "Several circuits",
            "type": "array",
            "description": "Simulate several circuits in one run: a list of objects with their own netlist and any field above, or of netlists as text: [{\"title\": \"10k\", \"netlist\": \"...\"}, {\"title\": \"22k\", \"netlist\": \"...\"}]. Fields not given come from above."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}