# products — NCM API

The catalogue of Cradlepoint device types and models, one object per product. Read-only, a single list call. Routers reference their product, so this is the lookup that turns a device record into a human-readable model name.

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

### GET /products/

Get information about products

Use the GET method on this endpoint to retrieve products records. Use the available filtering fields to narrow or broaden your search.

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| X-ECM-API-ID | header | string | yes | <strong>ECM API app Id</strong> |
| X-ECM-API-KEY | header | string | yes | <strong>ECM API app key</strong> |
| X-CP-API-ID | header | string | yes | <strong>Cradlepoint API app Id</strong> |
| X-CP-API-KEY | header | string | yes | <strong>Cradlepoint API access key</strong> |
| id | query | integer | no | ID of a products record |
| id__in | query | integer | no | Filter for ID contains - a comma-separated list of IDs |
| limit | query | integer | no | Restricts the number of records returned in a recordset to this value. Max value is 500. |
| offset | query | integer | no | Specifies where (an index) in a recordset to begin returning records. |

**Example request**

```bash
curl "https://www.cradlepointecm.com/api/v2/products/" \
  -H "X-CP-API-ID: <cp-api-id>" \
  -H "X-CP-API-KEY: <cp-api-key>" \
  -H "X-ECM-API-ID: <ecm-api-id>" \
  -H "X-ECM-API-KEY: <ecm-api-key>"
```

**Response 200** — Example response.

```json
{
  "data": [
    {
      "device_type": "router",
      "id": "29",
      "name": "AER3150",
      "resource_url": "https://www.cradlepointecm.com/api/v2/products/29/",
      "series": 3
    }
  ],
  "meta": {
    "limit": 20,
    "next": null,
    "offset": 0,
    "previous": null
  }
}
```
