This is a catch-all provider — any valid URL under
https://api.epsilon3.io is supported. Any Epsilon3 REST endpoint. Construct URL as https://api.epsilon3.io/v1/{path} (single-run retrieval is on /v2: GET /v2/runs/{runId}). Note the shapes: list endpoints are /summary (GET /v1/procedures/summary, GET /v1/runs/summary), run lifecycle uses POST sub-resources (POST /v1/runs to start, then POST /v1/runs/{runId}/pause, /resume, /end), and search is POST /v1/search with a JSON body. Purchase-order lifecycle: create = POST builds/orders (bulk purchase_orders[] envelope, created_by required, state ignored — always draft), field updates = PATCH builds/orders/{id} (flat vendor_id, ship_to_name, ship_to_address, notes, delivery_date), state = PUT builds/orders/{id}/state ({ order_state }, the only way to change state), lines = POST builds/orders/{id}/order-lines, approvals = POST builds/orders/{id}/approvals. Vendors are list-only (GET builds/vendors; no per-id GET, create, or update documented). Unknown GET paths under api.epsilon3.io return the Epsilon3 web app as an HTML page rather than a JSON 404 — an HTML response means the path is not a real API route. Common roots: procedures/summary, procedures/{id}, runs, runs/summary, runs/{id}/(pause|resume|end|metadata|automation/start), search, issues, telemetry/parameters, commands, dictionaries, dictionary-groups, fields, forms, external-data, skills, settings/locations, testing/(conditions|risks|cases|requirements), builds/(parts|part-details|inventory|work-orders|orders|vendors|tools|shipments|customers|purchase-requests). Rate limit: 15,000 requests per 10-minute window per API key (429 on exceed). See https://docs.epsilon3.io/ for the full reference. The endpoints below are curated examples.Endpoints
List procedure summaries in the workspace
GEThttps://api.epsilon3.io/v1/procedures/summary — Free
- SDK
- cURL
Retrieve a single procedure by id
GEThttps://api.epsilon3.io/v1/procedures/{procedureId} — Free
- SDK
- cURL
List running procedure summaries. Filter with query params, e.g. ?run-state[]=paused&run-state[]=running
GEThttps://api.epsilon3.io/v1/runs/summary — Free
- SDK
- cURL
Retrieve a single run by id (Runs V2 API, /v2 path)
GEThttps://api.epsilon3.io/v2/runs/{runId} — Free
- SDK
- cURL
Start a running procedure. Body requires procedure_id and can optionally pre-populate procedure_variables (values typed per the procedure variable: string | number | boolean). Returns { run_id, run_number }.
POSThttps://api.epsilon3.io/v1/runs — Free
- SDK
- cURL
Pause a running procedure by run id (resume via /resume)
POSThttps://api.epsilon3.io/v1/runs/{runId}/pause — Free
- SDK
- cURL
End a running procedure by run id
POSThttps://api.epsilon3.io/v1/runs/{runId}/end — Free
- SDK
- cURL
Full-text search across workspace resources. Body: { query: string, filters?: { procedures?: string[], runs?: string[] }, include_archived?: boolean }. Optional query params resource_type, from_date, to_date narrow the scope.
POSThttps://api.epsilon3.io/v1/search — Free
- SDK
- cURL
Retrieve a list of issues. Filter with query params, e.g. ?status_types[]=active&run_id={runId}
GEThttps://api.epsilon3.io/v1/issues — Free
- SDK
- cURL
Create an issue. Body requires title and project_id (string | null); optional fields include notes, run_id, severity_id, status_id, assignee, reference_id, reference_type, and details. Returns { id }.
POSThttps://api.epsilon3.io/v1/issues — Free
- SDK
- cURL
Update an existing issue by id
PATCHhttps://api.epsilon3.io/v1/issues/{issueId} — Free
- SDK
- cURL
List all available telemetry parameters
GEThttps://api.epsilon3.io/v1/telemetry/parameters — Free
- SDK
- cURL
Bulk create or update telemetry parameters. See the Telemetry API docs for the request body.
PUThttps://api.epsilon3.io/v1/telemetry/parameters/bulk — Free
- SDK
- cURL
List parts from the builds/inventory catalog. Returns { parts, pagination: { total, next_page_token } }. Filter with partNumber (case-insensitive; repeat it to match several: ?partNumber=A&partNumber=B), or partId, projectId, procurementType, tracking, tag, preferredVendor, assembly. Sort with sort=part_number|created_at and order=asc|desc. Page with ?pageToken=<next_page_token>; limit must be 1000 or fewer (a higher value returns 422).
GEThttps://api.epsilon3.io/v1/builds/parts?partNumber={partNumber} — Free
- SDK
- cURL
Update an existing part by id
PATCHhttps://api.epsilon3.io/v1/builds/parts/{partId} — Free
- SDK
- cURL
Delete a part. The part identifier is supplied in the request body; see the Builds API docs.
DELETEhttps://api.epsilon3.io/v1/builds/parts — Free
- SDK
- cURL
Retrieve all purchase orders in the workspace. Returns { purchase_orders: […] } with id, code (e.g. PO-1), state, vendor, lines, and delivery_date per order.
GEThttps://api.epsilon3.io/v1/builds/orders — Free
- SDK
- cURL
Retrieve a single purchase order by its 22-character id
GEThttps://api.epsilon3.io/v1/builds/orders/{purchaseOrderId} — Free
- SDK
- cURL
Create one or more purchase orders (bulk envelope). Body: { purchase_orders: [{ created_by (required), vendor_id (flat id string, NOT a nested vendor object), ship_to_name, ship_to_address, delivery_date (MM/DD/YYYY), notes, lines: [{ part_revision_id, description, unit_amount, quantity }] }] }. The code (PO-N) and id are system-generated and cannot be supplied. State cannot be set here — new orders are always draft; transition via PUT …/orders/{id}/state.
POSThttps://api.epsilon3.io/v1/builds/orders — Free
- SDK
- cURL
Update fields on an existing purchase order: vendor_id, ship_to_name, ship_to_address, delivery_date (MM/DD/YYYY), sales_tax_basis_points, tax_jurisdiction_id, discount_bp, notes, work_order_id, details, attachments. Pass null to clear a field. State and line items cannot be changed here — use the dedicated state and order-lines endpoints.
PATCHhttps://api.epsilon3.io/v1/builds/orders/{purchaseOrderId} — Free
- SDK
- cURL
Transition a purchase order to a new state — the only endpoint that can change a purchase order’s state. Body: { order_state } with one of draft, submitted, closed, canceled, in_review, partially_received, fully_received.
PUThttps://api.epsilon3.io/v1/builds/orders/{purchaseOrderId}/state — Free
- SDK
- cURL
Add, update, or remove line items on an existing purchase order. Body: { added: [{ part_revision_id, description, unit_amount, quantity }], updated: [{ id, … }], removed: [{ id }] }.
POSThttps://api.epsilon3.io/v1/builds/orders/{purchaseOrderId}/order-lines — Free
- SDK
- cURL
Retrieve all vendors in the workspace. Returns { vendors: […] } with id, name, address, contact, emails, and team_id per vendor. This is the only documented vendor read — there is no per-id vendor GET.
GEThttps://api.epsilon3.io/v1/builds/vendors — Free
- SDK
- cURL
Next Steps
All Providers
Browse all supported AI providers
Forward Proxy
Learn how to construct proxy URLs and authenticate requests