OmniTechs / WorkspaceNederlands

Automate through the API

The same operations as your workspace, with explicit permissions and account boundaries.

Access

Sign in to the workspace and create a token under ‘API & tokens’. Keep the secret in your own system. Send it as a Bearer header. You can revoke it immediately; choose an expiry of up to 365 days.

Authorization: Bearer <YOUR_TOKEN>
Content-Type: application/json

Read and write scopes are separate for prints, links, websites and generation. Tokens cannot create more tokens. Publish Smart Links through your browser session after reviewing the preview. A token for one Smart Link can only edit that draft.

Calculate and request a print

  1. Upload the file without an account. Keep the ID and private file token from the response.
  2. Send your choices with x-estimate-token. Then poll until a price or manual-review result is available.
  3. Save a request using prints:write: address, file ID/token, note and optional picture IDs. Upload pictures with POST /images first.
curl https://omnitechs.nl/api/v1/calculator \
  -F "[email protected]"

curl https://omnitechs.nl/api/v1/calculator/<FILE_ID> \
  -H "x-estimate-token: <FILE_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"unit":"mm","scalePercent":100,"materialId":"pla","colourId":"unsure","qualityId":"standard","useId":"functional","quantity":1,"customerTypeId":"private"}'

STL/3MF: up to 40 MiB. An estimate is not an accepted quote or print order. Submitted files: up to 90 days; other uploads: 7 days. Addresses currently support the Netherlands.

Generation and retries

Use generation:write to start a base generation. Balance is reserved; a failed provider task is refunded. Use one idempotency-key per attempt and reuse it after a network failure. Keep the body unchanged for that key. Each account can have up to three active tasks.

curl https://omnitechs.nl/api/v1/generation \
  -H "Authorization: Bearer <YOUR_TOKEN>" \
  -H "idempotency-key: <OPAQUE_ATTEMPT_ID>" \
  -H "Content-Type: application/json" \
  -d '{"kind":"text","prompt":"A simple low-poly planter","imageIds":[]}'

Check /capabilities for availability. Results are retained locally before a task becomes ‘SUCCEEDED’. Download them with generation:read. Image generation accepts your own JPEG/PNG upload IDs; external image URLs are refused.

Smart Link MCP

Create a Smart Link in the workspace and issue a token for that link. Connect your AI to /api/v1/mcp using Streamable HTTP and a Bearer header. Tools: get_smart_link and update_smart_link. Send the current revision when editing. A conflict does not overwrite changes; reload the draft.

MCP supports protocol 2025-11-25, 2025-06-18 and 2025-03-26. The client must accept both application/json and text/event-stream. There is no OAuth sign-in flow; choose a client that supports custom Bearer headers.

Websites

/websites saves your project goal and platform choice: wordpress, nextjs or advise. Provisioning and publishing are not available yet; a saved draft is not a live website.

Endpoint reference

OpenAPI JSON

Errors and limits

401: sign in or replace an invalid token. 403: check scopes and browser origin. 409: reload the revision or check the earlier generation attempt. 429: wait or reduce usage. 503: dependency unavailable. Keep x-request-id for support; never include your token in logs or URLs.

Workspace: 30 requests per minute per IP and 90 per account. Calculator per IP: 20 uploads and 60 calculations per hour, 90 status requests per minute. Up to 50 records per type and 20 active API tokens. Requests and downloads are private and are not publicly cached.