Getting Started
This guide walks you through your first NeutronEDI API call. By the end, you'll have an API key, a working cURL request, and a clean JSON response translated from a real X12 850 Purchase Order — all in under five minutes.
1. Create an account
Head to the NeutronEDI dashboard and sign up with your email. The free Developer plan includes 500 API calls per month — enough to prototype most integrations without entering a credit card.
2. Generate an API key
After signing up, open the API Keys section of the dashboard and click Create key. Give it a descriptive name (like local-dev or staging), then copy the key immediately. It starts with the prefix nedi_ and it's only shown once — we store a SHA-256 hash, not the plaintext, so we can't recover it later.
Treat your API key like a password. Never commit it to source control, never log it, and rotate it immediately if you suspect it's been exposed.
3. Make your first Read request
The Read API accepts raw EDI in the request body and returns structured JSON. Here's an example using cURL with a sample X12 850 Purchase Order:
curl -X POST https://api.neutronedi.com/api/v1/read/x12 \
-H "X-API-Key: nedi_live_..." \
-H "Content-Type: application/edi-x12" \
--data-binary @purchase-order.x12Replace nedi_live_... with the key you generated in step 2, and point @purchase-order.x12 at a local file containing a valid X12 850 interchange. If you don't have one handy, the dashboard has a sample file you can download.
4. Understand the response
The API returns a JSON object describing the interchange envelope and all transactions inside it. A typical response looks like this:
{
"interchange": {
"sender": "NEUTRONEDI",
"receiver": "TRADINGPARTNER",
"date": "2026-04-12",
"control": "000000001"
},
"transactions": [
{
"type": "850",
"name": "Purchase Order",
"poNumber": "PO-48291",
"items": [
{ "sku": "WIDGET-BLUE", "qty": 100, "unitPrice": "12.50" }
],
"total": "1250.00"
}
]
}The top-level interchange object captures the ISA/GS envelope (sender, receiver, control numbers). The transactions array contains each transaction set in the file, with a consistent JSON shape tailored to each transaction type. The same request always produces the same shape — no surprises, no optional fields buried in nested objects.
5. Call from your language of choice
The same request works from any language. Here are the three most common:
Python (requests)
import requests
with open("purchase-order.x12", "rb") as f:
data = f.read()
response = requests.post(
"https://api.neutronedi.com/api/v1/read/x12",
headers={
"X-API-Key": "nedi_live_...",
"Content-Type": "application/edi-x12",
},
data=data,
)
response.raise_for_status()
result = response.json()
print(result["transactions"][0]["poNumber"])Node.js (fetch)
import { readFile } from "node:fs/promises";
const data = await readFile("purchase-order.x12");
const response = await fetch("https://api.neutronedi.com/api/v1/read/x12", {
method: "POST",
headers: {
"X-API-Key": "nedi_live_...",
"Content-Type": "application/edi-x12",
},
body: data,
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const result = await response.json();
console.log(result.transactions[0].poNumber);cURL (copy-paste ready)
curl -X POST https://api.neutronedi.com/api/v1/read/x12 \
-H "X-API-Key: $NEUTRONEDI_API_KEY" \
-H "Content-Type: application/edi-x12" \
--data-binary @purchase-order.x12 | jqNext steps
You've got the basics. From here:
- Explore the full API Reference for Read, Write, and Validate endpoints
- Learn about Authentication best practices and rate limits
- Check out the Product page for side-by-side EDI-to-JSON examples across more transaction types