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.x12

Replace 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 | jq

Next 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