Fieldnode API
A REST API over the Fieldnode digital manufacturing platform: parts and their files, requests for quote, offers, factories and the reference data they are all described in terms of.
The same read model is also published as an MCP server, so an AI agent can query the platform directly without anyone writing a client.
Base URLs
| Environment | Base URL |
|---|---|
| Production | https://api.fieldnode.app |
| Sandbox | https://api.sandbox.fieldnode.dev |
| Lab | https://api.lab.fieldnode.dev |
Every path is versioned under /v1, and every request needs a token — see
Authentication.
curl https://api.fieldnode.app/v1/parts \
-H "Authorization: Bearer $FIELDNODE_TOKEN"
Conventions
- JSON only. Requests that carry a body send
Content-Type: application/json; every response is JSON. - Ids are UUIDs, except for reference data — materials, processes, standards — which is keyed
by a human-readable code such as
1.01.04. - Optional fields are omitted, not null. A field absent from a response has no value; you will
not receive
nullin its place. - Collections are paginated and most take a
view. Both are described in Errors and pagination. - Uploading a file is a three-step signed-URL flow — see Uploading files.
The OpenAPI spec, and generated clients
The machine-readable contract is at /openapi.json — OpenAPI 3.1. The
API reference renders it, and any OpenAPI-compatible generator will produce a
typed client from it:
- TypeScript — openapi-typescript or @hey-api/openapi-ts
- Go — oapi-codegen
- Java, Python, C#, Ruby and more — openapi-generator
There are no Fieldnode-published SDKs. Generate the client that fits your stack.
The spec is also the most useful thing to hand an AI coding assistant: it carries every endpoint, parameter, response model and error code, fully typed. Telling the assistant to use only endpoints and fields that appear in this spec measurably reduces invented routes. For an agent that can call the API itself rather than write code against it, use the MCP endpoint instead.
Where to start
If you have a name and need an id, start at GET /v1/parts or GET /v1/factories — both take a
free-text search. If you have an id already, the {id} endpoints and the :batch-get endpoints
are the direct route.
The full endpoint list, with every parameter and response field, is in the API reference.