Use the same calculation engine as the web calculators for one specific reaction item per request.
https://reactions.coalition.space/api/v1https://reactions.coalition.space/api/v1/openapi.jsonAll endpoints support GET and POST.
/biochemical/[type]/[id]
Allowed types: synth, standard, improved, improved_chain, strong, strong_chain, molecular
Type rules: improved_chain requires an improved blueprint id. strong_chain requires a strong blueprint id.
/composite/[type]/[id]
Allowed types: simple, complex, chain, unrefined, refined, eratic, eratic-repro
Type rules: chain requires a complex blueprint id. refined requires an unrefined blueprint id.
/hybrid/[id]
Allowed types: hybrid
Type rules: No [type] segment in the path for hybrid.
All parameters below are required on every request. This includes values that are only
actively used in certain scenarios (for example costIndex outside wormhole mode).
| Key | Type | Required | Valid values | Notes |
|---|---|---|---|---|
inMarket | string | yes | Any tracked market system (e.g. Jita, Amarr, Perimeter) | Input market system name |
outMarket | string | yes | Any tracked market system | Output market system name |
system | string | yes | Reaction system name (e.g. Ignoitton) | System used for cost index lookup |
input | enum | yes | buy | sell | Input pricing mode |
output | enum | yes | buy | sell | Output pricing mode |
brokers | number | yes | 0 to 10 | Broker fee percentage |
sales | number | yes | 0 to 8 | Sales tax percentage |
skill | enum | yes | 1 | 2 | 3 | 4 | 5 | Reactions skill level |
facility | enum | yes | medium | large | Refinery size |
rigs | enum | yes | 0 | 1 | 2 | Rig tier |
space | enum | yes | nullsec | lowsec | wormhole | Space type |
tax | number | yes | 0 to 100 | Industry tax percentage |
scc | number | yes | 0 to 100 | SCC surcharge percentage |
duration | integer | yes | 1 to 43200 (minutes) | Job duration in minutes |
cycles | integer | yes | 1 to 100000 | Cycle count |
costIndex | number | wormhole only | 0 to 100 | Manual cost index (primarily for wormhole workflows) |
prismaticite | number | yes | 0 to 100 | Prismaticite luck percentage |
indyTax instead of tax and sccTax instead of scc. You can also send includeMeta=false (query or JSON) to return only results.Great for spreadsheets or quick URL-driven integrations.
curl "https://reactions.coalition.space/api/v1/hybrid/30306?inMarket=Jita&outMarket=Jita&system=Ignoitton&input=buy&output=sell&brokers=3&sales=3.6&skill=5&facility=large&rigs=2&space=nullsec&tax=1&scc=4&duration=10080&cycles=50&prismaticite=50"Example shows supported aliases (indyTax, sccTax).
curl -X POST "https://reactions.coalition.space/api/v1/biochemical/improved_chain/28686" \
-H "Content-Type: application/json" \
-d '{
"inMarket": "Jita",
"outMarket": "Jita",
"system": "Ignoitton",
"input": "buy",
"output": "sell",
"brokers": "3",
"sales": "3.6",
"skill": "5",
"facility": "large",
"rigs": "2",
"space": "nullsec",
"indyTax": "1",
"sccTax": "4",
"duration": "10080",
"cycles": "50",
"costIndex": "0",
"prismaticite": "50"
}'curl -X POST "https://reactions.coalition.space/api/v1/composite/refined/57475" \
-H "Content-Type: application/json" \
-d '{
"inMarket": "Jita",
"outMarket": "Jita",
"system": "Ignoitton",
"input": "buy",
"output": "sell",
"brokers": "3",
"sales": "3.6",
"skill": "5",
"facility": "large",
"rigs": "2",
"space": "wormhole",
"tax": "1",
"scc": "4",
"duration": "10080",
"cycles": "50",
"costIndex": "4.5",
"prismaticite": "50"
}'{
"meta": {
"version": "v1",
"calculator": "hybrid",
"type": "hybrid",
"itemId": 30306,
"count": 1,
"timestamp": "2026-02-19T20:15:10.823Z",
"params": {
"inMarket": "Jita",
"outMarket": "Jita",
"system": "Ignoitton",
"input": "buy",
"output": "sell",
"brokers": "3",
"sales": "3.6",
"skill": "5",
"facility": "large",
"rigs": "2",
"space": "nullsec",
"tax": "1",
"scc": "4",
"duration": "10080",
"cycles": "50",
"prismaticite": "50"
}
},
"results": [
{
"name": "Example Reaction",
"profit": 1234567.89,
"profit_per": 14.23
}
]
}{
"error": "Invalid value for space: 'highsec'. Allowed values: nullsec, lowsec, wormhole",
"code": "INVALID_VALUE",
"details": {
"key": "space",
"allowed": ["nullsec", "lowsec", "wormhole"],
"value": "highsec"
}
}curl "https://reactions.coalition.space/api/v1/hybrid/30306?inMarket=Jita&outMarket=Jita&system=Ignoitton&input=buy&output=sell&brokers=3&sales=3.6&skill=5&facility=large&rigs=2&space=nullsec&tax=1&scc=4&duration=10080&cycles=50&prismaticite=50&includeMeta=false"curl "https://reactions.coalition.space/api/v1/openapi.json"200 - Successful calculation400 - Missing/invalid request parameters, invalid type, invalid id/type combination404 - Blueprint id not found in that calculator group413 - Request body exceeds size limit429 - Rate limit exceeded500 - Internal server or unavailable platform bindings/dataEvery non-200 response includes a machine-readable code field.
MISSING_PARAMS, INVALID_JSON, INVALID_BODYINVALID_VALUE, INVALID_NUMBER, INVALID_INTEGER, INVALID_RANGEINVALID_ITEM_ID, INVALID_TYPE, TYPE_ID_MISMATCHBLUEPRINT_NOT_FOUND, ENV_UNAVAILABLE, INTERNAL_ERRORPAYLOAD_TOO_LARGE, RATE_LIMITED16 KB.90 requests / 60 seconds per IP and
endpoint path.