The locations on sale, the workspace's IP Transit at each, and how it pays
GET/v1/orgs/{org}/transit
API token or dashboard session
The locations on sale, the workspace's IP Transit at each, and how it pays.
Path parameters
orgstringpathrequiredOrganisation slug
Responses
200TransitOverview
Fields of TransitOverview
currencystringrequiredWhat prices are in: the currency of the plans.
locationsTransitLocation[]requiredavailable_ipv4integerrequiredbase_price_centsintegerrequiredThe cheapest month, one IPv4 address included: the cheapest tier's, or the location's own without tiers.
citystring | nullcountrystring | nullISO code:
DE.extra_ip_price_centsintegerrequiredA month, for each IPv4 address beyond the first.
idstringrequiredThe node, to order it with.
ipv6booleanrequiredWhether an IPv6 prefix comes with the order.
max_ipsintegerrequiredIPv4 addresses one subscription may have there, the first included.
max_order_ipv4integerrequiredIPv4 addresses one order can take: the fewer of
max_ipsand what is left.max_subscriptionsintegerrequiredHow many it may have there: each one is its own tunnel, for its own host.
orderedbooleanrequiredThe workspace already has IP Transit there.
port_speed_mbpsintegerrequiredThe machine's port, in Mbit/s.
regionstring | nullThe region key:
de-falkenstein.subscription_countintegerrequiredHow many live subscriptions the workspace has there.
tiersTransitTierOffer[]requiredThe speed tiers on sale, in order; empty when the location sells at its base price only.
enabledbooleanrequiredOn sale: a tier taken off sale stays with those on it.
iduuidrequirednamestringrequired100 Mbit/s,1 Gbit/s.notestringrequiredWhat the operator says of it.
overage_tb_centsintegerrequiredA TB beyond the allowance; 0 when it throttles instead.
price_centsinteger
traffic_tbinteger | nullTraffic included a month without tiers, in TB;
nullfor unmetered.
next_charge_atdate-timerequiredWhen the next month is invoiced, in advance: the first of next month. An order pays until then, prorated.
paymentTransitPaymentrequiredHow the workspace can pay for IP Transit.
balance_centsintegerrequiredThe prepaid balance, which pays first.
cardbooleanrequiredA card on file, charged for what the balance does not cover.
paymentsbooleanrequiredCard payments are set up: without a card on file, Mollie's page.
renewing_planbooleanrequiredA paid plan that renews. IP Transit is paid ahead on invoices of its own, whatever the plan.
subscriptionsTransitSubscription[]requiredavailable_ipv4integerrequiredIPv4 addresses left at the location.
base_price_centsintegerrequiredA month, the first IPv4 address included, at the price of the day its tier was chosen.
bridgestringrequiredThe bridge the VMs go on, in bridge mode.
cancels_atdate-time | nullWhen a suspended subscription ends, its addresses released.
citystring | nullcountrystring | nullendpointstring | null
vat_notestringrequiredWhat invoices say of VAT, when there is something to say: reverse charge, out of scope.
vat_rate_bpintegerrequiredThe VAT invoices add, in hundredths of a percent: 2000 is 20 %.
curl "https://api.infraflow.app/v1/orgs/acme/transit" \ -H "Authorization: Bearer $INFRAFLOW_TOKEN"
{
"currency": "string",
"locations": [
{
"available_ipv4": 1,
"base_price_cents": 1,
"city": "string",
"country": "string",
"extra_ip_price_cents": 1,
"id": "string",
"ipv6": true,
"max_ips": 1,
"max_order_ipv4": 1,
"max_subscriptions": 1,
"ordered": true,
"port_speed_mbps": 1,
"region": "string",
"subscription_count": 1,
"tiers": [
{
"enabled": true,
"id": "0197b2a4-5c1e-7d3a-9f10-4b6c8e2a1d55",
"name": "my-app",
"note": "string",
"overage_tb_cents": 1,
"price_cents": 1,
"speed_mbps": 1,
"throttle_mbps": 1,
"traffic_tb": 1
}
],
"traffic_tb": 1
}
],
"next_charge_at": "2026-01-15T09:30:00Z",
"payment": {
"balance_cents": 1,
"card": true,
"payments": true,
"renewing_plan": true
},
"subscriptions": [
{
"available_ipv4": 1,
"base_price_cents": 1,
"bridge": "string",
"cancels_at": "2026-01-15T09:30:00Z",
"city": "string",
"country": "string",
"endpoint": "string",
"extra_ip_price_cents": 1,
"has_token": true,
"health": {
"broken_since": "2026-01-15T09:30:00Z",
"checked_at": "2026-01-15T09:30:00Z",
"issues": [
{}
],
"state": "ok",
"traffic": "flows"
},
"hosts": [
{
"addresses": [],
"bridge": "string",
"has_token": true,
"id": "0197b2a4-5c1e-7d3a-9f10-4b6c8e2a1d55",
"label": "string",
"last_handshake_at": "2026-01-15T09:30:00Z",
"mode": "string",
"number": 1,
"primary": true,
"public_key": "string",
"status": "waiting_for_setup",
"token_created_at": "2026-01-15T09:30:00Z"
}
],
"id": "0197b2a4-5c1e-7d3a-9f10-4b6c8e2a1d55",
"ips": [
{
"address": "string",
"family": "string",
"id": "0197b2a4-5c1e-7d3a-9f10-4b6c8e2a1d55",
"is_base": true,
"location": "string",
"monthly_price_cents": 1,
"rdns": "string",
"rdns_address": "string",
"rdns_request": {},
"started_at": "2026-01-15T09:30:00Z",
"status": "waiting_for_key",
"subscription_id": "0197b2a4-5c1e-7d3a-9f10-4b6c8e2a1d55",
"tunnel_id": "0197b2a4-5c1e-7d3a-9f10-4b6c8e2a1d55",
"vm": {}
}
],
"label": "string",
"last_handshake_at": "2026-01-15T09:30:00Z",
"location_id": "string",
"max_ips": 1,
"mode": "string",
"monthly_cents": 1,
"number": 1,
"paid_until": "2026-01-15T09:30:00Z",
"payment_status": "pending",
"prepaid": true,
"rate_mbps": 1,
"started_at": "2026-01-15T09:30:00Z",
"status": "waiting_for_setup",
"suspends_at": "2026-01-15T09:30:00Z",
"tier": {
"enabled": true,
"id": "0197b2a4-5c1e-7d3a-9f10-4b6c8e2a1d55",
"name": "my-app",
"note": "string",
"overage_tb_cents": 1,
"price_cents": 1,
"speed_mbps": 1,
"throttle_mbps": 1,
"traffic_tb": 1
},
"token_created_at": "2026-01-15T09:30:00Z",
"traffic": {
"allowance_bytes": 1,
"month": "string",
"overage_cents": 1,
"rx_bytes": 1,
"state": "unmetered",
"tx_bytes": 1,
"used_bytes": 1
},
"tunnel_id": "0197b2a4-5c1e-7d3a-9f10-4b6c8e2a1d55",
"waiting_payment": {
"checkout_url": "string",
"due_cents": 1,
"expires_at": "2026-01-15T09:30:00Z",
"id": "0197b2a4-5c1e-7d3a-9f10-4b6c8e2a1d55",
"kind": "string",
"status": "string"
}
}
],
"vat_note": "string",
"vat_rate_bp": 1
}