Bitcall logoBitcall API
Add your Key ID and Secret to send test requests.

List plans

GET
/v1/esim/plans

Returns the data plans you can buy, filterable by region, country, validity and price.

Authorization

KeyId ApiSecret
x-key-id<token>

Your API key id.

In: header

x-api-secret<token>

Your API key secret.

In: header

Query Parameters

region?string
Length1 <= length
provider?string
Value in"pool1" | "pool2"
validityDays?string
Match^[1-9][0-9]*$
5g?string
Value in"true" | "false"
priceMax?string
Match^[0-9]+(\.[0-9]+)?$
currency?string
Length3 <= length <= 5
page?integer
Default1
Range1 <= value <= 10000
pageSize?integer
Default50
Range1 <= value <= 200

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/esim/plans?provider=pool1&5g=true&page=1&pageSize=50"
{
  "data": [
    {
      "planId": "string",
      "name": "string",
      "region": "string",
      "countryCode": "string",
      "countries": [
        "string"
      ],
      "dataMb": 0,
      "unlimitedData": true,
      "validityDays": 0,
      "price": {
        "amount": 0,
        "currency": "string"
      },
      "network": "string",
      "packageType": "string",
      "connectivity": "string",
      "capabilities": {
        "data": true,
        "voice": true,
        "sms": true,
        "hotspot": true,
        "fiveG": true
      }
    }
  ],
  "meta": {
    "page": -9007199254740991,
    "pageSize": -9007199254740991,
    "total": -9007199254740991,
    "totalPages": -9007199254740991,
    "hasNext": true
  }
}
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "The request is not valid. See `fields` for what to correct.",
    "requestId": "9f1c7b2e-…"
  }
}
{
  "error": {
    "code": "AUTHENTICATION_REQUIRED",
    "message": "This endpoint requires an API key.",
    "requestId": "9f1c7b2e-…"
  }
}
{
  "error": {
    "code": "CONFLICT",
    "message": "The resource is not in a state that allows this operation.",
    "requestId": "9f1c7b2e-…"
  }
}
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Too many requests. Retry after the interval in `Retry-After`.",
    "requestId": "9f1c7b2e-…"
  }
}
{
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Something went wrong on our side.",
    "requestId": "9f1c7b2e-…"
  }
}
{
  "error": {
    "code": "SERVICE_RESPONSE_INVALID",
    "message": "The upstream service returned an unexpected response.",
    "requestId": "9f1c7b2e-…"
  }
}
{
  "error": {
    "code": "SERVICE_UNAVAILABLE",
    "message": "The service is temporarily unavailable. Try again shortly.",
    "requestId": "9f1c7b2e-…"
  }
}