Documentation Index
Fetch the complete documentation index at: https://docs.firstresonance.io/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This is the progressive-disclosure entry point to the ION API: twenty queries and mutations that cover the vast majority of integration patterns we see in production. Each one is on its own page with the query, variables, sample response, and notes about gotchas.
If you’re brand new to the API, start at Getting Started. If you know what you want to do but don’t know what query to write, start here.
How to use these
- Open the API Playground in another tab.
- Pick a query below, copy the query body, paste into the playground.
- Set variables in the variables panel.
- Hit run.
Once a query works in the playground, copy it into your client code (see Python Quickstart for the canonical pattern).
Build Hardware
Catalog, procedures, BOMs, runs, and step execution — everything that goes into building a piece of hardware.
| # | Use case | Page |
|---|
| 1 | Search parts by part number or description | Search Parts |
| 2 | Create a part | Create a Part |
| 3 | Get a procedure with all steps | Get a Procedure with All Steps |
| 4 | Get an aBOM with full hierarchy | Get an aBOM with Full Hierarchy |
| 5 | Compare two aBOM versions | Compare Two aBOM Versions |
| 6 | List open runs with current step | List Open Runs with Current Step |
| 7 | Get run history for a part inventory | Run History for a Part |
| 8 | Create a run from a procedure | Create a Run from a Procedure |
| 9 | Submit a run step result with measurements | Submit a Run Step Result |
| 10 | Start or complete a run | Start or Complete a Run |
Manage Supply Chain
Inventory state, purchase orders, receiving, and inventory adjustments.
| # | Use case | Page |
|---|
| 11 | List inventory for a part by location | Inventory for a Part by Location |
| 12 | Get serialized units for a part with state | Serialized Units for a Part |
| 13 | Create a purchase order | Create a Purchase Order |
| 14 | Receive inventory against a PO | Receive Inventory Against a PO |
| 15 | Adjust inventory (scrap, transfer, recount) | Adjust Inventory |
Track Quality
Issues and their lifecycle through disposition and resolution.
| # | Use case | Page |
|---|
| 16 | List open Issues by disposition | List Open Issues by Disposition |
| 17 | Create an Issue linked to a run step | Create an Issue Linked to a Run |
| 18 | Close an Issue with a resolution | Close an Issue with a Resolution |
Admin & User
| # | Use case | Page |
|---|
| 19 | Get current user & org | Get Current User & Org |
Tips
- Always select fields explicitly. GraphQL returns nothing you didn’t ask for. See GraphQL Field Selection.
- Pass
_etag on every update mutation. Optimistic concurrency requires it. See Error Codes → 409.
- Use Sandbox for prototyping mutations. All the mutation examples in these pages are real and run against your live tenant otherwise.
- Verify your token first. Run query 19 (current user) before anything else when wiring up a new client.