Developer Resources

FlamingoProxies API

Integrate Flamingo's high-performance proxy network directly into your software. Automate user management, check data usage, and generate proxies programmatically.

Authentication

All API requests must be authenticated using your unique API Key. You can find your key in the Dashboard Settings.

Pass the key in the X-Api-Key header of every request.

curl -X GET https://api.flamingoproxies.com/v1/plans \
  -H "X-Api-Key: YOUR_API_KEY_HERE"
import requests

url = "https://api.flamingoproxies.com/v1/plans"
headers = {
    "X-Api-Key": "YOUR_API_KEY_HERE"
}

response = requests.get(url, headers=headers)
print(response.json())
const axios = require('axios');

axios.get('https://api.flamingoproxies.com/v1/plans', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY_HERE'
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});

Base URL

All endpoints are relative to:

https://api.flamingoproxies.com/v1

Account Overview

GET /v1/account

One call for everything: all residential plans (Entry, Standard, Sneakers, Ticket, Deluxe, Enterprise) and Mobile with their data balance and auto top-up, your low-balance alert, a summary of your ISP orders per country, and your servers. Proxy credentials are only returned by Get Plan Details.

Request Example

curl -X GET "https://api.flamingoproxies.com/v1/account" \
  -H "X-Api-Key: YOUR_API_KEY_HERE"
import requests

response = requests.get(
    "https://api.flamingoproxies.com/v1/account",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"}
)
print(response.json())
const axios = require('axios');

axios.get('https://api.flamingoproxies.com/v1/account', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

Response Example

{
  "success": true,
  "account": {
    "user_id": "discord_123456789",
    "email": "you@example.com",
    "plans": [
      {
        "slug": "standard",
        "plan_id": 2,
        "name": "Standard",
        "type": "residential",
        "is_active": true,
        "capabilities": {
          "state": true,
          "city": true
        },
        "usage": {
          "available_gb": 4.5,
          "used_gb": 5.5,
          "total_gb": 10.0
        },
        "auto_topup": {
          "enabled": true,
          "threshold_gb": 0.5,
          "topup_gb": 5.0
        }
      },
      {
        "slug": "mobile",
        "plan_id": 7,
        "name": "Mobile",
        "type": "mobile",
        "is_active": true,
        "capabilities": {
          "state": true,
          "city": true
        },
        "usage": {
          "available_gb": 2.5,
          "used_gb": 7.5,
          "total_gb": 10.0
        },
        "auto_topup": {
          "enabled": false,
          "threshold_gb": 0.0,
          "topup_gb": 0.0
        }
      }
    ],
    "low_balance_alert": {
      "enabled": true,
      "threshold_gb": 0.5
    },
    "isp": {
      "active_orders": 2,
      "proxies": 60,
      "auto_renewal_orders": 1,
      "next_expiry": "2026-11-04T11:44:35Z",
      "countries": [
        {
          "country_code": "DE",
          "country": "Germany",
          "orders": 1,
          "proxies": 50
        },
        {
          "country_code": "US",
          "country": "United States",
          "orders": 1,
          "proxies": 10
        }
      ]
    },
    "servers": {
      "count": 1
    }
  }
}

plans always lists all seven plans (shortened above); is_active shows which ones you have. isp.countries counts your active ISP orders and proxies per country.

Get Plans

GET /v1/plans

All seven plans, six residential plus Mobile, with whether they're active on your account and which targeting they support. Add include_usage=true to get every plan's data balance and auto top-up in the same call. Use the slug for the other endpoints (see Plans).

Request Example

curl -X GET "https://api.flamingoproxies.com/v1/plans?include_usage=true" \
  -H "X-Api-Key: YOUR_API_KEY_HERE"
import requests

response = requests.get(
    "https://api.flamingoproxies.com/v1/plans",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"},
    params={"include_usage": "true"}
)
print(response.json())
const axios = require('axios');

axios.get('https://api.flamingoproxies.com/v1/plans', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' },
  params: { include_usage: 'true' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

Query Parameters

ParameterTypeDescription
include_usage Boolean true adds usage and auto_topup to every plan. Balances are read live, so the call takes a moment longer.

Response Example

{
  "success": true,
  "plans": [
    {
      "slug": "entry",
      "plan_id": 1,
      "name": "Entry",
      "type": "residential",
      "is_active": false,
      "capabilities": {
        "state": false,
        "city": false
      },
      "usage": null,
      "auto_topup": {
        "enabled": false,
        "threshold_gb": 0.0,
        "topup_gb": 0.0
      }
    },
    {
      "slug": "standard",
      "plan_id": 2,
      "name": "Standard",
      "type": "residential",
      "is_active": true,
      "capabilities": {
        "state": true,
        "city": true
      },
      "usage": {
        "available_gb": 4.5,
        "used_gb": 5.5,
        "total_gb": 10.0
      },
      "auto_topup": {
        "enabled": true,
        "threshold_gb": 0.5,
        "topup_gb": 5.0
      }
    },
    {
      "slug": "mobile",
      "plan_id": 7,
      "name": "Mobile",
      "type": "mobile",
      "is_active": true,
      "capabilities": {
        "state": true,
        "city": true
      },
      "usage": {
        "available_gb": 2.5,
        "used_gb": 7.5,
        "total_gb": 10.0
      },
      "auto_topup": {
        "enabled": false,
        "threshold_gb": 0.0,
        "topup_gb": 0.0
      }
    }
  ]
}

Response Fields

FieldTypeDescription
is_active Boolean Whether you have this plan.
capabilities Object state / city: which sub-country targeting the plan supports.
usage Object Data balance in GB: available_gb (left), used_gb and total_gb (all data bought for the plan). null for inactive plans.
auto_topup Object Your auto top-up setting: enabled, threshold_gb (top up when the balance drops below) and topup_gb (amount added).
usage_error String Only present when the balance can't be read right now; usage is then null.

Without include_usage each plan has only slug, plan_id, name, type, is_active and capabilities. The example shows 3 of the 7 plans.

Get Plan Details

GET /v1/plans/{slug}

Status, data balance, auto top-up and proxy credentials of one residential or mobile plan, e.g. standard, ticket or mobile.

Request Example

curl -X GET "https://api.flamingoproxies.com/v1/plans/standard" \
  -H "X-Api-Key: YOUR_API_KEY_HERE"
import requests

response = requests.get(
    "https://api.flamingoproxies.com/v1/plans/standard",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"}
)
print(response.json())
const axios = require('axios');

axios.get('https://api.flamingoproxies.com/v1/plans/standard', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

Path Parameters

ParameterTypeDescription
slug Required String Plan slug: entry, standard, sneakers, ticket, deluxe, enterprise or mobile.

Response Example

{
  "success": true,
  "plan": {
    "slug": "standard",
    "plan_id": 2,
    "name": "Standard",
    "type": "residential",
    "is_active": true,
    "capabilities": {
      "state": true,
      "city": true
    },
    "usage": {
      "available_gb": 4.5,
      "used_gb": 5.5,
      "total_gb": 10.0
    },
    "auto_topup": {
      "enabled": true,
      "threshold_gb": 0.5,
      "topup_gb": 5.0
    },
    "credentials": {
      "username": "your-proxy-username",
      "password": "your-proxy-password"
    }
  }
}

Inactive plans return is_active: false with usage and credentials set to null. If a balance can't be read at the moment, usage is null and usage_error explains why. Keep your credentials private.

Get Usage

GET /v1/usage

The data balance in GB of every active plan, residential and mobile, keyed by plan slug. A plan whose balance can't be read at the moment is listed in unavailable instead of being reported as 0 GB.

Request Example

curl -X GET "https://api.flamingoproxies.com/v1/usage" \
  -H "X-Api-Key: YOUR_API_KEY_HERE"
import requests

response = requests.get(
    "https://api.flamingoproxies.com/v1/usage",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"}
)
print(response.json())
const axios = require('axios');

axios.get('https://api.flamingoproxies.com/v1/usage', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

Response Example

{
  "success": true,
  "usage": {
    "standard": {
      "plan_id": 2,
      "plan_name": "Standard",
      "type": "residential",
      "available_gb": 4.5,
      "used_gb": 5.5,
      "total_gb": 10.0
    },
    "ticket": {
      "plan_id": 4,
      "plan_name": "Ticket",
      "type": "residential",
      "available_gb": 1.2,
      "used_gb": 3.8,
      "total_gb": 5.0
    },
    "mobile": {
      "plan_id": 7,
      "plan_name": "Mobile",
      "type": "mobile",
      "available_gb": 2.5,
      "used_gb": 7.5,
      "total_gb": 10.0
    }
  },
  "unavailable": []
}

Response Fields

FieldTypeDescription
available_gb Number Data left on the plan.
used_gb Number Data used so far.
total_gb Number All data bought for the plan.
unavailable Array Slugs of active plans whose balance couldn't be read right now. Retry shortly.

Get Locations

GET /v1/locations

Fetch supported countries, regions, cities, or ISPs for a specific plan type.

Query Parameters

ParameterDescription
plan Required Plan slug (e.g., entry, mobile).
type Optional Data to fetch: countries (default), states (residential sub-country regions), cities, regions, or isps (mobile only).
country Country code (e.g., us). Required when fetching states, cities, regions, or ISPs.
state State code (residential). Optional filter when fetching cities — narrows the list to that state. Discover valid values via type=states.
region Region name (mobile). Required when fetching cities for mobile plans; also accepted as an alias of state for residential cities.

Example Request

curl -X GET "https://api.flamingoproxies.com/v1/locations?plan=entry&country=us" \
  -H "X-Api-Key: YOUR_API_KEY_HERE"
import requests

params = {
    "plan": "entry",
    "country": "us",
    "type": "cities"
}
response = requests.get(
    "https://api.flamingoproxies.com/v1/locations",
    params=params,
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"}
)
print(response.json())
const axios = require('axios');

axios.get('https://api.flamingoproxies.com/v1/locations', {
  params: { plan: 'entry', country: 'us' },
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

Response Example

{
  "success": true,
  "data": [
    {
      "code": "de",
      "name": "Germany"
    },
    {
      "code": "us",
      "name": "United States"
    }
  ]
}

Residential plans return {code, name} pairs for countries, states and cities; use the code in Generate Proxies. Mobile returns the live country, region, city and ISP lists.

Generate Proxies

POST /v1/generate-proxies

Creates ready-to-use proxies for any residential plan or Mobile, with country, state / city targeting and sticky or rotating sessions. Proxies are returned as host:port:user:pass.

Request Example

curl -X POST https://api.flamingoproxies.com/v1/generate-proxies \
  -H "X-Api-Key: YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"plan": "standard", "proxy_amount": 10, "country": "us", "proxy_type": "sticky", "ttl": 30}'
import requests

response = requests.post(
    "https://api.flamingoproxies.com/v1/generate-proxies",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"},
    json={
        "plan": "standard",
        "proxy_amount": 10,
        "country": "us",
        "proxy_type": "sticky",
        "ttl": 30
    }
)
print(response.json())
const axios = require('axios');

const data = {
  "plan": "standard",
  "proxy_amount": 10,
  "country": "us",
  "proxy_type": "sticky",
  "ttl": 30
};

axios.post('https://api.flamingoproxies.com/v1/generate-proxies', data, {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

JSON Body Parameters

ParameterTypeDescription
plan Required String Plan slug: entry, standard, sneakers, ticket, deluxe, enterprise or mobile.
proxy_amount Required Integer Number of proxies to generate, 1 to 50,000.
country String Country code, e.g. us or de (see Get Locations). Mobile: leave out or send all for any country.
proxy_type String sticky keeps the same IP for ttl minutes, rotating gives a new IP per request. Default: sticky for residential plans, rotating for Mobile.
ttl Integer Sticky session length in minutes. Default 30.
state String State for sub-country targeting (standard; for mobile it is used as the region). Values via GET /v1/locations?type=states&country=us.
city String City code (standard and mobile). Can be combined with state or sent alone. Values via GET /v1/locations?type=cities&country=us&state=california.
region String Mobile only: region from GET /v1/locations?plan=mobile&type=regions&country=us.
rotation String Mobile only: random (rotating) or sticky. Overrides proxy_type.

Note: State/city targeting is only honoured by plans that support it (standard and mobile). For other plans these fields are ignored, and the response includes a warnings array explaining what was dropped. Invalid state/city values return 400 with the list of valid options.

Response Example

{
  "success": true,
  "count": 2,
  "proxies": [
    "standard.flamingoproxies.com:12321:your-username:your-password_country-us_session-AbCdEfGhIjKl_lifetime-30",
    "standard.flamingoproxies.com:12321:your-username:your-password_country-us_session-MnOpQrStUvWx_lifetime-30"
  ]
}

Check a Plan

POST /v1/plans/{slug}/check

Tests a residential or mobile plan end to end: generates a few fresh proxies with your targeting and sends one request through each. You get alive or dead, the latency and the exit IP per proxy, which is handy for monitoring or before a big run.

Request Example

curl -X POST https://api.flamingoproxies.com/v1/plans/standard/check \
  -H "X-Api-Key: YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"country": "us", "amount": 3}'
import requests

response = requests.post(
    "https://api.flamingoproxies.com/v1/plans/standard/check",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"},
    json={
        "country": "us",
        "amount": 3
    }
)
print(response.json())
const axios = require('axios');

const data = {
  "country": "us",
  "amount": 3
};

axios.post('https://api.flamingoproxies.com/v1/plans/standard/check', data, {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

Path Parameters

ParameterTypeDescription
slug Required String Plan slug: entry, standard, sneakers, ticket, deluxe, enterprise or mobile.

JSON Body Parameters

ParameterTypeDescription
country String Country code. Default us. Mobile: all for any country.
state String State (standard) or region (mobile), as in Generate Proxies.
city String City code (standard and mobile).
proxy_type String sticky (default) or rotating.
ttl Integer Sticky session length in minutes. Default 30.
amount Integer Number of proxies to test, 1 to 10. Default 3.
timeout Number Seconds to wait per proxy, 2 to 15. Default 8.

Response Example

{
  "success": true,
  "plan": "standard",
  "country": "us",
  "proxy_type": "sticky",
  "checked": 3,
  "alive": 3,
  "dead": 0,
  "results": [
    {
      "proxy": "standard.flamingoproxies.com:12321:your-username:your-password_country-us_session-AbCdEfGhIjKl_lifetime-30",
      "alive": true,
      "latency_ms": 812,
      "exit_ip": "203.0.113.25",
      "error": null
    },
    {
      "proxy": "standard.flamingoproxies.com:12321:your-username:your-password_country-us_session-MnOpQrStUvWx_lifetime-30",
      "alive": true,
      "latency_ms": 655,
      "exit_ip": "198.51.100.7",
      "error": null
    },
    {
      "proxy": "standard.flamingoproxies.com:12321:your-username:your-password_country-us_session-QrStUvWxYzAb_lifetime-30",
      "alive": true,
      "latency_ms": 930,
      "exit_ip": "192.0.2.44",
      "error": null
    }
  ]
}

Each test uses a few kilobytes of the plan's data. A plan without balance returns 400 Insufficient balance; a plan you don't have returns 400. See Limits for how often you can check.

Check Proxies

POST /v1/proxies/check

Live check of proxies you already have: residential and mobile proxies from Generate Proxies and the proxies of your active ISP orders, up to 100 per request. Each proxy sends one request; you get alive or dead, the latency and the exit IP.

Request Example

curl -X POST https://api.flamingoproxies.com/v1/proxies/check \
  -H "X-Api-Key: YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"proxies": ["standard.flamingoproxies.com:12321:your-username:your-password_country-us_session-AbCdEfGhIjKl_lifetime-30", "203.0.113.10:8000:user:pass"], "timeout": 6}'
import requests

response = requests.post(
    "https://api.flamingoproxies.com/v1/proxies/check",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"},
    json={
        "proxies": [
            "standard.flamingoproxies.com:12321:your-username:your-password_country-us_session-AbCdEfGhIjKl_lifetime-30",
            "203.0.113.10:8000:user:pass"
        ],
        "timeout": 6
    }
)
print(response.json())
const axios = require('axios');

const data = {
  "proxies": [
    "standard.flamingoproxies.com:12321:your-username:your-password_country-us_session-AbCdEfGhIjKl_lifetime-30",
    "203.0.113.10:8000:user:pass"
  ],
  "timeout": 6
};

axios.post('https://api.flamingoproxies.com/v1/proxies/check', data, {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

JSON Body Parameters

ParameterTypeDescription
proxies Required Array or String Up to 100 proxies as a list, or as text with one proxy per line. Formats: ip:port:user:pass, user:pass@ip:port or http://user:pass@ip:port.
timeout Number Seconds to wait per proxy, 2 to 10. Default 6.

Response Example

{
  "success": true,
  "checked": 2,
  "alive": 2,
  "dead": 0,
  "skipped": 1,
  "results": [
    {
      "proxy": "standard.flamingoproxies.com:12321:your-username:your-password_country-us_session-AbCdEfGhIjKl_lifetime-30",
      "type": "residential",
      "alive": true,
      "latency_ms": 640,
      "exit_ip": "198.51.100.7",
      "error": null
    },
    {
      "proxy": "203.0.113.10:8000:user:pass",
      "type": "isp",
      "alive": true,
      "latency_ms": 95,
      "exit_ip": "203.0.113.10",
      "error": null
    },
    {
      "proxy": "192.0.2.50:3128:user:pass",
      "type": null,
      "alive": false,
      "latency_ms": null,
      "exit_ip": null,
      "error": "not a proxy of your account"
    }
  ]
}

Results keep the order you sent. type is residential, mobile or isp. Only FlamingoProxies proxies of your account are tested; anything else is skipped and counted in skipped. For a whole ISP order use Check ISP Proxies.

ISP Products

GET /v1/isp/products

The ISP proxies you can order: country, region, type (Premium / Retail), duration, price per IP in EUR and quantity limits.

Request Example

curl -X GET "https://api.flamingoproxies.com/v1/isp/products?country=DE" \
  -H "X-Api-Key: YOUR_API_KEY_HERE"
import requests

response = requests.get(
    "https://api.flamingoproxies.com/v1/isp/products",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"},
    params={"country": "DE"}
)
print(response.json())
const axios = require('axios');

axios.get('https://api.flamingoproxies.com/v1/isp/products', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' },
  params: { country: 'DE' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

Query Parameters

ParameterTypeDescription
country String Only this country: ISO code such as DE or a name such as Germany (see ISP Countries).
region String Only this region, e.g. Germany or Ashburn.
type String premium or retail.

Response Example

{
  "success": true,
  "count": 1,
  "products": [
    {
      "product_id": 13,
      "name": "DE PREMIUM ISP (monthly)",
      "country_code": "DE",
      "country": "Germany",
      "region": "Germany",
      "type": "Premium",
      "duration": "Monthly",
      "valid_days": 30,
      "unit_price_eur": 1.7,
      "min_quantity": 10,
      "max_quantity": 1000,
      "quantity_pricing": {
        "monthly": null,
        "daily": null
      }
    }
  ]
}

unit_price_eur is the price per IP for the whole duration, before VAT. Filters ignore upper and lower case.

ISP Orders

GET /v1/isp/orders

Your ISP orders with country code, list amount, status, expiry, auto-renewal and price. Add include_proxies=true to get the proxies of every order in the same call.

Request Example

curl -X GET "https://api.flamingoproxies.com/v1/isp/orders?include_proxies=true&format=user:pass@ip:port" \
  -H "X-Api-Key: YOUR_API_KEY_HERE"
import requests

response = requests.get(
    "https://api.flamingoproxies.com/v1/isp/orders",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"},
    params={"include_proxies": "true", "format": "user:pass@ip:port"}
)
print(response.json())
const axios = require('axios');

axios.get('https://api.flamingoproxies.com/v1/isp/orders', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' },
  params: { include_proxies: 'true', format: 'user:pass@ip:port' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

Query Parameters

ParameterTypeDescription
status String active (default) or all to include expired orders.
country String Only orders of this country: ISO code such as US or a name.
include_proxies Boolean true adds a proxies array to every order.
format String Proxy format: ip:port:user:pass (default), user:pass@ip:port or http (http://user:pass@ip:port).

Response Example

{
  "success": true,
  "count": 1,
  "orders": [
    {
      "order_id": 6244,
      "product_id": 13,
      "product": "DE PREMIUM ISP (monthly)",
      "country_code": "DE",
      "country": "Germany",
      "region": "Germany",
      "type": "Premium",
      "duration": "Monthly",
      "quantity": 2,
      "proxy_count": 2,
      "status": "active",
      "order_date": "2026-10-05T11:44:35Z",
      "valid_to": "2026-11-04T11:44:35Z",
      "expires_in_days": 15,
      "auto_renewal": true,
      "auto_renewal_available": true,
      "replace_ips_available": true,
      "purchase_price": {
        "currency": "EUR",
        "net": 3.4,
        "vat": 0.65,
        "gross": 4.05,
        "vat_rate": 19.0
      },
      "proxies": [
        "user:pass@203.0.113.10:8000",
        "user:pass@203.0.113.11:8000"
      ]
    }
  ]
}

Response Fields

FieldTypeDescription
order_id Integer Order number, as shown in your dashboard.
country_code String ISO 3166-1 alpha-2 code of the proxies' country, e.g. DE or US.
country String Country name.
region String Location as sold: a country or a city such as Ashburn (US).
type / duration String Premium or Retail; Daily, Monthly or Quarterly.
quantity Integer Number of IPs ordered.
proxy_count Integer List amount: number of proxies in the order's list right now.
status String active, expired or inactive.
order_date / valid_to String UTC timestamps (ISO 8601). valid_to is when the order ends unless it renews.
expires_in_days Integer Full days left; 0 once expired.
auto_renewal Boolean Whether the order renews automatically before valid_to.
auto_renewal_available Boolean Whether auto-renewal can be switched on for this order in the dashboard (not for daily orders).
replace_ips_available Boolean Whether the one-time Replace IPs is still available.
purchase_price Object What you paid when ordering, in EUR: net, vat, gross and vat_rate (%). null if no price is recorded.
proxies Array The proxy list. Only with include_proxies=true; always included in ISP Order Details.

ISP Order Details

GET /v1/isp/orders/{order_id}

One ISP order including its proxies, with the same fields as ISP Orders. Works for expired orders too; check status.

Request Example

curl -X GET "https://api.flamingoproxies.com/v1/isp/orders/6244" \
  -H "X-Api-Key: YOUR_API_KEY_HERE"
import requests

response = requests.get(
    "https://api.flamingoproxies.com/v1/isp/orders/6244",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"}
)
print(response.json())
const axios = require('axios');

axios.get('https://api.flamingoproxies.com/v1/isp/orders/6244', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

Path Parameters

ParameterTypeDescription
order_id Required Integer The order number shown in your dashboard.

Query Parameters

ParameterTypeDescription
format String Proxy format, see ISP Orders.

Response Example

{
  "success": true,
  "order": {
    "order_id": 6244,
    "product_id": 13,
    "product": "DE PREMIUM ISP (monthly)",
    "country_code": "DE",
    "country": "Germany",
    "region": "Germany",
    "type": "Premium",
    "duration": "Monthly",
    "quantity": 2,
    "proxy_count": 2,
    "status": "active",
    "order_date": "2026-10-05T11:44:35Z",
    "valid_to": "2026-11-04T11:44:35Z",
    "expires_in_days": 15,
    "auto_renewal": true,
    "auto_renewal_available": true,
    "replace_ips_available": true,
    "purchase_price": {
      "currency": "EUR",
      "net": 3.4,
      "vat": 0.65,
      "gross": 4.05,
      "vat_rate": 19.0
    },
    "proxies": [
      "203.0.113.10:8000:user:pass",
      "203.0.113.11:8000:user:pass"
    ]
  }
}

ISP Proxy List

GET /v1/isp/orders/{order_id}/proxies

The proxies of one order as plain text, one per line, ready to load into your tools.

Request Example

curl -X GET "https://api.flamingoproxies.com/v1/isp/orders/6244/proxies?format=ip:port:user:pass" \
  -H "X-Api-Key: YOUR_API_KEY_HERE" \
  -o proxies.txt
import requests

response = requests.get(
    "https://api.flamingoproxies.com/v1/isp/orders/6244/proxies",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"},
    params={"format": "ip:port:user:pass"}
)
print(response.text)
const axios = require('axios');

axios.get('https://api.flamingoproxies.com/v1/isp/orders/6244/proxies', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' },
  params: { format: 'ip:port:user:pass' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

Query Parameters

ParameterTypeDescription
format String Proxy format, see ISP Orders.

Response Example (text/plain)

203.0.113.10:8000:user:pass
203.0.113.11:8000:user:pass

Check ISP Proxies

POST /v1/isp/orders/{order_id}/check

Tests the proxies of an active order live: each one requests a test page through the proxy. You get alive or dead, the latency and the exit IP. Large orders are checked in batches with offset and limit; continue with next_offset until it is null.

Request Example

curl -X POST https://api.flamingoproxies.com/v1/isp/orders/6244/check \
  -H "X-Api-Key: YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"offset": 0, "limit": 25}'
import requests

response = requests.post(
    "https://api.flamingoproxies.com/v1/isp/orders/6244/check",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"},
    json={
        "offset": 0,
        "limit": 25
    }
)
print(response.json())
const axios = require('axios');

const data = {
  "offset": 0,
  "limit": 25
};

axios.post('https://api.flamingoproxies.com/v1/isp/orders/6244/check', data, {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

JSON Body Parameters

ParameterTypeDescription
offset Integer Position of the first proxy to check. Default 0.
limit Integer Number of proxies to check, 1 to 100. Default 25.
timeout Number Seconds to wait per proxy, 2 to 10. Default 6.

Response Example

{
  "success": true,
  "order_id": 6244,
  "total": 2,
  "offset": 0,
  "checked": 2,
  "alive": 1,
  "dead": 1,
  "next_offset": null,
  "results": [
    {
      "proxy": "203.0.113.10:8000:user:pass",
      "alive": true,
      "latency_ms": 184,
      "exit_ip": "203.0.113.10",
      "error": null
    },
    {
      "proxy": "203.0.113.11:8000:user:pass",
      "alive": false,
      "latency_ms": null,
      "exit_ip": null,
      "error": "timeout"
    }
  ]
}

Only active orders can be checked. The same batch of an order can be checked once every 30 seconds and one check per account runs at a time (see Limits); otherwise the API answers 429 with a Retry-After header. To test single proxies from several orders, use Check Proxies.

Servers

GET /v1/servers

Your Windows servers: location, IP, status and paid-until date. Server passwords are never returned by the API.

Request Example

curl -X GET "https://api.flamingoproxies.com/v1/servers?include_traffic=true" \
  -H "X-Api-Key: YOUR_API_KEY_HERE"
import requests

response = requests.get(
    "https://api.flamingoproxies.com/v1/servers",
    headers={"X-Api-Key": "YOUR_API_KEY_HERE"},
    params={"include_traffic": "true"}
)
print(response.json())
const axios = require('axios');

axios.get('https://api.flamingoproxies.com/v1/servers', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY_HERE' },
  params: { include_traffic: 'true' }
})
.then(res => console.log(res.data))
.catch(err => console.error(err));

Query Parameters

ParameterTypeDescription
include_traffic Boolean true adds this month's traffic (used_gb) and your included allowance (quota_gb, prorated for partial months).

Response Example

{
  "success": true,
  "count": 1,
  "servers": [
    {
      "server_id": "e0e92a19-aa0c-45c9-982a-03795856f3c2",
      "name": "flamingo-windows-vds-1790672150",
      "region": "EU",
      "ip_address": "203.0.113.20",
      "username": "Administrator",
      "status": "active",
      "created_at": "2026-09-29T08:55:00Z",
      "expires_at": "2026-10-29T08:55:00Z",
      "auto_renewal": false,
      "backup_enabled": true,
      "recreate_available": true,
      "traffic": {
        "month": "2026-10",
        "used_gb": 7.0,
        "quota_gb": 5000.0,
        "quota_full_gb": 5000,
        "over_gb": 0.0
      }
    }
  ]
}

Plans

Every plan the API supports. Use the slug in /v1/plans/{slug}, /v1/plans/{slug}/check, /v1/generate-proxies and /v1/locations. Balances are in GB (1 GB = 1000 MB).

All Plans

SlugPlan IDTypeTargeting
entry 1 Residential Country
standard 2 Residential Country, state, city
sneakers 3 Residential Country
ticket 4 Residential Country
deluxe 5 Residential Country
enterprise 6 Residential Country
mobile 7 Mobile Country, region, city

ISP Countries

ISP orders and products carry the country_code (ISO 3166-1 alpha-2) and country of their region. Filter with country=DE or country=Germany. ISP Products always returns the current list of regions.

Current Regions

Regioncountry_codeCountry
Ashburn US United States
Australia AU Australia
Canada CA Canada
France FR France
Germany DE Germany
Hong Kong HK Hong Kong
Italy IT Italy
Japan JP Japan
Moldova MD Moldova
Netherlands NL Netherlands
Poland PL Poland
Singapore SG Singapore
South Korea KR South Korea
Spain ES Spain
United Kingdom GB United Kingdom

Limits

Live checks send real requests through your proxies, so they are limited per account. When you hit a limit the API answers 429 with a Retry-After header (seconds). Please keep other calls reasonable, e.g. poll balances at most once a minute.

Check Limits

EndpointPer requestHow often
POST /v1/isp/orders/{order_id}/check 1 to 100 proxies Same batch once every 30 s
POST /v1/plans/{slug}/check 1 to 10 proxies Same plan once every 10 s
POST /v1/proxies/check Up to 100 proxies Once every 5 s
All checks One check per account at a time
POST /v1/generate-proxies Up to 50,000 proxies No fixed limit

Errors

Every error returns JSON with success: false and a readable message.

StatusMeaningWhat to do
400Bad requestA parameter is missing or invalid, the plan isn't active on your account, or its balance is empty; the message says which.
401API key missingSend your key in the X-Api-Key header.
403Invalid API keyCopy the key again from your dashboard settings.
404Not foundUnknown plan slug, or an ISP order that isn't on your account.
429Too many requestsA check limit was hit (see Limits). Wait for the seconds in the Retry-After header.
500Server errorRetry shortly; contact support if it persists.

Error Example

{
  "success": false,
  "message": "ISP order not found."
}
Automation

Why Automate with Flamingo API?

Integrating residential proxies directly into your application allows for seamless scalability. Our RESTful API provides endpoints for checking the data balance of every residential and mobile plan, generating new proxies on the fly, fetching your ISP proxies by country, live-checking residential, mobile and ISP proxies, and monitoring your servers without logging into the dashboard.

Whether you are building a custom web scraper, a sneaker bot, or an enterprise-grade data intelligence platform, Flamingo's API guarantees you have programmatic access to over 100 million IPs worldwide.

Common questions

API FAQ

Got more questions? Join our Discord for personalized support.

Does Flamingo Proxies have an API?

Yes. Our REST API returns the plans and data balances of all residential plans and Mobile, generates residential and mobile proxies, fetches your ISP orders and proxy lists, live-checks proxies, and lists your servers.

Every request is authenticated with your personal API key, sent in the X-Api-Key header. You find the key in your dashboard settings.

Live proxy checks are limited per account: an ISP batch once every 30 seconds, a plan once every 10 seconds, a proxy list once every 5 seconds, and one check at a time. Faster calls get HTTP 429 with a Retry-After header. Please keep other calls reasonable, for example poll balances at most once a minute.

Yes. API access is included with every Flamingo Proxies plan at no extra cost.

Any language that supports HTTP requests — Python, JavaScript, Go, PHP, cURL, and more. The API returns standard JSON responses.

Yes. GET /v1/isp/orders lists your ISP orders with country code, list amount and auto-renewal, and GET /v1/isp/orders/{order_id}/proxies returns a proxy list as text. POST /v1/isp/orders/{order_id}/check, POST /v1/plans/{slug}/check and POST /v1/proxies/check test ISP, residential and mobile proxies live and return latency and exit IP.

Call GET /v1/usage for every active plan, or GET /v1/plans?include_usage=true for all seven plans including inactive ones. Each active residential or mobile plan returns its available, used and total GB.