# esim profiles — NCM API

Beta. The eSIM profiles held in your account, each carrying its EID, ICCID, carrier, profile name and whether it is currently active. List profiles or fetch one by ID, with a separate /manage collection for provisioning operations. Profiles attach to net devices; esim profile activations is where you switch which one is live.

Base URL: https://api.cradlepointecm.com

## Authentication

This is a v3 endpoint (`/api/v3/` path). Send a Bearer token on every request:

```http
Authorization: Bearer <token>
```

Tokens are generated in the NCM UI under API Keys. The v2 and v3 auth schemes are NOT interchangeable: v2 API-key headers are rejected on v3 endpoints.

### GET /api/v3/beta/esim_profiles

List eSIM profiles

Returns a list of eSIM profiles

> **Beta:** This endpoint is served on a `/beta/` path. Beta endpoints are still evolving and may change without the stability guarantees of GA endpoints.

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| filter[active] | query | string | no |  |
| filter[carrier] | query | string | no |  |
| filter[classification] | query | string | no |  |
| filter[eid] | query | string | no |  |
| filter[iccid] | query | string | no |  |
| filter[net_device] | query | string | no |  |
| filter[nickname] | query | string | no |  |
| filter[profile_name] | query | string | no |  |
| page[after] | query | string | no | Cursor for next page. |
| page[before] | query | string | no | Cursor for prior page. |
| page[size] | query | integer | no | Number of results to return per page. |
| search | query | string | no | The search query param performs a case insensitive substring search on a set of fields. <br> A record matches if any search field matches the search text. <br>If the search param doesn't include a field list, the server selects the fields. <br>Example:<ul><li>Search by substring: `search=substring1,substring2` </li><li>Search by field(s) and substring: `search[fieldA,fieldB]=substring1,substring2,substring3` </li><ul> |

**Example request**

```bash
curl "https://api.cradlepointecm.com/api/v3/beta/esim_profiles" \
  -H "Authorization: Bearer <token>"
```

**Response 200**

```json
{
  "data": [
    {
      "type": "esim_profiles",
      "id": 1,
      "attributes": {
        "created_at": "2024-06-01T10:00:00Z",
        "updated_at": "2024-06-01T11:00:00Z",
        "iccid": "89010000001234567882",
        "eid": "89033023321180000000024642232288",
        "active": 1,
        "profile_name": "AT&T",
        "nickname": "profile1",
        "carrier": "AT&T",
        "classification": "operational"
      },
      "relationships": {
        "net_device": {
          "data": {
            "type": "net_devices",
            "id": "1"
          }
        }
      }
    }
  ]
}
```

### GET /api/v3/beta/esim_profiles/{id}

Retrieve a single eSIM profile

Retrieves a single eSIM profile

> **Beta:** This endpoint is served on a `/beta/` path. Beta endpoints are still evolving and may change without the stability guarantees of GA endpoints.

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| id | path | string | yes |  |

**Example request**

```bash
curl "https://api.cradlepointecm.com/api/v3/beta/esim_profiles/{id}" \
  -H "Authorization: Bearer <token>"
```

**Response 200**

### GET /api/v3/beta/esim_profiles/manage

List eSIM profile management jobs

Returns a list of eSIM profile management jobs

> **Beta:** This endpoint is served on a `/beta/` path. Beta endpoints are still evolving and may change without the stability guarantees of GA endpoints.

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| filter[eid] | query | string | no |  |
| filter[iccid] | query | string | no |  |
| filter[profile] | query | string | no |  |
| page[after] | query | string | no | Cursor for next page. |
| page[before] | query | string | no | Cursor for prior page. |
| page[size] | query | integer | no | Number of results to return per page. |
| search | query | string | no | The search query param performs a case insensitive substring search on a set of fields. <br> A record matches if any search field matches the search text. <br>If the search param doesn't include a field list, the server selects the fields. <br>Example:<ul><li>Search by substring: `search=substring1,substring2` </li><li>Search by field(s) and substring: `search[fieldA,fieldB]=substring1,substring2,substring3` </li><ul> |
| sort | query | array of string (created_at | -created_at | updated_at | -updated_at) | no | Which field to use when ordering the results. |

**Example request**

```bash
curl "https://api.cradlepointecm.com/api/v3/beta/esim_profiles/manage" \
  -H "Authorization: Bearer <token>"
```

**Response 200**

**Response 400** — Bad request

**Response 403** — Request forbidden

### POST /api/v3/beta/esim_profiles/manage

Execute a eSIM profile management job

Creates a eSIM profile management job

> **Beta:** This endpoint is served on a `/beta/` path. Beta endpoints are still evolving and may change without the stability guarantees of GA endpoints.

**Request body**

**Example request**

```bash
curl -X POST "https://api.cradlepointecm.com/api/v3/beta/esim_profiles/manage" \
  -H "Authorization: Bearer <token>"
```

**Response 201**

**Response 400** — Bad request

**Response 403** — Request forbidden

### GET /api/v3/beta/esim_profiles/manage/{id}

Get a eSIM profile management job

Returns a single eSIM profile management job

> **Beta:** This endpoint is served on a `/beta/` path. Beta endpoints are still evolving and may change without the stability guarantees of GA endpoints.

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| id | path | string | yes |  |

**Example request**

```bash
curl "https://api.cradlepointecm.com/api/v3/beta/esim_profiles/manage/{id}" \
  -H "Authorization: Bearer <token>"
```

**Response 200**

**Response 400** — Bad request

**Response 403** — Request forbidden
