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]+)?$
sort?string
Value in"price_asc" | "price_desc" | "name_asc"
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&sort=price_asc&page=1&pageSize=50" \  -H "x-key-id: YOUR_KEY_ID" \  -H "x-api-secret: YOUR_API_SECRET"
{
  "data": [
    {
      "planId": "pln_qAjUV8PBr8c3j3rLMLoeaLx3RxM7q0XByVJBQxfE6Q",
      "name": "UK 1MB Test Plan",
      "region": "United Kingdom",
      "countryCode": "GB",
      "countries": [
        "GB"
      ],
      "dataMb": 1,
      "unlimitedData": false,
      "validityDays": 5,
      "price": {
        "amount": 0.74,
        "currency": "EUR"
      },
      "network": "EE",
      "connectivity": "Local",
      "capabilities": {
        "data": true,
        "voice": false,
        "sms": false,
        "fiveG": false
      }
    },
    {
      "planId": "pln_LFCWEcNevnHGQs6FRp7dVUNR7lYsAfeS3NtcpWpqyA",
      "name": "1 GB - 7 days",
      "region": "Tunisia",
      "countryCode": "TN",
      "countries": [
        "TN"
      ],
      "dataMb": 1024,
      "unlimitedData": false,
      "validityDays": 7,
      "price": {
        "amount": 0.87,
        "currency": "EUR"
      },
      "network": "El Jem Communications",
      "connectivity": "Roaming",
      "capabilities": {
        "data": true,
        "voice": false,
        "sms": false,
        "fiveG": false
      }
    }
  ],
  "meta": {
    "page": 1,
    "pageSize": 2,
    "total": 2753,
    "totalPages": 1377,
    "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-…"
  }
}