6. API Reference
Authentication
All API requests require a Bearer token. Generate an API key from Settings → API Keys.
GET /api/v1/transactions
Authorization: Bearer sk_live_YOUR_API_KEY
Content-Type: application/jsonREST Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/documents/outbound | Send an outbound EDI document (JSON payload). Returns 202 with a document id. |
| GET | /api/v1/transactions | List your recent transactions (newest first), scoped to your API key. |
| GET | /api/v1/transactions/:id | Get a single transaction you own, with full status. |
| POST | /api/v1/parse | Parse a raw X12 interchange into structured JSON plus diagnostics. |
| POST | /api/v1/validate | Validate a raw X12 interchange against envelope rules; returns diagnostics. |
Trading partners are created in the dashboard (Settings → Trading Partners) or the developer console; pass the resulting partnerId to the API.
Example: list recent failed transactions:
curl -X GET "https://signaledi.com/api/v1/transactions?status=FAILED&limit=50" \
-H "Authorization: Bearer sk_live_YOUR_KEY" \
-H "Content-Type: application/json"Code Samples
Complete request examples in multiple languages. Click the tabs to switch between cURL, Node.js, Python, and PHP.
Rate Limits
| Endpoint Group | Limit | Window |
|---|---|---|
| /api/auth (login) | Class-based | five failures per account; separate per-IP credential and support-request abuse guards |
| /api/agents (autonomous) | Lower autonomous tier | per minute per actor |
| /api/v1/transactions | Up to ~120 req | per minute per API key |
| /api/v1/parse and /api/v1/validate | 120 req | per minute per API key |
| /api/chat (AI assistant) | Up to ~30 req | per minute |
| /api/upload | 30 req per user, 90 req per network | per minute (in addition to the general /api/ budget) |
| All other /api/ routes | 300 req | per minute per actor |
Numbers above are typical ceilings; the actual cap that applies to your request is the lower of the per-endpoint ceiling and your plan-tier ceiling (see Acceptable Use). Rate-limit response headers (when present): X-RateLimit-Remaining and X-RateLimit-Reset (Unix timestamp). On a 429, retry after the time indicated in the response body or Retry-After header.
Webhook Setup
Configure a webhook URL in Settings → Webhooks to receive document lifecycle updates (validation, routing, partner acknowledgements, and errors) without polling.
SignalEDI sends a POST request to your URL with the following JSON payload:
{
"event": "document.validated",
"timestamp": "1710000000",
"data": {
"documentId": "doc_01HXYZ",
"partnerId": "partner_abc",
"documentTypeCode": "850",
"status": "validated"
}
}Webhook events include document.validated, document.routed, document.partner_ack, and document.error. Deliveries also include X-SignalEDI-Timestamp, X-SignalEDI-Event, and X-SignalEDI-Delivery-ID headers.
Verify webhook authenticity by checking the X-SignalEDI-Signature header (HMAC-SHA256 over timestamp + "." + rawBody using your webhook signing secret; reject deliveries whose timestamp skew exceeds ~5 minutes).
Still have questions?
Our support team typically responds within a few hours during business hours.
Contact support