One API
for global employee phone plans

Activate, manage, and scale employee phone plans
in 50+ countries through one API.
Simplify global phone plan management
Automatically assign plans for employees everywhere with zero overhead.
A single invoice, globally
Save thousands of hours by consolidating carrier contracts across countries into one global invoice.
Automated provisioning
Instantly activate or terminate SIMs in sync with your internal workflows and the employee lifecycle.
One partner, total coverage
Global phone plans through a single API. We handle the carriers so you can focus on what really matters.
24/7 AI-powered human-assisted support
Operator (our agentic AI) is built-in to provide always-on, self-serve answers.

Enterprise phone plans and bundles to fit your team’s needs.
No minimum commitments.
Unlimited local talk, text, and data. From premium networks in 50+ countries.

Add roaming.
Travel data in
195+ countries.

Hotspot globally.
Securely connect all
your devices on the go.

Case Study
From 10 technical support reps to 1
Deployed in under 3 weeks with only 2 engineers, Klarna went from managing 20+ carrier contracts to one seamless solution.
So much more than just sending SIMs
The possibilities are endless with Gigs’ API. Embed phone plans natively in your tech stack and take full control of your team’s connectivity needs.
SIM management on autopilot
Adding new employees doesn't have to mean additional work for you or them. Automatically trigger SIM activation and termination with the employee lifecycle.

Powerful reporting for smarter decisions
Usage, spending, and activity reports can be pulled into your tools programmatically through our API or you can use our pre-built admin dashboard.

Stronger security, smarter connectivity
Using personal phone numbers for business can expose your systems to privacy risks. Assign a dedicated business line to employees using company phones and those on bring-your-own-device programs for full centralized control.

Built-in protection with eSIMs
Physical SIMs leave you vulnerable to SIM swap scams and theft. Issuing eSIMs provides you with greater security.

Phone plans that fit your workflows
Integrate phone plan management into your device procurement, mobile device management, or IT systems, so plan assignment happens automatically with specific employee events.

Eliminate surprise roaming charges
Roaming charges often only surface after the fact. With Gigs, you can give employees roaming data and hotspots abroad to avoid astronomical fees.

SIM delivery in Slack, Teams, WhatsApp & email
Send SIMs to employees through the business tools they already use every day, like Slack, Teams, WhatsApp, and email.

Build connectivity into your existing workflow
Provide phone plans to employees fast with one powerful telecom integration. The Gigs API is built by developers, for developers.
Globally scalable
Expand fast with new markets as parameters on existing abstractions.
Easy to test and troubleshoot
Build and test efficiently with custom parameters, samples and error codes.
Thoroughly documented
Know what to expect with carrier guides and descriptions for every endpoint.
Performant
Address real time use cases at scale with low latency and 99.99% uptime.
Versioned changes
Ensure your integration operates throughout version changes with clear changelog updates.
Observable
Design scalable business logic with webhooks and events for every phone plan permutation.
Explore our documentation
Our API allows you to manage phone plans for your employees with ease within your existing workflows.
Code examples
Request
curl --request GET
--url 'https://api.gigs.com/projects/my-project/plans'
--header 'Accept: application/json'
--header 'Authorization: Bearer 123'Response
{
"object": "list",
"items": [
{
"object": "plan",
"id": "pln_0SNlurA049MEWV3V0q7gjQbM4EVo",
"allowances": {
"dataBytes": 10000000000,
"voiceSeconds": 30000,
"smsMessages": 100
},
"coverage": {
"object": "coverage",
"id": "de",
"countries": [
"DE",
"FR",
"US"
],
"name": "Europe"
},
"data": 10000000000,
"dataUnit": "byte",
"description": "A data plan you will love! Operates in most countries of the world.",
"image": "https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png",
"limits": {
"dataBytes": 100000000000,
"bandwidthBitsPerSecond": null,
"throttling": {
"thresholdBytes": 10000000000,
"bandwidthBitsPerSecond": 512000
}
},
"name": "Gigs Global",
"price": {
"amount": 999,
"currency": "USD"
},
"provider": "p5",
"requirements": {
"address": "present",
"device": "none",
"user.birthday": "none",
"user.fullName": "present"
},
"simTypes": [
"eSIM",
"pSIM"
],
"sms": 100,
"smsUnit": "message",
"status": "available",
"validity": {
"minimumPeriods": 12,
"type": "recurring",
"unit": "day",
"value": 7
},
"voice": 30000,
"voiceUnit": "second",
"createdAt": "2021-01-21T19:38:34Z"
}
],
"moreItemsAfter": null,
"moreItemsBefore": null
}Request
curl --request POST
--url 'https://api.gigs.com/projects/my-project/users'
--header 'Accept: application/json'
--header 'Authorization: Bearer 123'
--header 'Content-Type: application/json'
--data '{
"birthday": "2017-07-21",
"email": "jerry@example.com",
"fullName": "Jerry Seinfeld",
"preferredLocale": "en-US"
}'Response
{
"object": "user",
"id": 'usr_0SNlurA049MEWV4OpCwsNyC9Kn2d',
"birthday": "2017-07-21",
"email": "jerry@example.com",
"emailVerified": true,
"fullName": "Jerry Seinfeld",
"preferredLocale": "en-US",
"createdAt": "2021-01-21T19:38:34Z"
}Request
curl --request POST
--url 'https://api.gigs.com/projects/my-project/subscriptions'
--header 'Accept: application/json'
--header 'Authorization: Bearer 123'
--header 'Content-Type: application/json'
--data '{
"device": "dev_0SNlurA049MEWV55CrA9qMvI2FVJ",
"plan": "pln_0SNlurA049MEWV3V0q7gjQbM4EVo",
"sim": "sim_0SNlurA049MEWV1BAAmWZULA4lf6",
"userAddress": "adr_0SNlurA049MEWV5ELDmnaqVXgTFT",
"user": "usr_0SNlurA049MEWV4OpCwsNyC9Kn2d",
"porting": "prt_0SNlurA049MEWV39s2kSYqaat7ZS"
}'Response
{
"object": "subscription",
"id": 'sub_0SNlurA049MEWV2gSfSxi00xlPIi',
"currentPeriod": {
"number": 1,
"start": "2021-01-21T19:32:13Z",
"end": "2021-02-20T19:38:34Z"
},
"phoneNumber": "+19591234567",
"plan": {
"object": "plan",
"id": 'pln_0SNlurA049MEWV3V0q7gjQbM4EVo',
"allowances": {
"dataBytes": 10000000000,
"voiceSeconds": 30000,
"smsMessages": 100
},
"coverage": {
"object": "coverage",
"id": "de",
"countries": [
"DE",
"FR",
"US"
],
"name": "Europe"
},
"data": 10000000000,
"dataUnit": "byte",
"description": "A data plan you will love! Operates in most countries of the world.",
"image": "https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png",
"limits": {
"dataBytes": 100000000000,
"bandwidthBitsPerSecond": null,
"throttling": {
"thresholdBytes": 10000000000,
"bandwidthBitsPerSecond": 512000
}
},
"name": "Gigs Global",
"price": {
"amount": 999,
"currency": "USD"
},
"provider": 'p5',
"requirements": {
"address": "present",
"device": "none",
"user.birthday": "none",
"user.fullName": "present"
},
"simTypes": [
"eSIM",
"pSIM"
],
"sms": 100,
"smsUnit": "message",
"status": "available",
"validity": {
"minimumPeriods": 12,
"type": "recurring",
"unit": "day",
"value": 7
},
"voice": 30000,
"voiceUnit": "second",
"createdAt": '2021-01-21T19:38:34Z'
},
"porting": {
"object": "porting",
"id": "prt_0SNlurA049MEWV39s2kSYqaat7ZS",
"accountNumber": "123456789",
"address": {
"city": "New York City",
"country": "US",
"line1": "129 West 81st Street",
"line2": "Apartment 5A",
"postalCode": "10024",
"state": "NY"
},
"birthday": "2017-07-21",
"declinedAttempts": 0,
"declinedCode": "portingPhoneNumberPortProtected",
"declinedMessage": "The phone number has port protection on the provider.",
"donorProvider": {
"object": "serviceProvider",
"id": "svp_0SNlurA01K6GY5L0XJffY8",
"name": "AT&T",
"recipientProviders": [
"p3"
]
},
"donorProviderApproval": true,
"firstName": "Jerry",
"lastName": "Seinfeld",
"phoneNumber": "+19591234567",
"provider": "p4",
"recipientProvider": {
"object": "serviceProvider",
"id": "svp_0SNlurA01K6GY5L0XJffY8",
"name": "AT&T",
"recipientProviders": [
"p3"
]
},
"required": [
"accountNumber",
"accountPin",
"address",
"birthday",
"donorProvider",
"donorProviderApproval",
"firstName",
"lastName"
],
"status": "draft",
"subscription": "sub_0SNlurA049MEWV2gSfSxi00xlPIi",
"user": "usr_0SNlurA049MEWV4OpCwsNyC9Kn2d",
"canceledAt": "2021-01-21T19:39:53Z",
"completedAt": "2021-01-21T19:36:57Z",
"createdAt": "2021-01-21T19:12:28Z",
"expiredAt": "2021-01-21T19:39:53Z",
"lastDeclinedAt": "2021-01-21T19:31:13Z",
"lastRequestedAt": "2021-01-21T19:22:31Z"
},
"sim": {
"object": "sim",
"id": "sim_0SNlurA049MEWV1BAAmWZULA4lf6",
"iccid": "89883070000007537119",
"provider": "p4",
"status": "inactive",
"type": "eSIM",
"createdAt": "2021-01-21T19:38:34Z"
},
"status": "pending",
"user": {
"object": "user",
"id": "usr_0SNlurA049MEWV4OpCwsNyC9Kn2d",
"birthday": "2017-07-21",
"email": "jerry@example.com",
"emailVerified": true,
"fullName": "Jerry Seinfeld",
"preferredLocale": "en-US",
"createdAt": "2021-01-21T19:38:34Z"
},
"activatedAt": "2021-01-21T19:38:34Z",
"canceledAt": "2021-01-29T13:22:51Z",
"createdAt": "2021-01-21T19:32:13Z",
"endedAt": "2021-02-20T19:38:34Z",
"firstUsageAt": "2021-01-21T19:38:34Z"
}Request
curl https://api.gigs.com/projects/${GIGS_PROJECT}/sims/{sim} \
-X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${GIGS_TOKEN}" \
-H "Accept: application/json" \
-d "{\"metadata\":{}}"Response
{
"object": "sim",
"id": "sim_0SNlurA049MEWV1BAAmWZULA4lf6",
"metadata": {},
"createdAt": "2021-01-21T19:38:34Z",
"iccid": "89883070000007537119",
"provider": "p9",
"status": "inactive",
"type": "eSIM"
}Request
curl https://api.gigs.com/projects/${GIGS_PROJECT}/subscriptions/{subscription}/cancel \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${GIGS_TOKEN}" \
-H "Accept: application/json" \
-d "{\"cancellationDetails\":{\"userReason\":\"connectivityIssues\"}}"Response
{
"object": "subscription",
"id": "sub_0SNlurA049MEWV2gSfSxi00xlPIi",
"metadata": {},
"activatedAt": "2021-01-21T19:38:34Z",
"billing": {
"discount": {
"voucher": "vou_0SNlurA049MEWV0h2jfjkdiOdplN",
"expiresAt": "2021-02-20T19:38:34Z"
},
"invoiceGracePeriodDays": 3,
"invoiceOverdueDays": 3,
"invoiceOverdueAction": null
},
"canceledAt": "2021-01-29T13:22:51Z",
"cancellationDetails": {
"cause": "cancellationRequested",
"userReason": "connectivityIssues"
},
"createdAt": "2021-01-21T19:32:13Z",
"currentPeriod": {
"number": 1,
"start": "2021-01-21T19:32:13Z",
"end": "2021-02-20T19:38:34Z"
},
"earliestEndAt": "2021-02-20T19:38:34Z",
"endedAt": "2021-02-20T19:38:34Z",
"firstUsageAt": "2021-01-21T19:38:34Z",
"lastPorting": {
"object": "porting",
"id": "prt_0SNlurA049MEWV39s2kSYqaat7ZS",
"accountNumber": "123456789",
"accountPinExists": true,
"address": {
"city": "New York City",
"country": "US",
"line1": "129 West 81st Street",
"line2": "Apartment 5",
"postalCode": "10024",
"state": "NY"
},
"behavior": "portIn",
"billingPinExists": true,
"birthday": "2017-07-21",
"canceledAt": "2021-01-21T19:39:53Z",
"completedAt": "2021-01-21T19:36:57Z",
"createdAt": "2021-01-21T19:12:28Z",
"declinedAttempts": 0,
"declinedCode": "portingPhoneNumberPortProtected",
"declinedMessage": "The phone number has port protection on the provider.",
"donorProvider": {
"object": "serviceProvider",
"id": "svp_0SNlurA01K6GY5L0XJffY8",
"country": "US",
"name": "AT&T",
"recipientProviders": [
"p3"
]
},
"donorProviderApproval": true,
"expiredAt": "2021-01-21T19:39:53Z",
"firstName": "Jerry",
"lastDeclinedAt": "2021-01-21T19:31:13Z",
"lastName": "Seinfeld",
"lastRequestedAt": "2021-01-21T19:22:31Z",
"phoneNumber": "+19591234567",
"provider": "p9",
"recipientProvider": {
"object": "serviceProvider",
"id": "svp_0SNlurA01K6GY5L0XJffY8",
"country": "US",
"name": "AT&T",
"recipientProviders": [
"p3"
]
},
"required": [
"accountNumber",
"accountPin",
"address",
"birthday",
"donorProvider",
"donorProviderApproval",
"firstName",
"lastName"
],
"scheduledOn": "2021-01-21",
"status": "draft",
"subscription": "sub_0SNlurA049MEWV2gSfSxi00xlPIi",
"user": "usr_0SNlurA049MEWV4OpCwsNyC9Kn2d"
},
"phoneNumber": "+19591234567",
"plan": {
"object": "plan",
"id": "pln_0SNlurA049MEWV3V0q7gjQbM4EVo",
"metadata": {},
"allowances": {
"dataBytes": 10000000000,
"voiceSeconds": 30000,
"smsMessages": 100
},
"coverage": {
"object": "coverage",
"id": "de",
"countries": [
"DE",
"FR",
"US"
],
"name": "Europe"
},
"createdAt": "2021-01-21T19:38:34Z",
"description": "A data plan you will love! Operates in most countries of the world.",
"image": "https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png",
"limits": {
"dataBytes": 100000000000,
"bandwidthBitsPerSecond": 100000000,
"throttling": {
"thresholdBytes": 10000000000,
"bandwidthBitsPerSecond": 512000
}
},
"name": "Gigs Global",
"price": {
"amount": 999,
"currency": "USD"
},
"provider": "p5",
"requirements": {
"address": "present",
"device": "none",
"user.birthday": "none",
"user.fullName": "present"
},
"simTypes": [
"eSIM",
"pSIM"
],
"status": "available",
"validity": {
"minimumPeriods": 12,
"type": "recurring",
"unit": "day",
"value": 7
},
"data": 10000000000,
"dataUnit": "byte",
"sms": 100,
"smsUnit": "message",
"voice": 30000,
"voiceUnit": "second"
},
"restrictedAt": "2021-02-21T19:38:34Z",
"restrictionDetails": {
"restrictBehavior": "incomingOnly",
"restoreBehavior": "resetPeriodAnchor",
"cause": "invoiceOverdue"
},
"sim": {
"object": "sim",
"id": "sim_0SNlurA049MEWV1BAAmWZULA4lf6",
"metadata": {},
"createdAt": "2021-01-21T19:38:34Z",
"iccid": "89883070000007537119",
"provider": "p9",
"status": "inactive",
"type": "eSIM"
},
"status": "pending",
"user": {
"object": "user",
"id": "usr_0SNlurA049MEWV4OpCwsNyC9Kn2d",
"metadata": {},
"birthday": "2017-07-21",
"createdAt": "2021-01-21T19:38:34Z",
"email": "jerry@example.com",
"emailVerified": true,
"fullName": "Jerry Seinfeld",
"preferredLocale": "en-US"
},
"userAddress": "adr_0SNlurA049MEWV5ELDmnaqVXgTFT",
"porting": {
"object": "porting",
"id": "prt_0SNlurA049MEWV39s2kSYqaat7ZS",
"accountNumber": "123456789",
"accountPinExists": true,
"address": {
"city": "New York City",
"country": "US",
"line1": "129 West 81st Street",
"line2": "Apartment 5",
"postalCode": "10024",
"state": "NY"
},
"behavior": "portIn",
"billingPinExists": true,
"birthday": "2017-07-21",
"canceledAt": "2021-01-21T19:39:53Z",
"completedAt": "2021-01-21T19:36:57Z",
"createdAt": "2021-01-21T19:12:28Z",
"declinedAttempts": 0,
"declinedCode": "portingPhoneNumberPortProtected",
"declinedMessage": "The phone number has port protection on the provider.",
"donorProvider": {
"object": "serviceProvider",
"id": "svp_0SNlurA01K6GY5L0XJffY8",
"country": "US",
"name": "AT&T",
"recipientProviders": [
"p3"
]
},
"donorProviderApproval": true,
"expiredAt": "2021-01-21T19:39:53Z",
"firstName": "Jerry",
"lastDeclinedAt": "2021-01-21T19:31:13Z",
"lastName": "Seinfeld",
"lastRequestedAt": "2021-01-21T19:22:31Z",
"phoneNumber": "+19591234567",
"provider": "p9",
"recipientProvider": {
"object": "serviceProvider",
"id": "svp_0SNlurA01K6GY5L0XJffY8",
"country": "US",
"name": "AT&T",
"recipientProviders": [
"p3"
]
},
"required": [
"accountNumber",
"accountPin",
"address",
"birthday",
"donorProvider",
"donorProviderApproval",
"firstName",
"lastName"
],
"scheduledOn": "2021-01-21",
"status": "draft",
"subscription": "sub_0SNlurA049MEWV2gSfSxi00xlPIi",
"user": "usr_0SNlurA049MEWV4OpCwsNyC9Kn2d"
}
}Request
curl --request POST
--url 'https://api.gigs.com/projects/my-project/portings'
--header 'Accept: application/json'
--header 'Authorization: Bearer 123'
--header 'Content-Type: application/json'
--data '{
"accountNumber": "123456789",
"accountPin": "1234",
"address": {
"city": "New York City",
"country": "US",
"line1": "129 West 81st Street",
"line2": "Apartment 5A",
"postalCode": "10024",
"state": "NY"
},
"birthday": '2017-07-21',
"donorProvider": 'svp_0SNlurA01K6GY5L0XJffY8',
"donorProviderApproval": true,
"firstName": "Jerry",
"lastName": "Seinfeld",
"phoneNumber": "+19591234567",
"provider": "p4",
"user": "usr_0SNlurA049MEWV4OpCwsNyC9Kn2d"
}'Response
{
"object": "porting",
"id": 'prt_0SNlurA049MEWV39s2kSYqaat7ZS',
"accountNumber": "123456789",
"address": {
"city": "New York City",
"country": "US",
'line1': '129 West 81st Street',
'line2': 'Apartment 5A',
"postalCode": "10024",
"state": "NY"
},
"birthday": "2017-07-21",
"declinedAttempts": 0,
"declinedCode": "portingPhoneNumberPortProtected",
"declinedMessage": "The phone number has port protection on the provider.",
"donorProvider": {
"object": "serviceProvider",
"id": 'svp_0SNlurA01K6GY5L0XJffY8',
"name": "AT&T",
"recipientProviders": [
'p3'
]
},
"donorProviderApproval": true,
"firstName": "Jerry",
"lastName": "Seinfeld",
"phoneNumber": '+19591234567',
"provider": 'p4',
"recipientProvider": {
"object": "serviceProvider",
"id": 'svp_0SNlurA01K6GY5L0XJffY8',
"name": "AT&T",
"recipientProviders": [
"p3"
]
},
"required": [
"accountNumber",
"accountPin",
"address",
"birthday",
"donorProvider",
"donorProviderApproval",
"firstName",
"lastName"
],
"status": "draft",
"subscription": "sub_0SNlurA049MEWV2gSfSxi00xlPIi",
"user": "usr_0SNlurA049MEWV4OpCwsNyC9Kn2d",
"canceledAt": "2021-01-21T19:39:53Z",
"completedAt": "2021-01-21T19:36:57Z",
"createdAt": "2021-01-21T19:12:28Z",
"expiredAt": "2021-01-21T19:39:53Z",
"lastDeclinedAt": "2021-01-21T19:31:13Z",
"lastRequestedAt": "2021-01-21T19:22:31Z"
}Proven infrastructure, trusted by the fastest-scaling companies
Your integration is only as strong as the API infrastructure behind it. Choose one proven to power global scale.
>99.99% API uptime. Modern, reliable API architecture ensures your phone plan management runs without interruption.

Cut IT overhead by 90%. Automate plan provisioning and let your employees self‑activate their SIMs in seconds.

Trusted by $50B+ customers. Supporting highly regulated enterprises with hundreds of millions of users worldwide.


Stuck in carrier contracts?
We’ll handle it.
We’ll import your existing lines into Gigs, consolidate them into one account, and manage the carriers on your behalf. We can simplify even the most complex setups.
Direct access to prioritized 5G data from the world’s top networks.
And 20+ more
Gigs is powering some of the world’s largest banks and enterprises.
We understand telecom security better than anyone. That’s why our API is designed with the highest data privacy and cybersecurity standards.
FAQs
All of our API endpoints are free for our customers and you can create as many bespoke connections as you like. Because each customer’s phone plan makeup is unique to their team’s needs and locations, we’ll work with you to develop a custom pricing package that suits your business.
A dedicated program manager, customer success manager, and solutions engineer will be available to provide expert consultation and technical support throughout the development process. That said, all of the Gigs API endpoints are self-serve and backed by robust documentation to easily embed phone plan management in your workflows.
Sometimes the best way to learn is by doing. That’s why we will give your developer team an account to experiment with the API and dig into the details before providing access to live lines.
The connection is read/write.
Yes. Companies issuing corporate phones and those with BYOD policies can both take advantage of the Gigs API for phone plan management.
Yes. In this case, we will ship the SIM card to you and you will ship the card directly to the employee.
Yes, we support both phone types.
Yes. Our team can support you and your employees via your preferred messaging channel for real-time answers. Or if you prefer, we can train your team with the know-how to respond to basic questions and we’ll provide coverage for more complex queries.
At Gigs, we understand the importance of your employee’s data privacy and security. That’s why we use TLS 1.2 standard (or higher) encryption to secure all data. We’ve also achieved the highest data privacy and cybersecurity standards, including SOC 2 Type 1, GDPR, and CCPA compliance.
Yes. Your team can set up, manage, and deactivate phone plans based on data and triggers in your HR or payroll platform.
No problem. With a Letter of Authorization (LOA), we can take over management of your existing lines, consolidate them into one account, and handle the carriers on your behalf through the end of the contract. When the contracts expire, we’ll seamlessly move your lines to Gigs SIMs. If you have any concerns or sensitivities surrounding your current contacts, let us know and we’ll collaborate with you to build the best possible solution for your business.
Global connectivity, made simple.
Embed employee phone plan management into your tech stack — it’s the easiest call you’ll make all year.



