Developers

API Documentation

Integrate VCU Config directly into your own tools, scripts, and workflows. Our REST API gives you programmatic access to save, load, and analyze ZombieVerter configurations.

Overview

The VCU Config API lets you interact with the platform programmatically. You can save configurations to your account, list and load saved configs, and run health checks — all without using the browser. The API is designed to work with your own custom scripts and third-party tools.

Base URL: https://vcuconfig.com

Content-Type: application/json

Authentication

All public API endpoints require an API key. Pass it in the X-API-Key request header. No session cookie is needed — this makes the API suitable for cross-origin and server-to-server use.

Getting Your API Key

  1. Sign up or sign in to your account.
  2. Go to My Account.
  3. Your API key is displayed in the API Key card. Copy it.
  4. Include it in every request as X-API-Key: evc_yo.../li>
# Example: listing configs with your API key curl -H "X-API-Key: evc_yo...pan> \ https://vcuconfig.com/api/public/configs

Getting Your API Key via HTTP

You can also retrieve your API key programmatically using session authentication (requires being logged in via browser first). This is useful for scripts that need to bootstrap an API key automatically.

GET /api/key

Retrieve your API key. Requires an active login session (browser cookie). If you don't have a key yet, one is automatically created for you.

Response 200 OK

{
  "success": true,
  "api_key": "evc_abc123...def456"
}

cURL

# Requires a valid session cookie (login first in browser)
curl https://vcuconfig.com/api/key \
  -H "Cookie: session=YOUR_SESSION_COOKIE"

Python

import requests

session = requests.Session()
session.post("https://vcuconfig.com/login", data={"email": "...", "password": "..."})

resp = session.get("https://vcuconfig.com/api/key")
data = resp.json()
api_key = data["api_key"]
print(f"My API key: {api_key}")

Endpoints

POST /api/public/save

Save a configuration to your account via API key. Cross-origin friendly — no session cookie required.

Request Body

{
  "name": "My Leaf Config",
  "description": "2013 Nissan Leaf motor",
  "config_json": {
    "potmin": 500,
    "potmax": 4000,
    "brknegen": 1000
  }
}

Response 201 Created

{
  "success": true,
  "config": {
    "id": 42,
    "name": "My Leaf Config",
    "description": "2013 Nissan Leaf motor",
    "slot_index": 1,
    "created_at": "2026-06-30"
  }
}

cURL

curl -X POST https://vcuconfig.com/api/public/save \
  -H "X-API-Key: evc_yo...pan> \
  -H "Content-Type: application/json" \
  -d '{    "name": "My Leaf Config",    "description": "2013 Nissan Leaf motor",    "config_json": {    "potmin": 500,    "potmax": 4000    } }'

Python

import requests

API_KEY = "evc_your_key_here"
url = "https://vcuconfig.com/api/public/save"

payload = {
    "name": "My Leaf Config",
    "description": "2013 Nissan Leaf motor",
    "config_json": {
        "potmin": 500,
        "potmax": 4000
    }
}

resp = requests.post(url, json=payload, headers={"X-API-Key": API_KEY})
data = resp.json()
print(data["config"]["id"])
GET /api/public/configs

List all saved configurations for your account.

Response 200 OK

{
  "success": true,
  "configs": [
    {
      "id": 42,
      "name": "My Leaf Config",
      "slot_index": 1,
      "description": "2013 Nissan Leaf motor",
      "created_at": "2026-06-30"
    }
  ],
  "max_slots": 10
}

cURL

curl -H "X-API-Key: evc_yo...pan> \
    https://vcuconfig.com/api/public/configs

Python

import requests

API_KEY = "evc_your_key_here"
url = "https://vcuconfig.com/api/public/configs"

resp = requests.get(url, headers={"X-API-Key": API_KEY})
data = resp.json()
for c in data["configs"]:
    print(c["name"], "—", c["created_at"])
GET /api/public/load/{id}

Load a specific config by its numeric ID.

Path Parameters

Parameter Type Description
id integer Config ID from a list or save response

Response 200 OK

{
  "success": true,
  "config": {
    "id": 42,
    "name": "My Leaf Config",
    "description": "2013 Nissan Leaf motor",
    "slot_index": 1,
    "data": {
      "potmin": 500,
      "potmax": 4000
    },
    "created_at": "2026-06-30"
  }
}

cURL

curl -H "X-API-Key: evc_yo...pan> \
    https://vcuconfig.com/api/public/load/42

Python

import requests

API_KEY = "evc_your_key_here"
config_id = 42
url = f"https://vcuconfig.com/api/public/load/{config_id}"

resp = requests.get(url, headers={"X-API-Key": API_KEY})
if resp.status_code == 200:
    config = resp.json()["config"]
    print(config["data"])
POST /api/health-check

Analyze a params.json config and return a health report. No authentication required for this single endpoint — ideal for quick CI or pre-flight checks.

Request Body

{
  "params": {
    "potmin": 500,
    "potmax": 4000,
    "brknegen": 1000
  },
  "firmware_version": "2.40A"
}

Response 200 OK

{
  "issues": [
    {
      "field": "potmin",
      "severity": "warning",
      "message": "potmin (500) is very low for a Leaf motor"
    }
  ],
  "score": 85,
  "summary": "Minor issues found — review warnings before flashing"
}

cURL

curl -X POST https://vcuconfig.com/api/health-check \
  -H "Content-Type: application/json" \
  -d '{    "params": {    "potmin": 500,    "potmax": 4000    },    "firmware_version": "2.40A" }'

Python

import requests

url = "https://vcuconfig.com/api/health-check"

payload = {
    "params": {"potmin": 500, "potmax": 4000},
    "firmware_version": "2.40A"
}

resp = requests.post(url, json=payload)
report = resp.json()
for issue in report["issues"]:
    print(f"[{issue['severity'].upper()}] {issue['message']}")
GET /api/configs

List saved configs using session authentication (browser cookie). Same as /api/public/configs but authenticated via your login session instead of an API key. Useful for custom integrations that run inside the logged-in browser context.

Response 200 OK

{
  "success": true,
  "configs": [
    { /* same shape as /api/public/configs */
      "id": 42,
      "name": "My Leaf Config",
      "slot_index": 1,
      "description": "2013 Nissan Leaf motor",
      "created_at": "2026-06-30"
    }
  ],
  "max_slots": 10
}

cURL

# Requires a valid session cookie (login first in browser) curl https://vcuconfig.com/api/configs \
  -H "Cookie: session=YOUR_SESSION_COOKIE"