# Port phone numbers using Twilio APIs

> \[!IMPORTANT]
>
> The Porting API is in Public Beta. The information in this document could change. We might add or update features before the product becomes Generally Available. Beta products don't have a Service Level Agreement (SLA). Learn more about [beta product support](https://help.twilio.com/articles/115002413087-Twilio-Beta-product-support).

Keep your own phone number and move its messaging and voice capabilities to Twilio by porting your number to Twilio. When you do this, Twilio becomes the new carrier of your phone number.

## Quick portability check

Before you get started, use the **[Portability Checker in the Console](https://console.twilio.com/us1/develop/phone-numbers/port-host/portability-check)** to quickly check if you can port your phone number to Twilio. Enter your phone number to see if it's portable—no coding required.

For programmatic portability checking, see the [Portability API](/docs/phone-numbers/port-in/portability-api) documentation.

## Automated porting with the API

This guide walks you through the automated porting process using the **Porting API**. Use the API to create a port-in request for US non-toll-free phone numbers (up to 1,000 numbers per request).

Use the [Portability API](/docs/phone-numbers/port-in/portability-api) (in Public Beta) to check the portability status of your phone numbers before you submit a port-in request for these numbers.

> \[!NOTE]
>
> The public beta version of the Porting API doesn't support email notifications. Configure [webhooks](/docs/phone-numbers/port-in/porting-webhooks) to receive updates about your port-in request.

With this port-in process, you don't need to manually create a PDF document with a Letter of Authorization (LOA) to port a number. Twilio generates an electronic LOA with the information you provide in the port-in request and sends it to the authorized representative's email for a digital signature.

After you complete a port-in request, [fulfill all messaging and voice compliance requirements](https://help.twilio.com/articles/1260800720410) before you use a phone number for Twilio services.

## Phone number port-in process

![Flowchart of the phone number porting process involving authorized representative, Twilio customer, Twilio, and API.](https://docs-resources.prod.twilio.com/be9e530328b12150d10abe3baa63b864a6b99ff7bbcba84e63b9ac76216e8ff3.png)

Follow these high-level steps to create a port-in request using the API:

1. [Check the portability](/docs/phone-numbers/port-in/portability-api) for all phone numbers in the request.
2. [Upload utility bills](/docs/phone-numbers/document-apis) showing proof of ownership for phone numbers to be ported.
3. [Create a new port-in request](/docs/phone-numbers/port-in/port-in-request-api) for the phone numbers.
4. Twilio creates an LOA with all portable numbers from the port-in request and sends it to the authorized representative's email (added in the API) for digital signature.
5. The authorized representative of the number signs the LOA.
6. Twilio submits the request to the losing carrier.
7. Any port rejections are handled based on responses from the losing carrier.
8. Twilio confirms the date for the port with the losing carrier.
9. Twilio and the losing carrier complete the number port on the agreed date, and Twilio adds the phone numbers to your account.

> \[!NOTE]
>
> See [Porting webhooks](/docs/phone-numbers/port-in/porting-webhooks) for more information about what notifications you can subscribe to as part of the port-in process.

## Statuses

These tables list possible statuses for your port-in request and port in phone numbers.

### port-in request statuses

The port-in request status represents the overall status of the request, and updates as the request progresses through the port-in process.

| Status name           | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| In Review             | The port-in request is currently being reviewed by Twilio. The request will progress to the next status automatically.                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Waiting for Signature | The port-in request has been accepted by Twilio and an LOA has been sent to the authorized representative's email.<br />The authorized representative has 30 days to sign this document or the port-in request will be canceled automatically.                                                                                                                                                                                                                                                                                                                |
| In Progress           | The port-in request has been submitted to the losing carrier and if accepted will get ported on the agreed date. The request will progress to the next status automatically.<br />It is only possible to make changes to the target port date of the port-in request at this point.                                                                                                                                                                                                                                                                           |
| Action Required       | At least one number in the port-in request has been rejected by the losing carrier. To resolve the rejection:<br /><ol><li>Review the rejection reason code.</li><li>Do one of the following:<ul> <li> Cancel the rejected phone number from the port-in request.</li> <li>Cancel the entire port-in request.</li></ul></li><li>Resubmit the port-in request with the corrected information.</li></ol>All phone numbers that were not rejected will continue with the port-in process unless the port-in request is canceled or the phone number is canceled. |
| Completed             | All phone numbers in the port-in request have been successfully ported to Twilio or canceled. There are no further actions to take.                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Canceling             | The port-in request is in the cancellation process. Some scenarios require you to reach out to the losing carrier or other partners to ensure the cancellation for all phone numbers in the request.                                                                                                                                                                                                                                                                                                                                                          |
| Canceled              | All phone numbers in the port-in request have been canceled. You can choose to retry this request by submitting it again. Be sure to review the details of this request to determine why it was canceled.                                                                                                                                                                                                                                                                                                                                                     |

#### port-in request status transition

![Flowchart of port-in request status from start to completed or canceled.](https://docs-resources.prod.twilio.com/2bf17db5c5855acafbc0dd5c36a00cfc7d6f08d54bd15560ea6b5a81abea31b0.png)

### Port in phone number statuses

A port-in request allows you to port multiple phone numbers at once. Each phone number in the request has its own status.

| Status                | Description                                                                                                                                                                                                                                                                                                                                                          |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| In Review             | The port in phone number is currently being reviewed by Twilio. The phone number will progress to the next status automatically.                                                                                                                                                                                                                                     |
| Waiting for Signature | The LOA for the port-in request is waiting for a signature from the authorized representative. The phone number will progress to the next status as soon as the LOA is signed.                                                                                                                                                                                       |
| Port Submitted        | The phone number has been submitted to the losing carrier for port approval. The phone number will progress to the next status automatically.                                                                                                                                                                                                                        |
| Port Pending          | The phone number port has been accepted by the losing carrier. At this point there should be a date assigned to the port-in request for this phone number. The phone number will progress to the next status automatically on the port in date.                                                                                                                      |
| Port Rejected         | The phone number has been rejected by the losing carrier. To resolve the rejection:<ol><li>Review the rejection reason code.</li><li>Do one of the following: <ul><li>Cancel the rejected phone number from the port-in request.</li><li>Cancel the entire port-in request.</li></ul></li><li>Resubmit the port-in request with the corrected information.</li></ol> |
| Completed             | The phone number has been successfully ported to Twilio.                                                                                                                                                                                                                                                                                                             |
| Canceling             | The phone number is pending cancellation. Some scenarios require you to reach out to the losing carrier or other partners to ensure cancellation. This is not a terminal status.                                                                                                                                                                                     |
| Canceled              | The phone number was canceled during the port-in process. This can happen automatically if the number is not portable or it can be done via the API.                                                                                                                                                                                                                 |

#### Port in phone numbers status transitions

![Flowchart showing phone number porting status transitions from start to completed or canceled.](https://docs-resources.prod.twilio.com/b802cd103f092bade736556b819c4fd4425d2360a36a8d15e5de20e3922ee93b.png)

## Authentication

To authenticate requests to the Twilio APIs, Twilio supports [HTTP Basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication). Use your *API key* as the username and your *API key secret* as the password. You can create an API key either [in the Twilio Console](/docs/iam/api-keys/keys-in-console) or [using the API](/docs/iam/api-keys/key-resource-v1).

**Note**: Twilio recommends using API keys for authentication in production apps. For local testing, you can use your Account SID as the username and your Auth token as the password. You can find your Account SID and Auth Token in the [Twilio Console](https://www.twilio.com/console).

Learn more about [Twilio API authentication](/docs/usage/requests-to-twilio).

## Customer support

When you create a port-in request and provide a notification email, Twilio creates a Zendesk ticket for your request. This ticket tracks your port-in request status.

To create the ticket, add the email addresses as values of the [`NotificationEmails`](/docs/phone-numbers/port-in/port-in-request-api) parameter. All included email addresses receive notifications about the port-in request status.

To communicate with Twilio about your request, you can use the ticket or reply to the email to add a new comment.
