Firsty

Search...

Search...

Getting started

Overview

What the Firsty API does and how to make a first call.

Onboard your Agent

One prompt gets your coding agent building with Firsty. It reads our guide, installs the CLI and connects your free test account, so it can order sandbox eSIMs as it writes your integration.

Create a test account

The Firsty API gives you worldwide mobile data in a handful of calls. Provision an eSIM, attach a data package, and hand your user an activation code. No carrier contracts, no SIM logistics.

Everything below runs on your own test account. It's free: create one, then npx firsty login connects the CLI to it. If a Firsty representative set up your account, use your client ID and secret with the HTTP tab instead. See Credentials, and Environments for how you go live.

What you can build

  • Travel apps. Sell data bundles at checkout and activate them in-app.
  • Device fleets. Provision connectivity for hardware as it ships.
  • Embedded connectivity. Bundle data into your own product's onboarding.

Your first call

Every API request carries a bearer token; only the token exchange itself doesn't. See Authentication for that exchange, or let the CLI mint one with export FIRSTY_TOKEN="$(npx firsty auth token)".

firsty catalog packages --limit 2
Response · 200
{
  "data": [
    {
      "planReference": "C123456XYZDUSR",
      "name": "5GB - 30 Days - US",
      "type": "data",
      "allowance": {
        "unit": "mb",
        "count": 5120,
        "speedKbps": 100000,
        "throttle": {
          "unlimited": true,
          "speedKbps": 512
        }
      },
      "capacityMb": 5120,
      "speedKbps": 100000,
      "throttleCapacityMb": null,
      "throttleSpeedKbps": 512,
      "smsCount": null,
      "voiceSeconds": null,
      "validity": {
        "unit": "day",
        "count": 30
      },
      "renewal": {
        "unit": "day",
        "count": 30
      },
      "alignment": "relative",
      "validityMinutes": 43200,
      "countryCode": "US",
      "recurring": false,
      "renewalPeriodMinutes": null
    }
  ],
  "pagination": {
    "limit": 20,
    "hasMore": true,
    "nextCursor": "MjAyNC0wMS0xNVQxMDowMDowMC4wMDBaOjQy"
  }
}

Plan references are either client-specific (C...) or shared (S...), so what a request returns depends on the account asking.

Where to go next

GuideWhat it covers
QuickstartOrder an eSIM end to end
EnvironmentsTest and live, their limits and going live
AuthenticationCredentials, tokens and environments
eSIM lifecycleStates a profile moves through
eSIM installationDeep links, QR codes and in-app install
Embedded web appEmbed Firsty instead of building against the API