Create endpoints
After registering SIMs, you need to create a virtual representation of the device associated with the SIM. In the emnify REST API, this is called an endpoint.
You can create one endpoint using the Create an Endpoint API call, or multiple endpoints at once (up to 2,000) using the Bulk Create Endpoint API call.
This guide uses the Postman API platform for example purposes. Each time you use the emnify REST API, you must authenticate in Postman.
For more information, see How to use the REST API via Postman on the emnify Developer Blog.
Alternatively, you can create devices via the emnify Portal. For step-by-step instructions, see Create a device in the Portal documentation.
Individual endpoint
Execute this operation sequentially - wait for each request to complete before starting the next. For bulk operations, see Multiple endpoints.
To create a new request in Postman, click +New in the upper left corner.
Name the request Endpoint creation and add it to a new collection called Endpoints.
Then follow these steps to set up your request:
Navigate to the Headers tab.
Insert Content-Type and Authorization as Keys and add the respective Values application/json and Bearer TOKEN.
Replace TOKEN with your auth_token and make sure there’s a non-breaking space between Bearer and the token value.
Go to the Body tab and select raw. Make sure the format is set to JSON. Then, specify the endpoint details.
To get your endpoint online immediately, set the endpoint status to Enabled and activate the SIM card:
Keep in mind that a monthly cost is charged for each activated SIM card, even if the endpoint status is set to Disabled.
If you don’t plan on using the endpoint right away, set the endpoint status to Disabled and don’t activate the SIM:
The activate property defaults to false, so you can also omit it.
A 200 OK response status indicates the successful creation of the endpoint.
Example response body
Multiple endpoints
The Bulk Create Endpoint API call lets you:
- Create up to 2,000 endpoints in a single request
- Process multiple endpoints safely without sequential execution constraints
- Save time compared to creating endpoints individually
If you previously used Postman’s Runner to create endpoints sequentially (calling /api/v1/endpoint repeatedly), we recommend migrating to the bulk endpoint for better efficiency and reliability.
Choose your workflow
Choose the workflow that matches your needs:
- Comfortable with JSON? → Use Workflow A: Send JSON directly
- Have data in spreadsheet, small dataset (fewer than 50 endpoints)? → Use Workflow B: Convert CSV to JSON manually
- Have data in spreadsheet, large dataset (50+ endpoints)? → Use Workflow C: Automate CSV to JSON with Postman Runner
- Need to create more than 2,000 endpoints? → See Create more than 2,000 endpoints
Workflow A: Send JSON directly
Best for: Developers comfortable working directly with JSON.
Set up the bulk request in Postman
Check the rate limits before executing bulk operations.
To create a new request in Postman, click +New in the upper left corner.
Name the request Bulk endpoint creation and add it to your Endpoints collection.
Then follow these steps:
Navigate to the Headers tab and set:
Content-Type:application/jsonAuthorization:Bearer TOKEN(replaceTOKENwith your auth token)
Structure the request body
The bulk endpoint uses a different structure than individual endpoint creation.
Shared properties (service profile, tariff profile, status) are defined once at the root level, and variable endpoint details go in the endpoints array.
Properties within the endpoints array can be adjusted per endpoint.
For example, you can create one endpoint with a SIM attached and one without, have different tags for each endpoint, etc.
To get your endpoints online immediately, set the endpoint status to Enabled ("id": 0) and activate the SIMs:
Keep in mind that a monthly cost is charged for each activated SIM card, even if the endpoint status is set to Disabled.
You can also create endpoints in factory test mode to avoid incurring costs during testing.
If you don’t plan on using the endpoints right away, set the endpoint status to Disabled ("id": 1) and don’t activate the SIMs:
The activate property defaults to false, so you can omit it.
To make your request reusable, use Postman collection variables for shared properties like service_profile_id and tariff_profile_id.
Execute the bulk request
Verify your JSON structure:
- Shared properties are at the root level
- Each endpoint in the
endpointsarray has a uniquesim.id - If provided,
imeivalues are unique across all endpoints
The bulk endpoint enforces uniqueness for sim.id and imei values.
If any duplicates are found, the entire bulk request fails.
Review the error response to identify and correct the duplicate values before retrying.
A 201 CREATED response indicates successful creation of all endpoints.
The response body contains an array with details for each created endpoint.
Workflow B: Convert CSV to JSON manually
Best for: Users with endpoint data in spreadsheets who have a small dataset (fewer than 20 endpoints) and prefer manual conversion.
Organize data in a CSV file
To organize your data in a CSV file, create a table in a spreadsheet software (like Excel or Google Sheets) that includes the necessary endpoint details:
In the first row, insert the properties as columns.
Shared properties (same for all endpoints in this batch):
service_profile_idtariff_profile_idstatus_id(0 = Enabled, 1 = Disabled)
Variable properties (unique to each endpoint):
nametagsimeiimei_locksimip_address
Optional properties like tags and imei can be left empty if not needed.
See the API reference for requirements and property details.
You can include up to 2,000 endpoints in a single bulk request. If you have more, split them into multiple CSV files.
Map CSV columns to the JSON body
Since the bulk endpoint only accepts JSON, you need to convert your CSV data into the required JSON format.
Example mapping
The following example illustrates how to convert a single CSV row into the corresponding JSON structure.
CSV row:
Maps to JSON:
Send the request
After manually converting your CSV data to JSON:
- Set up the bulk request in Postman following Workflow A: Set up the bulk request
- Paste your converted JSON into the request body
- Verify the JSON structure (ensure unique
sim.idandimeivalues) - Click Send to execute the request
A 201 CREATED response indicates successful creation of all endpoints.
Workflow C: Automate CSV to JSON with Postman Runner
Best for: Users with endpoint data in CSV files and large datasets (20+ endpoints) who want to automate the conversion process.
Prepare the CSV file
Organize your CSV file following the structure in Workflow B: Organize data in a CSV file. This workflow automates the conversion to JSON using Postman Runner, saving time for large datasets.
Create the collector request
To automate CSV to JSON conversion, create two requests in the same collection/folder and run them via Runner with a CSV data file.
Configure the bulk request
Name the request to match the setNextRequest value defined in the collector script.
The name must match the value used in the collector script.
For example, the collector script in this guide defines postman.setNextRequest('Bulk endpoint creation'), meaning the request name must be Bulk endpoint creation.
In Headers, set:
- Key:
Content-Type| Value:application/json - Key:
Authorization| Value:Bearer TOKEN(replaceTOKENwith yourauth_token)
Run the workflow in Runner
Select the collection or folder that contains both requests:
Bulk CSV — Collect rowsBulk endpoint creation
The order matters. The collector request must run first.
The Runner executes each CSV row through the collector request, building an array of endpoints. On the final row, it triggers the bulk request which sends all endpoints in a single API call.
The script builds the bulk request automatically from your CSV data.
Create more than 2,000 endpoints
If you need to create more than 2,000 endpoints: