{
  "schemaVersion": "1.0",
  "canonical": "https://superlumin.al/docs/automation",
  "representations": {
    "html": "https://superlumin.al/docs/automation",
    "markdown": "https://superlumin.al/docs/automation.md",
    "json": "https://superlumin.al/docs/automation.json"
  },
  "retrievalHint": "Read page.description and page.relatedArticles first, then page.body. page.images lists every documentation screenshot with alt text, dimensions, captions, and annotations.",
  "page": {
    "path": "/docs/automation",
    "title": "Automation and public API",
    "description": "Use Superluminal's experimental public API and agent skills with explicit safeguards around billable render submission.",
    "navTitle": "Automation (experimental)",
    "section": "Reference",
    "sectionOrder": 50,
    "order": 2,
    "hidden": false,
    "keywords": [
      "Superluminal API",
      "automation",
      "agent skills",
      "Blender MCP"
    ],
    "updated": "2026-08-04",
    "body": "### Experimental\n\nThe public API and published automation skills can change. Keep a tested version of your workflow, inspect current schemas, and start in a non-critical project with a minimal render.\n\nSuperluminal publishes experimental automation guidance in the [sulu-skills repository](https://github.com/Superluminal-Studios/sulu-skills). It covers API, render, storage, production, and Market skills. For Blender-native submission, it recommends Blender MCP plus the Superluminal add-on.\n\n## Choose the right path\n\n### Blender add-on\n\nThe best path when an artist submits a scene. It integrates dependency tracing, add-on packing, upload modes, version choice, the progress terminal, project jobs, and output download.\n\n### Experimental API\n\nFor automated systems where you own the full lifecycle: authentication, schema validation, project and organization resolution, file preparation, retries, monitoring, budget controls, and output handling.\n\n## Safety for render submission\n\nCreating a render job costs money, and a retry of the same create request can create a second job. An automated workflow must:\n\n1. Generate a client-side operation ID and save it before the request.\n2. Record the organization, project, input, frame range, settings, and expected maximum spend.\n3. Treat a timeout as an unknown result. Search for the job and reconcile before any retry.\n4. Require explicit confirmation for each new billable submission.\n5. Cap concurrency and monitor the live organization balance.\n6. Log response identifiers. Never log tokens or signed URLs.\n7. Verify one representative output before scaling up the range.\n\n## Authentication hygiene\n\n- Store API credentials in a secret manager or ignored local credential store.\n- Never put a token in source, MDX, a screenshot, a command transcript, or a support message.\n- Scope credentials and organizations as narrowly as the current API supports.\n- If a credential was possibly exposed, rotate it.\n- Redact credential-bearing URLs and request headers from observability.\n\n## Version and schema discipline\n\nRead the current repository instructions and live schemas before you implement. Validate both success and error responses. Fail closed on unknown destructive or billable fields. Add contract tests for the exact API version your workflow expects.\n\n- [sulu-skills](https://github.com/Superluminal-Studios/sulu-skills): Read the current experimental workflows and safety notes at the source.\n- [Blender submission](/docs/blender-addon/job-submission): Use the integrated production path when a scene starts in Blender.\n- [Product availability](/docs/availability): Check what is shipped, experimental, or still a preview.",
    "images": [],
    "machineReadable": {
      "markdown": "/docs/automation.md",
      "json": "/docs/automation.json"
    },
    "internalLinks": [
      "/docs/blender-addon/job-submission",
      "/docs/availability"
    ],
    "readingTime": "2 min read",
    "toc": [
      {
        "id": "experimental",
        "title": "Experimental",
        "level": 3
      },
      {
        "id": "choose-the-right-path",
        "title": "Choose the right path",
        "level": 2
      },
      {
        "id": "blender-add-on",
        "title": "Blender add-on",
        "level": 3
      },
      {
        "id": "experimental-api",
        "title": "Experimental API",
        "level": 3
      },
      {
        "id": "safety-for-render-submission",
        "title": "Safety for render submission",
        "level": 2
      },
      {
        "id": "authentication-hygiene",
        "title": "Authentication hygiene",
        "level": 2
      },
      {
        "id": "version-and-schema-discipline",
        "title": "Version and schema discipline",
        "level": 2
      }
    ],
    "wordCount": 374,
    "relatedArticles": [
      {
        "path": "/blender-render-farm",
        "title": "Blender render farm",
        "description": "A Blender render farm assigns animation frames to many computers. Learn how nodes share work, what each node needs, and why submission starts inside Blender."
      },
      {
        "path": "/how-superluminal-is-so-fast",
        "title": "How Superluminal is so fast",
        "description": "Benchmark results show how Superluminal removes delays through its Persistence Engine, concurrent output work, streaming delivery, and farm scheduler."
      }
    ]
  }
}
