wherever SIM GraphQL API Reference
Welcome to the wherever SIM GraphQL API reference! Everything you see here enables you to manage your wherever SIM Link+ SIM cards.
Terms of Service
API Endpoints
https://graphql.api.whereversim.de/graphql
Headers
# The API token
Authorization: <YOUR_TOKEN_HERE>
What is GraphQL?
GraphQL is an Open-Source data query and manipulation language for APIs. Like a REST API, it is based on HTTP, but it comes with a few features that eliminate the following challenges:
- Overfetching: Downloading superfluous data
- Underfetching and the n+1 problem
- Fixed data structure defined by the server
- No strong typing
- Polling for updates
Visit graphql.org to learn more about the basics of GraphQL.
Example query with curl
In this example we want to get a list of SIM cards from our inventory. We need the following items:
- ICCID
- IMEI
- Monthly Data Volume
We want the result sorted by Monthly Data Volume in descending order. The result should be limited to 3 items.
curl command line example:
curl -g \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY_HERE" \
-d '{
"variables": {
"order": { "monthly_data_volume": "desc" },
"limit": 3
},
"query": "query ListSims($filter: SimFilterInput, $order: SimListOrder, $limit: Int!, $nextToken: String) { listSims(filter: $filter, order: $order, limit: $limit, nextToken: $nextToken) { items { iccid imei monthly_data_volume } }}"
}' \
https://graphql.api.whereversim.de/graphql
JSON based response:
{
"data": {
"listSims": {
"items": [
{
"iccid": "9876543210123456789",
"imei": "869876543210123",
"monthly_data_volume": 6012954214
},
{
"iccid": "9876543211234567890",
"imei": "869876543211234",
"monthly_data_volume": 501219328
},
{
"iccid": "9876543212345678901",
"imei": "869876543212341",
"monthly_data_volume": 31457280
}
]
}
}
}
List of possible SIM status
The following table shows a list of the possible SIM status:
Numeric representation | Name | Description |
---|---|---|
1 | No Status | Status of SIM is unknown |
2 | Activated | SIM is activated |
3 | Issued | SIM is issued (delivery condition) |
4 | Deleted | SIM is deleted |
5 | Deactivated | SIM is deactivated |
6 | Test Ready | SIM is test ready and switches to Activated once the test data, SMS or voice volume is exceeded |
7 | Retired | SIM is retired. Cannot be activated again |
8 | Activation ready | SIM is ready for activation |
9 | Inventory | SIM is in inventory |
10 | Replaced | SIM is replaced |
11 | Activation Pendant | SIM activation is pendant |
12 | Suspended | SIM is suspended |
13 | Waiting for Activation | SIM is in transition to Activated status |
14 | Waiting for Deactivation | SIM is in transition to Deactivated status |
15 | Test Usage Exhausted | SIM is deactivated because of exhausted test usage |
16 | Data Usage Exhausted | SIM is deactivated because of exhausted data usage |
17 | Waiting for Activation Ready | SIM is in transition to Activation Ready status |
18 | SMS Limit exceeded | SIM is deactivated because of exceeded SMS limit |
19 | Voice Limit exceeded | SIM is deactivated because of exceeded voice limit |
20 | IMEI unauthorized | SIM is deactivated because the IMEI of the current device does not match the one configured in the IMEI lock |
List of provider ids
The following table shows a list of the provider / product ids:
ID | provider / product |
---|---|
1 | connect+ |
2 | tech+ pro |
3 | tech+ |
4 | data+ |
5 | link+ |
List of SIM event types
The following table shows a list of the possible SIM event types:
event type | description |
---|---|
consumption | Consumption of data, sms or voice for the current day and month |
lifecycle | Changes of the SIM status |
presence | Data connection established or disconnected |
cancelLocation | Cancel location send |
imeiLockSwitch | IMEI lock enabled/disabled/auto-detect switch |
imeiUnauthorized | SIM card has been used with an unauthorized IMEI |
usageNotification | Usage notification send |
The nextToken principle
The nextToken principle is used when a query can return many results. One example of this is the listSims query. This query requires a limit to be set for the maximum number of results per query. If there are more results than the limit, a nextToken is returned if queried. This nextToken can be used for another call of listSims to get the more results. If there are no more results, the nextToken is null.
Let's look at an example. Let's assume we have 9 SIM cards in our inventory and want to query the ICCIDs of these 9 cards in ascending order. The query is limited to five results, so two queries are necessary to get all results.
Our first query looks like this:
{
"variables": {
"order": { "iccid": "asc" },
"limit": 5,
"nextToken": ""
},
"query": "query ListSims($order: SimListOrder, $limit: Int!, $nextToken: String) { listSims(order: $order, limit: $limit, nextToken: $nextToken) { items { iccid } nextToken }}"
}
The result looks like this:
{
"data": {
"listSims": {
"items": [
{
"iccid": "9876543200012345601"
},
{
"iccid": "9876543200012345602"
},
{
"iccid": "9876543200012345603"
},
{
"iccid": "9876543200012345604"
},
{
"iccid": "9876543200012345605"
}
],
"nextToken": "eyJuZXh0X29mZnNldCI6NX0="
}
}
}
We receive 5 of 9 items. To get the next 5 results we need to set the nextToken eyJuZXh0X29mZnNldCI6NX0= in our next query.
{
"variables": {
"order": { "iccid": "asc" },
"limit": 5,
"nextToken": "eyJuZXh0X29mZnNldCI6NX0="
},
"query": "query ListSims($order: SimListOrder, $limit: Int!, $nextToken: String) { listSims(order: $order, limit: $limit, nextToken: $nextToken) { items { iccid } nextToken }}"
}
Our second result looks like this:
{
"data": {
"listSims": {
"items": [
{
"iccid": "9876543200012345606"
},
{
"iccid": "9876543200012345607"
},
{
"iccid": "9876543200012345608"
},
{
"iccid": "9876543200012345609"
}
],
"nextToken": null
}
}
}
We got the last 4 items and the nextToken is null which means there are no more items to fetch.
Batch Jobs
Batch jobs can be started by selecting affected SIM cards through a SIM filter. If no SIM card filter is provided, all SIM cards will be selected for the batch job. Additionally a exclude list can be sent with the request starting a batch job. The exclude list is only applied when no include list is provided. The include list has priority over filter and exclude list.
The maximum size for include and exclude filter is 1000 items.
So the following scenarios will be available:
- create a batch job without SIM filter and no exclude list: all SIM cards of a customer are affected by the batch job
- create a batch job without SIM filter and with exclude list: all SIM cards without the given excluded SIM cards are affected by the batch job
- create a batch job with SIM filter: only the filtered SIM cards are affected by the batch job
- create a batch job with SIM filter and exclude list: all filtered SIM cards without the excluded SIM cards are processed
- create a batch job with include list: only the supplied included SIM cards are affected
Depending on the number of affected SIM cards the batch job may start delayed.
Some examples:
Start a batch job for all SIM cards, changing the monthly data limit to "unlimited":
{
"variables": {
"p1": { "monthly_data_limit": 0 }
},
"query": "mutation startBatchJob($p1: BatchJobParametersInput!) {startBatchJob(params: $p1) {batchJobId}}"
}
Start a batch job for two specific SIM cards, changing the monthly data-, sms mo-, sms mt- and voice-limit to "unlimited":
{
"variables": {
"p2": {
"includeIccIds": [
"1234567890123456789",
"1234567890123456788"
],
"monthly_data_limit": 0,
"monthly_sms_mo_limit": 0,
"monthly_sms_mt_limit": 0,
"monthly_voice_mo_limit": 0
}
},
},
"query": "mutation startBatchJob($p2: BatchJobParametersInput!) {startBatchJob(params: $p2) {batchJobId}}"
}
Start a batch job with all SIMs in status "Activated" but exclude 2 SIM cards, changing the voice limit to "unlimited":
{
"variables": {
"p3": {
"excludeIccIds": [
"9876543210987654321",
"9876543210987654322"
],
"simFilter": {
"statusid": {
"in": [
2
]
}
},
"monthly_voice_mo_limit": 0
}
},
"query": "mutation startBatchJob($p3: BatchJobParametersInput!) {startBatchJob(params: $p3) {batchJobId}}"
}
List of batch job failure codes
The following table shows a list of the possible error codes when a batch job is executed:
Error code | Description |
---|---|
1 | StatusID has not been changed because it was set already to the desired one |
2 | Status could not be changed at provider |
3 | General error while setting SIM status |
4 | Status transition not allowed |
100 | Custom field 1 has not been changed because it was already set to the desired one |
101 | Error writing new custom field 1 value to database |
102 | General error while setting custom field 1 |
200 | Data limit not changed because it was already set to the desired one |
201 | General error while setting data limit |
300 | SMS MO Limit not changed because it was already set to the desired one |
301 | General error while setting SMS MO limit |
400 | SMS MT Limit not changed because it was already set to the desired one |
401 | General error while setting SMS MT limit |
500 | Voice MO Limit has not changed because it was already set to the desired one |
501 | General error while setting voice MO limit |
600 | End customer label not been changed because it was already set to the desired one |
601 | Error writing new end customer label to database |
602 | General error while writing end customer label |
700 | IMEI lock not changed because already set to desired one |
701 | General error while writing IMEI lock |
Queries
getAvailableStatusTransitions
Description
Get a list of available status transitions for a SIM.
Transitioning from one to another Sim status is not possible in every situation. This Query returns possible transitions. See List of possible SIM status.
Response
Returns [SimTransition]!
Example
Query
query GetAvailableStatusTransitions {
getAvailableStatusTransitions {
fromstatusid
tostatusid
providerid
}
}
Response
{
"data": {
"getAvailableStatusTransitions": [
{"fromstatusid": 42, "tostatusid": 42, "providerid": 42}
]
}
}
getBatchJob
Description
Get a specific batch job's definition and basic information of that batch job.
Response
Returns a BatchJob!
Arguments
Name | Description |
---|---|
batchJobId - Long!
|
(required!) The specific batch job id |
Example
Query
query GetBatchJob($batchJobId: Long!) {
getBatchJob(batchJobId: $batchJobId) {
batchJobId
startedAt
finishedAt
startedBy {
... on UserAccount {
...UserAccountFragment
}
... on DeletedUserAccount {
...DeletedUserAccountFragment
}
... on ApiKey {
...ApiKeyFragment
}
... on DeletedApiKey {
...DeletedApiKeyFragment
}
}
statusDetails {
currentStatus
totalSims
failedSims
successfulSims
failures {
...BatchErrorCountsFragment
}
}
changes {
statusid
custom_field_1
monthly_data_limit
monthly_sms_mo_limit
monthly_sms_mt_limit
monthly_voice_mo_limit
end_customer_label
imei_lock
}
customerid
}
}
Variables
{"batchJobId": 1707747614}
Response
{
"data": {
"getBatchJob": {
"batchJobId": 1707747614,
"startedAt": 1707747614,
"finishedAt": 1707747614,
"startedBy": UserAccount,
"statusDetails": BatchJobStatusDetails,
"changes": BatchJobChanges,
"customerid": 42
}
}
}
getBillingDataDownloadLink
Description
Returns a download link for the specified billing data cycle
Response
Returns a BillingDataDownloadLink!
Example
Query
query GetBillingDataDownloadLink(
$year: Int!,
$month: Int!
) {
getBillingDataDownloadLink(
year: $year,
month: $month
) {
link
}
}
Variables
{"year": 42, "month": 42}
Response
{
"data": {
"getBillingDataDownloadLink": {
"link": "xyz789"
}
}
}
getCustomerData
Description
Get data of customer
Response
Returns a Customer!
Example
Query
query GetCustomerData {
getCustomerData {
customerid
current_name
is_test_customer
}
}
Response
{
"data": {
"getCustomerData": {
"customerid": 42,
"current_name": "xyz789",
"is_test_customer": false
}
}
}
getDataConsumptionReport
Description
Query to get data consumption on a daily basis. A filter needs to get applied with this query.
Response
Returns [DataConsumption]
Arguments
Name | Description |
---|---|
iccid - ID!
|
(required!) ICCID of the SIM card to get the report for |
filterOptions - DataConsumptionFilterInput!
|
(required!) A filter that has to be applied. A maximum of 3 months back is possible. If a start date more than 3 months back is specified the maximum last 3 months are selected for query. |
Example
Query
query GetDataConsumptionReport(
$iccid: ID!,
$filterOptions: DataConsumptionFilterInput!
) {
getDataConsumptionReport(
iccid: $iccid,
filterOptions: $filterOptions
) {
day
bytes
}
}
Variables
{
"iccid": "9876543212345678901",
"filterOptions": {"start": "2020-01-01", "stop": "2020-01-31"}
}
Response
{
"data": {
"getDataConsumptionReport": [
{"day": "xyz789", "bytes": 1707747614}
]
}
}
getStatistics
Description
Returns a group of statistics like number of active SIMs, total SIM cards and current monthly usage (Total).
Response
Returns a Statistic!
Arguments
Name | Description |
---|---|
customerid - Int
|
(optional) The specific customer to get the api keys for. Can only be used by admin accounts. |
Example
Query
query GetStatistics($customerid: Int) {
getStatistics(customerid: $customerid) {
totalSimCards
activeSimCards
currentMonthlyDataUsage
previousMonthDataUsage
}
}
Variables
{"customerid": 42}
Response
{
"data": {
"getStatistics": {
"totalSimCards": 42,
"activeSimCards": 42,
"currentMonthlyDataUsage": 1707747614,
"previousMonthDataUsage": 1707747614
}
}
}
listApiKeys
Description
Returns a list of API keys registered for the account's associated customer id
Response
Returns [ApiKey]!
Example
Query
query ListApiKeys {
listApiKeys {
keyid
key
comment
created
lastused
ipAddressAllowlist
expiresAtMs
}
}
Response
{
"data": {
"listApiKeys": [
{
"keyid": 42,
"key": "xyz789",
"comment": "abc123",
"created": 1707747614,
"lastused": 1707747614,
"ipAddressAllowlist": ["xyz789"],
"expiresAtMs": 1707747614
}
]
}
}
listBatchJobDetails
Description
Lists a batch job's details.
Response
Returns a BatchJobDetail!
Arguments
Name | Description |
---|---|
batchJobId - Long!
|
(required!) The batch job id to get the details for |
filter - BatchJobDetailsFilterInput
|
(optional) Criteria to filter the result |
order - BatchJobDetailsOrderInput
|
(optional) Criteria to order the result |
limit - Int
|
(optional) The max number of batch job details being returned by the query |
nextToken - String
|
(optional) The optional nextToken of a previous request (see BatchJobDetail) |
Example
Query
query ListBatchJobDetails(
$batchJobId: Long!,
$filter: BatchJobDetailsFilterInput,
$order: BatchJobDetailsOrderInput,
$limit: Int,
$nextToken: String
) {
listBatchJobDetails(
batchJobId: $batchJobId,
filter: $filter,
order: $order,
limit: $limit,
nextToken: $nextToken
) {
simList {
iccid
custom_field_1
details {
...BatchJobSimDetailChangeFragment
}
}
nextToken
totalCount
}
}
Variables
{
"batchJobId": 1707747614,
"filter": BatchJobDetailsFilterInput,
"order": BatchJobDetailsOrderInput,
"limit": 42,
"nextToken": null
}
Response
{
"data": {
"listBatchJobDetails": {
"simList": [BatchJobSimDetail],
"nextToken": "xyz789",
"totalCount": 1707747614
}
}
}
listBatchJobs
Description
Returns a list of all batch jobs sorted by start date (descending). The information provided is the batch job's definition and some basic information for each batch job.
Response
Returns a BatchJobList!
Arguments
Name | Description |
---|---|
filter - ListBatchJobsFilter
|
(optional) A filter that can be applied to the query. |
limit - Int
|
(optional) The max number of batch jobs being returned by the query |
nextToken - String
|
(optional) The optional nextToken of a previous request (see BatchJobList) |
Example
Query
query ListBatchJobs(
$filter: ListBatchJobsFilter,
$limit: Int,
$nextToken: String
) {
listBatchJobs(
filter: $filter,
limit: $limit,
nextToken: $nextToken
) {
items {
batchJobId
startedAt
finishedAt
startedBy {
... on UserAccount {
...UserAccountFragment
}
... on DeletedUserAccount {
...DeletedUserAccountFragment
}
... on ApiKey {
...ApiKeyFragment
}
... on DeletedApiKey {
...DeletedApiKeyFragment
}
}
statusDetails {
...BatchJobStatusDetailsFragment
}
changes {
...BatchJobChangesFragment
}
customerid
}
nextToken
totalCount
}
}
Variables
{
"filter": ListBatchJobsFilter,
"limit": 42,
"nextToken": null
}
Response
{
"data": {
"listBatchJobs": {
"items": [BatchJob],
"nextToken": "abc123",
"totalCount": 1707747614
}
}
}
listBillingData
Description
Lists available billing data
Response
Returns a BillingDataList
Arguments
Name | Description |
---|---|
limit - Int!
|
(required!) Limits the number of returned results. The minimum is 1 the maximum is 100. |
nextToken - String
|
(optional) The nextToken of a previous request (see BillingDataList) |
Example
Query
query ListBillingData(
$limit: Int!,
$nextToken: String
) {
listBillingData(
limit: $limit,
nextToken: $nextToken
) {
items {
year
month
data_volume
invoice_amount
currency
}
nextToken
}
}
Variables
{"limit": 42, "nextToken": null}
Response
{
"data": {
"listBillingData": {
"items": [BillingData],
"nextToken": "xyz789"
}
}
}
listEndCustomerLabels
Description
List available (unique) labels for all SIM cards
Response
Returns an EndCustomerLabels
Arguments
Name | Description |
---|---|
filter - ListEndCustomerLabelsFilterInput
|
(optional) Optional filter criteria which can be used to filter the returned labels. |
limit - Int!
|
(required!) Limit the number of results returned. The minimum is 1 the maximum is 100. |
nextToken - String
|
(optional) The nextToken of a previous request (see EndCustomerLabels) |
Example
Query
query ListEndCustomerLabels(
$filter: ListEndCustomerLabelsFilterInput,
$limit: Int!,
$nextToken: String
) {
listEndCustomerLabels(
filter: $filter,
limit: $limit,
nextToken: $nextToken
) {
items {
name
}
nextToken
}
}
Variables
{
"filter": {"name": {"beginsWith": "MyEnd", "contains": "EndCustomer"}},
"limit": 42,
"nextToken": null
}
Response
{
"data": {
"listEndCustomerLabels": {
"items": [EndCustomerLabel],
"nextToken": "abc123"
}
}
}
listSimEvents
Description
Returns events of a SIM card
Response
Returns a SimEvents
Arguments
Name | Description |
---|---|
iccid - ID!
|
(required!) ICCID of the SIM card |
limit - Int!
|
(required!) Limit the number of results returned. The minimum is 1 the maximum is 100. |
nextToken - String
|
(optional) The nextToken of a previous request (see SimEvents) |
filterOptions - SimEventFilterInput
|
(optional) Criteria to filter the result |
order - SimEventOrder
|
(optional) Criteria to order the result |
Example
Query
query ListSimEvents(
$iccid: ID!,
$limit: Int!,
$nextToken: String,
$filterOptions: SimEventFilterInput,
$order: SimEventOrder
) {
listSimEvents(
iccid: $iccid,
limit: $limit,
nextToken: $nextToken,
filterOptions: $filterOptions,
order: $order
) {
items {
id
iccid
timestampMilliseconds
type
details
jsonData
}
nextToken
totalEvents
}
}
Variables
{
"iccid": "9876543212345678901",
"limit": 42,
"nextToken": null,
"filterOptions": {"type": "presence", "timestampMilliseconds": 1744366387096},
"order": SimEventOrder
}
Response
{
"data": {
"listSimEvents": {
"items": [
{
"id": 42,
"iccid": "9876543212345678901",
"timestampMilliseconds": 1744366387096,
"type": "presence",
"details": "Status: GPRS registered, Event: GPRS network connection, Operator: Telefonica O2 Germany,DE(26203), IP: 10.49.53.50",
"jsonData": "{\"presenceLevel\":\"GPRS\",\"presenceEvent\":\"GPRS_UP\",\"operator\":\"Telefonica O2 Germany\",\"nwc\":\"26203\",\"ip\":\"10.49.53.50\",\"countryCode\":\"DE\"}"
}
],
"nextToken": "abc123",
"totalEvents": 1707747614
}
}
}
listSims
Description
Get a list of available SIM cards.
Hint: It might be necessary to call listSims multiple times with different nextTokens (see SimList) in order to get all SIM cards.
The returned SimList can be pre filtered and/or pre ordered. Additionally number of returned items can be limited.
The returned SimList can be minimized by given a quick search input to get only the searched SIM list
Response
Returns a SimList
Arguments
Name | Description |
---|---|
filter - SimFilterInput
|
(optional) Criteria to filter the result |
order - SimListOrder
|
(optional) Criteria to order the result |
limit - Int!
|
(required!) Limit the number of results returned. The minimum is 1 the maximum is 100. |
quickSearch - String
|
(optional) Criteria to full text search on ICCID, Device Name, MSISDN and IMEI fields |
nextToken - String
|
(optional) The nextToken of a previous request (see SimList) |
Example
Query
query ListSims(
$filter: SimFilterInput,
$order: SimListOrder,
$limit: Int!,
$quickSearch: String,
$nextToken: String
) {
listSims(
filter: $filter,
order: $order,
limit: $limit,
quickSearch: $quickSearch,
nextToken: $nextToken
) {
items {
iccid
statusid
providerid
activation_timestamp
imei
imsi
msisdn
in_session_since
monthly_data_volume
monthly_data_limit
monthly_sms_mo
monthly_sms_mt
monthly_sms_mo_limit
monthly_sms_mt_limit
monthly_voice_mo
monthly_voice_mo_limit
custom_field_1
previous_month_data_volume
nwc
apn
ip_address
end_customer_label {
...EndCustomerLabelFragment
}
imei_lock {
...ImeiLockFragment
}
}
nextToken
totalSims
}
}
Variables
{
"filter": {"iccid": {"eq": "9876543212345678901"}},
"order": {"iccid": "asc"},
"limit": 42,
"quickSearch": "xyz789",
"nextToken": null
}
Response
{
"data": {
"listSims": {
"items": [SIM],
"nextToken": "abc123",
"totalSims": 1707747614
}
}
}
listUserAccounts
Description
List user accounts
Response
Returns [UserAccount]!
Arguments
Name | Description |
---|---|
customerid - Int
|
(optional) List User Accounts of the provided customerid |
Example
Query
query ListUserAccounts($customerid: Int) {
listUserAccounts(customerid: $customerid) {
id
email
status
groups
zoneinfo
locale
}
}
Variables
{"customerid": 42}
Response
{
"data": {
"listUserAccounts": [
{
"id": "abc123",
"email": "abc123",
"status": "abc123",
"groups": ["abc123"],
"zoneinfo": "xyz789",
"locale": "xyz789"
}
]
}
}
Mutations
cancelBatchJob
Description
Stops a running batch job. Stopping is an asynchronous task and it may take a little until the batch job is finally stopped.
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
batchJobId - Long!
|
(required!) The ID of the batch job to be cancelled |
Example
Query
mutation CancelBatchJob($batchJobId: Long!) {
cancelBatchJob(batchJobId: $batchJobId)
}
Variables
{"batchJobId": 1707747614}
Response
{"data": {"cancelBatchJob": false}}
cancelLocation
Description
Sends a cancel location request to the desired SIM card - issuing a reconnect to the network. This may help to solve connection issues. The connection restart only happens when the device receives the request properly.
A cancel location request can only be issued once for an ICC ID in a specific timeframe. The response contains a unix timestamp which defines when the next cancel location request can be sent again.
Response
Returns a CancelLocation!
Example
Query
mutation CancelLocation($iccid: ID!) {
cancelLocation(iccid: $iccid) {
sent
blockedUntil
}
}
Variables
{"iccid": "9876543212345678901"}
Response
{"data": {"cancelLocation": {"sent": true, "blockedUntil": 1707747614}}}
createApiKey
Description
Create a new API key.
Important: The response apikey is clear text and cannot be returned in clear text any further. The caller of this mutation needs to store the generated API key as it can not get unencrypted later!
Response
Returns an ApiKey
Arguments
Name | Description |
---|---|
comment - String
|
(optional) Comment for the API Key |
ipAddressAllowlist - [String]
|
(optional) Set an IP address allow list for source IP based access control when using the API key. IPv4 or IPv6 addresses with or without CIDRs are allowed. An empty list will delete the allow list and therefore allow all IP addresses to access the API with the given API key. |
expiresAtMs - Long
|
(optional) Set the validity timestamp of the given API key as a unix timestamp in milliseconds. To set unlimited validity set this parameter to -1. The validity timestamp can not be changed afterwards! |
Example
Query
mutation CreateApiKey(
$comment: String,
$ipAddressAllowlist: [String],
$expiresAtMs: Long
) {
createApiKey(
comment: $comment,
ipAddressAllowlist: $ipAddressAllowlist,
expiresAtMs: $expiresAtMs
) {
keyid
key
comment
created
lastused
ipAddressAllowlist
expiresAtMs
}
}
Variables
{
"comment": "xyz789",
"ipAddressAllowlist": ["xyz789"],
"expiresAtMs": 1707747614
}
Response
{
"data": {
"createApiKey": {
"keyid": 42,
"key": "xyz789",
"comment": "abc123",
"created": 1707747614,
"lastused": 1707747614,
"ipAddressAllowlist": ["abc123"],
"expiresAtMs": 1707747614
}
}
}
createUserAccount
Description
Creates a new user account to the current company of the logged in user. If a customerid is provided, then the user will be created there (if permitted). The email address must be valid and the password will be sent to the email address.
Response
Returns a UserAccount!
Arguments
Name | Description |
---|---|
email - String!
|
(required!) The email address of the user |
groups - [String]
|
(optional) Permission groups, see UserAccount |
zoneinfo - String!
|
(required!) Timezone of the user (e.g. Europe/Berlin) |
locale - String!
|
(required!) Defines the language of the portal (de or en) |
Example
Query
mutation CreateUserAccount(
$email: String!,
$groups: [String],
$zoneinfo: String!,
$locale: String!
) {
createUserAccount(
email: $email,
groups: $groups,
zoneinfo: $zoneinfo,
locale: $locale
) {
id
email
status
groups
zoneinfo
locale
}
}
Variables
{
"email": "xyz789",
"groups": ["xyz789"],
"zoneinfo": "abc123",
"locale": "xyz789"
}
Response
{
"data": {
"createUserAccount": {
"id": "abc123",
"email": "xyz789",
"status": "abc123",
"groups": ["xyz789"],
"zoneinfo": "abc123",
"locale": "xyz789"
}
}
}
deleteApiKey
Description
Delete an API key with the given id of the key. When the operation is successful the original api key entry is returned, which has been deleted.
Response
Returns an ApiKey
Arguments
Name | Description |
---|---|
keyid - ID!
|
(required!) The ID of the API key to delete. The id can be queried with listApiKeys |
Example
Query
mutation DeleteApiKey($keyid: ID!) {
deleteApiKey(keyid: $keyid) {
keyid
key
comment
created
lastused
ipAddressAllowlist
expiresAtMs
}
}
Variables
{"keyid": "4"}
Response
{
"data": {
"deleteApiKey": {
"keyid": 42,
"key": "abc123",
"comment": "abc123",
"created": 1707747614,
"lastused": 1707747614,
"ipAddressAllowlist": ["xyz789"],
"expiresAtMs": 1707747614
}
}
}
deleteUserAccount
Description
Deletes a user account. The user will be logged out immediately.
Response
Returns a UserAccount!
Arguments
Name | Description |
---|---|
id - String!
|
(required!) Id/UUID of the user to delete. The id is the one returned by listUserAccounts |
Example
Query
mutation DeleteUserAccount($id: String!) {
deleteUserAccount(id: $id) {
id
email
status
groups
zoneinfo
locale
}
}
Variables
{"id": "xyz789"}
Response
{
"data": {
"deleteUserAccount": {
"id": "xyz789",
"email": "xyz789",
"status": "abc123",
"groups": ["abc123"],
"zoneinfo": "abc123",
"locale": "abc123"
}
}
}
resendUserAccountInvite
Description
Resends the invitation e-mail for a specific user. This mutation is only allowed when the given user account is in status 'InvitationSent' or 'InvitationExpired'.
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
id - String!
|
(required!) Id/UUID of the user to re-invite. The id is the one returned by listUserAccounts |
Example
Query
mutation ResendUserAccountInvite($id: String!) {
resendUserAccountInvite(id: $id)
}
Variables
{"id": "abc123"}
Response
{"data": {"resendUserAccountInvite": false}}
sendSms
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
iccid - ID!
|
(required!) The iccid of the SIM card |
text - String!
|
(required!) The text/data that should be send via SMS |
originator - String
|
(optional) The originator which is set for the SMS. The originator can be a phone number. Please note that the originator must be registered by our support team for you beforehand. |
Example
Query
mutation SendSms(
$iccid: ID!,
$text: String!,
$originator: String
) {
sendSms(
iccid: $iccid,
text: $text,
originator: $originator
)
}
Variables
{
"iccid": "9876543212345678901",
"text": "abc123",
"originator": "abc123"
}
Response
{"data": {"sendSms": false}}
startBatchJob
Description
Creates and starts a batch job as soon as possible. Returns a batch job id for reference of the batch job. See Batch Jobs for more details on batch jobs.
Response
Returns a CreateBatchJobResult!
Arguments
Name | Description |
---|---|
params - BatchJobParametersInput!
|
(required!) The parameters to apply for the batch job. The object must contain at least one property to be changed. |
Example
Query
mutation StartBatchJob($params: BatchJobParametersInput!) {
startBatchJob(params: $params) {
batchJobId
}
}
Variables
{"params": BatchJobParametersInput}
Response
{"data": {"startBatchJob": {"batchJobId": 1707747614}}}
updateApiKey
Description
Update an API key. If the update was successful the new ApiKey entry will be returned.
Response
Returns an ApiKey
Arguments
Name | Description |
---|---|
keyid - ID!
|
(required!) The ID of the API key to update. The id can be queried with listApiKeys |
comment - String
|
(optional) The comment to update to. If the comment is NULL the comment will be reset to NULL. If parameter is not provided the comment will also be reset to NULL. |
ipAddressAllowlist - [String]
|
(optional) Set an IP address allow list for source IP based access control when using the API key. IPv4 or IPv6 addresses with or without CIDRs are allowed. An empty list will delete the allow list and therefore allow all IP addresses to access the API with the given API key. |
Example
Query
mutation UpdateApiKey(
$keyid: ID!,
$comment: String,
$ipAddressAllowlist: [String]
) {
updateApiKey(
keyid: $keyid,
comment: $comment,
ipAddressAllowlist: $ipAddressAllowlist
) {
keyid
key
comment
created
lastused
ipAddressAllowlist
expiresAtMs
}
}
Variables
{
"keyid": 4,
"comment": "abc123",
"ipAddressAllowlist": ["xyz789"]
}
Response
{
"data": {
"updateApiKey": {
"keyid": 42,
"key": "abc123",
"comment": "abc123",
"created": 1707747614,
"lastused": 1707747614,
"ipAddressAllowlist": ["abc123"],
"expiresAtMs": 1707747614
}
}
}
updateSim
Response
Returns an SIM!
Arguments
Name | Description |
---|---|
iccid - ID!
|
(required!) The iccid of the SIM card |
statusid - Int
|
(optional) Sets status the SIM should be in. See List of possible SIM status |
monthly_data_limit - Long
|
(optional) Sets the monthly data limit in bytes |
custom_field_1 - String
|
(optional) Customer defined field like device name or serial number |
monthly_sms_mo_limit - Long
|
(optional) The monthly SMS MO limit for this SIM card. NULL means no limit |
monthly_sms_mt_limit - Long
|
(optional) The monthly SMS MT limit for this SIM card. NULL means no limit |
monthly_voice_mo_limit - Long
|
(optional) The monthly voice mo limit for this SIM card. NULL means no limit |
end_customer_label - EndCustomerLabelInput
|
(optional) The end customer label to be assigned. If this label is not available in the request the label will not get changed. |
imei_lock - ImeiLockInput
|
(optional) Set an optional IMEI lock for the SIM card (used to lock or unlock IMEI on a SIM card). The IMEI lock is not getting changed when this parameter is not available. |
Example
Query
mutation UpdateSim(
$iccid: ID!,
$statusid: Int,
$monthly_data_limit: Long,
$custom_field_1: String,
$monthly_sms_mo_limit: Long,
$monthly_sms_mt_limit: Long,
$monthly_voice_mo_limit: Long,
$end_customer_label: EndCustomerLabelInput,
$imei_lock: ImeiLockInput
) {
updateSim(
iccid: $iccid,
statusid: $statusid,
monthly_data_limit: $monthly_data_limit,
custom_field_1: $custom_field_1,
monthly_sms_mo_limit: $monthly_sms_mo_limit,
monthly_sms_mt_limit: $monthly_sms_mt_limit,
monthly_voice_mo_limit: $monthly_voice_mo_limit,
end_customer_label: $end_customer_label,
imei_lock: $imei_lock
) {
iccid
statusid
providerid
activation_timestamp
imei
imsi
msisdn
in_session_since
monthly_data_volume
monthly_data_limit
monthly_sms_mo
monthly_sms_mt
monthly_sms_mo_limit
monthly_sms_mt_limit
monthly_voice_mo
monthly_voice_mo_limit
custom_field_1
previous_month_data_volume
nwc
apn
ip_address
end_customer_label {
name
}
imei_lock {
imei
enabled
}
}
}
Variables
{
"iccid": "9876543212345678901",
"statusid": 42,
"monthly_data_limit": 1707747614,
"custom_field_1": "abc123",
"monthly_sms_mo_limit": 1707747614,
"monthly_sms_mt_limit": 1707747614,
"monthly_voice_mo_limit": 1707747614,
"end_customer_label": EndCustomerLabelInput,
"imei_lock": {"lock": true, "imei": "308044942199875"}
}
Response
{
"data": {
"updateSim": {
"iccid": "4",
"statusid": 42,
"providerid": 42,
"activation_timestamp": 1707747614,
"imei": "abc123",
"imsi": "abc123",
"msisdn": "abc123",
"in_session_since": 1707747614,
"monthly_data_volume": 1707747614,
"monthly_data_limit": 1707747614,
"monthly_sms_mo": 42,
"monthly_sms_mt": 42,
"monthly_sms_mo_limit": 42,
"monthly_sms_mt_limit": 42,
"monthly_voice_mo": 1707747614,
"monthly_voice_mo_limit": 1707747614,
"custom_field_1": "xyz789",
"previous_month_data_volume": 1707747614,
"nwc": "xyz789",
"apn": "xyz789",
"ip_address": "abc123",
"end_customer_label": EndCustomerLabel,
"imei_lock": ImeiLock
}
}
}
updateUserAccount
Description
Update a user account
Response
Returns a UserAccount!
Arguments
Name | Description |
---|---|
id - String!
|
(required!) Id/UUID of the user to update. The id is the one returned by listUserAccounts |
groups - [String]
|
(optional) Permission groups, see UserAccount |
zoneinfo - String
|
(optional) Timezone of the user (e.g. Europe/Berlin) |
locale - String
|
(optional) Defines the language of the portal (de or en) |
Example
Query
mutation UpdateUserAccount(
$id: String!,
$groups: [String],
$zoneinfo: String,
$locale: String
) {
updateUserAccount(
id: $id,
groups: $groups,
zoneinfo: $zoneinfo,
locale: $locale
) {
id
email
status
groups
zoneinfo
locale
}
}
Variables
{
"id": "abc123",
"groups": ["abc123"],
"zoneinfo": "xyz789",
"locale": "abc123"
}
Response
{
"data": {
"updateUserAccount": {
"id": "abc123",
"email": "xyz789",
"status": "abc123",
"groups": ["abc123"],
"zoneinfo": "abc123",
"locale": "xyz789"
}
}
}
Subscriptions
updatedBatchJob
Description
This subscription is to track the progress of BatchJobs.
Response
Returns a BatchJob
Example
Query
subscription UpdatedBatchJob($customerid: Int) {
updatedBatchJob(customerid: $customerid) {
batchJobId
startedAt
finishedAt
startedBy {
... on UserAccount {
...UserAccountFragment
}
... on DeletedUserAccount {
...DeletedUserAccountFragment
}
... on ApiKey {
...ApiKeyFragment
}
... on DeletedApiKey {
...DeletedApiKeyFragment
}
}
statusDetails {
currentStatus
totalSims
failedSims
successfulSims
failures {
...BatchErrorCountsFragment
}
}
changes {
statusid
custom_field_1
monthly_data_limit
monthly_sms_mo_limit
monthly_sms_mt_limit
monthly_voice_mo_limit
end_customer_label
imei_lock
}
customerid
}
}
Variables
{"customerid": 42}
Response
{
"data": {
"updatedBatchJob": {
"batchJobId": 1707747614,
"startedAt": 1707747614,
"finishedAt": 1707747614,
"startedBy": UserAccount,
"statusDetails": BatchJobStatusDetails,
"changes": BatchJobChanges,
"customerid": 42
}
}
}
updatedSim
Description
This subscription is called if a SIM is updated.
Response
Returns an SIM
Example
Query
subscription UpdatedSim {
updatedSim {
iccid
statusid
providerid
activation_timestamp
imei
imsi
msisdn
in_session_since
monthly_data_volume
monthly_data_limit
monthly_sms_mo
monthly_sms_mt
monthly_sms_mo_limit
monthly_sms_mt_limit
monthly_voice_mo
monthly_voice_mo_limit
custom_field_1
previous_month_data_volume
nwc
apn
ip_address
end_customer_label {
name
}
imei_lock {
imei
enabled
}
}
}
Response
{
"data": {
"updatedSim": {
"iccid": 4,
"statusid": 42,
"providerid": 42,
"activation_timestamp": 1707747614,
"imei": "abc123",
"imsi": "abc123",
"msisdn": "xyz789",
"in_session_since": 1707747614,
"monthly_data_volume": 1707747614,
"monthly_data_limit": 1707747614,
"monthly_sms_mo": 42,
"monthly_sms_mt": 42,
"monthly_sms_mo_limit": 42,
"monthly_sms_mt_limit": 42,
"monthly_voice_mo": 1707747614,
"monthly_voice_mo_limit": 1707747614,
"custom_field_1": "abc123",
"previous_month_data_volume": 1707747614,
"nwc": "xyz789",
"apn": "abc123",
"ip_address": "xyz789",
"end_customer_label": EndCustomerLabel,
"imei_lock": ImeiLock
}
}
}
updatedSimEvent
Description
This subscription is to track the SimEvent of a specific SIM card.
Response
Returns a SimEvent
Arguments
Name | Description |
---|---|
iccid - ID!
|
(required!) ICCID of the SIM card |
Example
Query
subscription UpdatedSimEvent($iccid: ID!) {
updatedSimEvent(iccid: $iccid) {
id
iccid
timestampMilliseconds
type
details
jsonData
}
}
Variables
{"iccid": "9876543212345678901"}
Response
{
"data": {
"updatedSimEvent": {
"id": 4,
"iccid": "4",
"timestampMilliseconds": 1707747614,
"type": "xyz789",
"details": "abc123",
"jsonData": "abc123"
}
}
}
Types
ApiKey
Description
This type represents an API key entry
Fields
Field Name | Description |
---|---|
keyid - Int!
|
The ID of the API Key. This is needed to delete it or update it via mutation |
key - String!
|
The masked API key - only contains the clear text API Key when create operation is executed. |
comment - String
|
Any comment which has been registered with the API key. Optional property. |
created - Long!
|
The unix timestamp the API key has been created |
lastused - Long
|
The unix timestamp the key has been last used |
ipAddressAllowlist - [String]
|
A list of IP addresses or IP address ranges that are allowed to use this API key. An empty list means any IP address can access the API with the API key. |
expiresAtMs - Long
|
A unix timestamp in milliseconds which defines the date until the key is valid and accepted by the API. When the timestamp is -1 the API key has an unlimited validity. |
Example
{
"keyid": 42,
"key": "abc123",
"comment": "abc123",
"created": 1707747614,
"lastused": 1707747614,
"ipAddressAllowlist": ["abc123"],
"expiresAtMs": 1707747614
}
BatchErrorCounts
Fields
Field Name | Description |
---|---|
statusId - Int
|
The number of status id changes failed |
custom_field_1 - Int
|
The number of custom_field_1 changes failed. |
monthly_data_limit - Int
|
The number of monthly_data_limit changes failed. |
monthly_sms_mo_limit - Int
|
The number of monthly_sms_mo_limit changes failed. |
monthly_sms_mt_limit - Int
|
The number of monthly_sms_mt_limit changes failed. |
monthly_voice_mo_limit - Int
|
The number of monthly_voice_mo_limit changes failed. |
end_customer_label - Int
|
The number of end_customer_label changes failed. |
imei_lock - Int
|
The number of imei_lock changes failed. |
Example
{
"statusId": 42,
"custom_field_1": 42,
"monthly_data_limit": 42,
"monthly_sms_mo_limit": 42,
"monthly_sms_mt_limit": 42,
"monthly_voice_mo_limit": 42,
"end_customer_label": 42,
"imei_lock": 42
}
BatchJob
Fields
Field Name | Description |
---|---|
batchJobId - Long!
|
ID of the batch job |
startedAt - Long!
|
Unix timestamp in milliseconds the job has been started |
finishedAt - Long
|
Unix timestamp in milliseconds the job has been finished (or cancelled) - when job is still running this field is NULL |
startedBy - BatchJobOwner!
|
The user or API key that created the batch job |
statusDetails - BatchJobStatusDetails!
|
This item contains the batch job status details |
changes - BatchJobChanges!
|
An object containing the changes for the batch job. |
customerid - Int!
|
The customer this batch job belongs to. |
Example
{
"batchJobId": 1707747614,
"startedAt": 1707747614,
"finishedAt": 1707747614,
"startedBy": UserAccount,
"statusDetails": BatchJobStatusDetails,
"changes": BatchJobChanges,
"customerid": 42
}
BatchJobChanges
Fields
Field Name | Description |
---|---|
statusid - Int
|
The new status to be set |
custom_field_1 - String
|
The new custom field 1 (or name of SIM card) to be set. Set empty to erase the custom_field_1 |
monthly_data_limit - Long
|
The monthly data limit to be applied in bytes. Set to 0 for unlimited data. |
monthly_sms_mo_limit - Long
|
The monthly SMS MO limit to be applied. Set to 0 for unlimited MO SMS. |
monthly_sms_mt_limit - Long
|
The monthly SMS MT limit to be applied. Set to 0 for unlimited MT SMS. |
monthly_voice_mo_limit - Long
|
The voice MO limit to be applied. Set to 0 for unlimited voice MO. |
end_customer_label - String
|
The new end customer label to be set. Set empty to erase the end customer label. |
imei_lock - Boolean
|
Enable or disable IMEI lock for the selected SIM cards |
Example
{
"statusid": 42,
"custom_field_1": "abc123",
"monthly_data_limit": 1707747614,
"monthly_sms_mo_limit": 1707747614,
"monthly_sms_mt_limit": 1707747614,
"monthly_voice_mo_limit": 1707747614,
"end_customer_label": "xyz789",
"imei_lock": true
}
BatchJobDetail
Fields
Field Name | Description |
---|---|
simList - [BatchJobSimDetail]!
|
This field contains a detailed list of changes per SIM card. |
nextToken - String
|
The token which is required to query further results via getBatchJobDetails. |
totalCount - Long!
|
The total number of all sim details available for the batch job |
Example
{
"simList": [BatchJobSimDetail],
"nextToken": "abc123",
"totalCount": 1707747614
}
BatchJobDetailsFilterInput
Description
This input provides the filtering options for the listBatchJobDetails query.
Fields
Input Field | Description |
---|---|
status - [BatchJobSimDetailStatus]
|
Filter for a specific batch job detail item status |
quickSearch - String
|
Criteria to full text search on ICCID and Device Name |
Example
{
"status": ["SUCCESSFUL"],
"quickSearch": "xyz789"
}
BatchJobDetailsOrderInput
Description
This input provides the ordering options for the listBatchJobDetails query.
Fields
Input Field | Description |
---|---|
executedAt - String
|
Order by execution date |
Example
{"executedAt": "abc123"}
BatchJobList
Fields
Field Name | Description |
---|---|
items - [BatchJob]
|
A list of batch job items |
nextToken - String
|
The token which is required to query further results via listBatchJobs. |
totalCount - Long!
|
The total number of all batch jobs available |
Example
{
"items": [BatchJob],
"nextToken": "abc123",
"totalCount": 1707747614
}
BatchJobOwner
Types
Union Types |
---|
Example
UserAccount
BatchJobParametersInput
Fields
Input Field | Description |
---|---|
simFilter - SimFilterInput
|
The SIM filter input to be used for the icc id filter. This parameter can be used to pre-select the sim cards. If no filter is provided, all SIM cards owned by the customer will be selected for the batch job! This filter can be refined with the excludeIccIds parameter. |
excludeIccIds - [String]
|
A List of ICC IDs to exclude from the given simFilter input. The maximum size of this list is 1000. |
includeIccIds - [String]
|
A list of ICC IDs to be included. The maximum size of this list is 1000. When this parameter is provided, the parameters simFilter and excludeIccIds are not taken into account for the batch job. |
statusid - Int
|
The new status to be set |
custom_field_1 - String
|
The new custom field 1 (or name of SIM card) to be set. Set empty to erase the custom_field_1. |
monthly_data_limit - Long
|
The monthly data limit to be applied in bytes. Set to 0 for unlimited data. |
monthly_sms_mo_limit - Long
|
The monthly SMS MO limit to be applied. Set to 0 for unlimited MO SMS. |
monthly_sms_mt_limit - Long
|
The monthly SMS MT limit to be applied. Set to 0 for unlimited MT SMS. |
monthly_voice_mo_limit - Long
|
The voice MO limit to be applied. Set to 0 for unlimited voice MO. |
end_customer_label - String
|
The new end customer label to be set. Set empty to erase the end customer label. |
imei_lock - Boolean
|
Enable or disable IMEI lock for the selected SIM cards. |
Example
{
"simFilter": {"iccid": {"eq": "9876543212345678901"}},
"excludeIccIds": ["xyz789"],
"includeIccIds": ["abc123"],
"statusid": 42,
"custom_field_1": "abc123",
"monthly_data_limit": 1707747614,
"monthly_sms_mo_limit": 1707747614,
"monthly_sms_mt_limit": 1707747614,
"monthly_voice_mo_limit": 1707747614,
"end_customer_label": "xyz789",
"imei_lock": false
}
BatchJobSimDetail
Fields
Field Name | Description |
---|---|
iccid - String!
|
The ICC ID of the SIM card |
custom_field_1 - String
|
The custom_field_1 value if set on SIM card |
details - BatchJobSimDetailChange!
|
The details for the given SIM. Contains a list of changes related to the batch job for the given ICC ID. |
Example
{
"iccid": "xyz789",
"custom_field_1": "xyz789",
"details": BatchJobSimDetailChange
}
BatchJobSimDetailChange
Fields
Field Name | Description |
---|---|
executedAt - Long
|
The unix timestamp in milliseconds when the change was executed. |
errorCodes - [Int]
|
A list of error codes occurred while changing the SIM card. See List of batch job failure codes |
status - BatchJobSimDetailStatus!
|
The status for explicitly this SIM card in the batch process. |
Example
{"executedAt": 1707747614, "errorCodes": [42], "status": "SUCCESSFUL"}
BatchJobSimDetailStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"SUCCESSFUL"
BatchJobStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"PREPARING"
BatchJobStatusDetails
Fields
Field Name | Description |
---|---|
currentStatus - BatchJobStatus!
|
The current status of the batch job. |
totalSims - Int!
|
The total number of affected SIM cards by the batch job |
failedSims - Int!
|
The number of SIM cards that failed to change. |
successfulSims - Int!
|
The number of SIM cards that have been changed successfully |
failures - BatchErrorCounts
|
Item that contains the error counts per change. |
Example
{
"currentStatus": "PREPARING",
"totalSims": 42,
"failedSims": 42,
"successfulSims": 42,
"failures": BatchErrorCounts
}
BillingData
Description
Represents billing data for one billing cycle
Fields
Field Name | Description |
---|---|
year - Int!
|
The year of the billing cycle |
month - Int!
|
The month of the billing cycle (1-12) |
data_volume - Long!
|
The total data volume consumed during the billing cycle |
invoice_amount - Float!
|
The amount invoiced for the billing cycle |
currency - String!
|
The currency of the invoice amount |
Example
{
"year": 42,
"month": 42,
"data_volume": 1707747614,
"invoice_amount": 987.65,
"currency": "xyz789"
}
BillingDataDownloadLink
Description
Represents the response of a getBillingDataDownloadLink request.
Fields
Field Name | Description |
---|---|
link - String!
|
The link which can be used for download |
Example
{"link": "abc123"}
BillingDataList
Description
Represents the response of a listBillingData request.
Fields
Field Name | Description |
---|---|
items - [BillingData]
|
The list of billing data entries |
nextToken - String
|
The token which is required to query further results via listBillingData. See The nextToken principle |
Example
{
"items": [BillingData],
"nextToken": "xyz789"
}
Boolean
Description
The Boolean
scalar type represents true
or false
.
Example
true
CancelLocation
Description
This type represents the response of a cancelLocation mutation.
Fields
Field Name | Description |
---|---|
sent - Boolean!
|
Defines if the request was sent successfully. If false is returned, it is most likely that the blackout period for the given ICC ID is still active for the cancel location request. |
blockedUntil - Long!
|
A unix timestamp in milliseconds which defines when the blocking period ends - a new request can be sent after this timestamp for the given ICC ID. |
Example
{"sent": true, "blockedUntil": 1707747614}
CreateBatchJobResult
Fields
Field Name | Description |
---|---|
batchJobId - Long!
|
The ID of the batch job created. |
Example
{"batchJobId": 1707747614}
Customer
Description
This type represents customer information
Example
{
"customerid": 42,
"current_name": "xyz789",
"is_test_customer": true
}
DataConsumption
DataConsumptionFilterInput
Description
This input represents the filter parameters for a data consumption daily report.
Example
{"start": "2020-01-01", "stop": "2020-01-31"}
DeletedApiKey
Description
This type represents a deleted API key entry
Fields
Field Name | Description |
---|---|
keyid - Int!
|
The ID of the deleted API Key |
Example
{"keyid": 42}
DeletedUserAccount
Description
Deleted User account entity
Fields
Field Name | Description |
---|---|
id - String!
|
The UUID of the deleted user |
Example
{"id": "abc123"}
EndCustomerLabel
Description
Represents an end customer label
Fields
Field Name | Description |
---|---|
name - String!
|
The name of the label |
Example
{"name": "abc123"}
EndCustomerLabelInput
Description
This input contains the end customer label information that can be set
Fields
Input Field | Description |
---|---|
name - String!
|
The name of the label. If this name is empty the label will be deleted for the desired SIM card! |
Example
{"name": "xyz789"}
EndCustomerLabels
Fields
Field Name | Description |
---|---|
items - [EndCustomerLabel]
|
The list of end customer labels |
nextToken - String
|
The token which is required to query further results via listEndCustomerLabels. See The nextToken principle |
Example
{
"items": [EndCustomerLabel],
"nextToken": "xyz789"
}
Float
Description
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
ID
Description
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4"
) or integer (such as 4
) input value will be accepted as an ID.
Example
"4"
ImeiLock
Description
Represents an IMEI lock object for a SIM card
Example
{"imei": "abc123", "enabled": false}
ImeiLockInput
Description
An activated IMEI lock ensures that your SIM card can only be used with a specific device. There are two ways to activate an IMEI lock:
- Auto-Detect: The next/last active IMEI is used for the IMEI lock as soon as the SIM card logs into a mobile network. To do this, set lock = true and imei = null.
- Set IMEI: The IMEI to be set is known and should be used for the IMEI lock. To do this, lock = true and imei = "YOUR_DEVICE_IMEI" must be set.
Fields
Input Field | Description |
---|---|
lock - Boolean!
|
Set it to True to activate the IMEI lock, and set it to False to deactivate it. If lock is set to False and the card is in IMEI unauthorized status, the card is set to Activated again. |
imei - String
|
This is the IMEI you want to set for the lock. Setting it to null or empty if lock = True activates Auto-Detect mode. |
Example
{"lock": true, "imei": "308044942199875"}
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
42
ListBatchJobsFilter
Description
This input provides the filtering options for the listBatchJobs query.
Fields
Input Field | Description |
---|---|
status - BatchJobStatus
|
Filter for a specific batch job status |
Example
{"status": "PREPARING"}
ListEndCustomerLabelNameFilterInput
ListEndCustomerLabelsFilterInput
Description
This input represents the filter that can be set for getting the end customer labels assigned to SIM cards. The input fields are case insensitive.
Fields
Input Field | Description |
---|---|
name - ListEndCustomerLabelNameFilterInput
|
name related filter |
Example
{"name": {"beginsWith": "MyEnd", "contains": "EndCustomer"}}
Long
Description
The Long scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^63) and 2^63 - 1.
Example
1707747614
SIM
Description
This types contains all properties a SIM can have.
Fields
Field Name | Description |
---|---|
iccid - ID!
|
The Integrated Circuit Card Identifier (ICCID) is used to identify a SIM card |
statusid - Int!
|
The current status of the SIM card. See List of possible SIM status |
providerid - Int!
|
The product the SIM card belongs to. See List of provider ids |
activation_timestamp - Long
|
The timestamp which represents the data and time the SIM card was activated for the first time |
imei - String
|
The International Mobile Equipment Identity (IMEI) which identifies the device which the SIM card is currently installed |
imsi - String
|
The International Mobile Subscriber Identity (IMSI) which identifies the SIM card in the mobile network |
msisdn - String
|
The Mobile Subscriber Integrated Services Digital Network Number (MSISDN) is the worldwide unique phone number of the SIM |
in_session_since - Long
|
The timestamp which represents the date and time the SIM is in its current session |
monthly_data_volume - Long
|
The data volume of the current month used by the SIM card |
monthly_data_limit - Long
|
The monthly data limit for this SIM card |
monthly_sms_mo - Int
|
The total number of SMS within the current month send by the SIM card |
monthly_sms_mt - Int
|
The total number of SMS within the current month received by the SIM card (send from portal/api) |
monthly_sms_mo_limit - Int
|
The monthly SMS MO limit for this SIM card. NULL means no limit |
monthly_sms_mt_limit - Int
|
The monthly SMS MT limit for this SIM card. NULL means no limit |
monthly_voice_mo - Long
|
The total of outgoing voice seconds in the current month for the SIM card |
monthly_voice_mo_limit - Long
|
The monthly voice mo limit for this SIM card. NULL means no limit |
custom_field_1 - String
|
Customer defined field for device name or serial number |
previous_month_data_volume - Long
|
The data volume of the previous month used by the SIM card |
nwc - String
|
The NWC (network code) which is a combination of MCC (mobile country code) and MNC (mobile network code) |
apn - String
|
The APN (Access Point Name) the SIM is connected with |
ip_address - String
|
The IP address assigned to the SIM card |
end_customer_label - EndCustomerLabel
|
The end customer label assigned to the SIM card |
imei_lock - ImeiLock
|
Defines the [IMEI Lock]#definition-ImeiLock for the SIM card. |
Example
{
"iccid": "4",
"statusid": 42,
"providerid": 42,
"activation_timestamp": 1707747614,
"imei": "xyz789",
"imsi": "abc123",
"msisdn": "xyz789",
"in_session_since": 1707747614,
"monthly_data_volume": 1707747614,
"monthly_data_limit": 1707747614,
"monthly_sms_mo": 42,
"monthly_sms_mt": 42,
"monthly_sms_mo_limit": 42,
"monthly_sms_mt_limit": 42,
"monthly_voice_mo": 1707747614,
"monthly_voice_mo_limit": 1707747614,
"custom_field_1": "abc123",
"previous_month_data_volume": 1707747614,
"nwc": "abc123",
"apn": "xyz789",
"ip_address": "abc123",
"end_customer_label": EndCustomerLabel,
"imei_lock": ImeiLock
}
SimEvent
Description
Events to a SIM card
Fields
Field Name | Description |
---|---|
id - ID!
|
The primary identifier of the Sim Event |
iccid - ID!
|
The ICC ID the Sim Event is for |
timestampMilliseconds - Long!
|
Timestamp of the event in milliseconds |
type - String!
|
The type of event that was triggered by the SIM card. See List of SIM event typs |
details - String
|
This is a short description of the event like: SIM card was deactivated |
jsonData - String
|
A JSON string that contains detailed information |
Example
{
"id": 42,
"iccid": "9876543212345678901",
"timestampMilliseconds": 1744366387096,
"type": "presence",
"details": "Status: GPRS registered, Event: GPRS network connection, Operator: Telefonica O2 Germany,DE(26203), IP: 10.49.53.50",
"jsonData": "{\"presenceLevel\":\"GPRS\",\"presenceEvent\":\"GPRS_UP\",\"operator\":\"Telefonica O2 Germany\",\"nwc\":\"26203\",\"ip\":\"10.49.53.50\",\"countryCode\":\"DE\"}"
}
SimEventFilterInput
Description
This input represents the all filter parameters for a SimEvents request.
Fields
Input Field | Description |
---|---|
type - StringFilterInput
|
Type related filter. See List of SIM event typs |
timestampMilliseconds - SimEventIntFilterInput
|
Timestamp in milliseconds related filter |
Example
{"type": "presence", "timestampMilliseconds": 1744366387096}
SimEventIntFilterInput
Description
This input represent an int based filter option for SIM events
Example
{"eq": 1707747614, "in": [1707747614], "between": [1707747614]}
SimEventOrder
Description
This input represents the all filter parameters for a SimEvents request.
Possible values for each parameters are asc for ascending and desc for descending.
It is currently only possible to sort by one parameter. Sorting by several parameters does not produce the desired result.
Fields
Input Field | Description |
---|---|
timestampMilliseconds - String
|
Order by timestamp in milliseconds |
Example
{"timestampMilliseconds": "abc123"}
SimEvents
Description
Details data to a SIM card
Fields
Field Name | Description |
---|---|
items - [SimEvent]
|
Events to a SIM card |
nextToken - String
|
The token which is required to query further results via listSimEvents. See The nextToken principle |
totalEvents - Long
|
The total number of events corresponding a SIM card |
Example
{
"items": [
{
"id": 42,
"iccid": "9876543212345678901",
"timestampMilliseconds": 1744366387096,
"type": "presence",
"details": "Status: GPRS registered, Event: GPRS network connection, Operator: Telefonica O2 Germany,DE(26203), IP: 10.49.53.50",
"jsonData": "{\"presenceLevel\":\"GPRS\",\"presenceEvent\":\"GPRS_UP\",\"operator\":\"Telefonica O2 Germany\",\"nwc\":\"26203\",\"ip\":\"10.49.53.50\",\"countryCode\":\"DE\"}"
}
],
"nextToken": null,
"totalEvents": 1
}
SimFilterInput
Description
This input represents the all filter parameters for a listSims request.
Fields
Input Field | Description |
---|---|
iccid - StringFilterInput
|
iccid related filter |
statusid - SimListIntFilterInput
|
status related filter. See List of possible SIM status |
providerid - SimListIntFilterInput
|
product related filter. See List of provider ids |
imei - StringFilterInput
|
IMEI related filter |
imsi - StringFilterInput
|
IMSI related filter |
msisdn - StringFilterInput
|
MSISDN related filter |
custom_field_1 - StringFilterInput
|
Custom field 1 related filter |
end_customer_label - StringFilterInput
|
End customer label related filter |
Example
{"iccid": {"eq": "9876543212345678901"}}
SimList
Description
This type represents the response of a listSims request.
Fields
Field Name | Description |
---|---|
items - [SIM]
|
The list of Sims |
nextToken - String
|
The token which is required to query further results via listSims. See The nextToken principle |
totalSims - Long!
|
The total number of Sims for the given filter. |
Example
{"test": 1}
SimListIntFilterInput
SimListOrder
Description
This input represents the parameters to order a SimList when calling listSims
Possible values for each parameters are asc for ascending and desc for descending.
It is currently only possible to sort by one parameter. Sorting by several parameters does not produce the desired result.
Fields
Input Field | Description |
---|---|
iccid - String
|
Order by iccid |
statusid - String
|
Order by status. See List of possible SIM status |
providerid - String
|
Order by product. See List of provider ids |
imei - String
|
Order by IMEI |
imsi - String
|
Order by IMSI |
msisdn - String
|
Order by MSISDN |
activation_timestamp - String
|
Order by activation date |
in_session_since - String
|
Order by session duration |
monthly_data_volume - String
|
Order by monthly data volume |
monthly_sms_mo - String
|
Order by monthly SMS MO |
monthly_sms_mt - String
|
Order by monthly SMS MT |
monthly_voice_mo - String
|
Order by monthly outgoing voice seconds |
monthly_voice_mo_limit - String
|
Order by monthly voice mo limit |
custom_field_1 - String
|
Order by custom field 1 |
monthly_data_limit - String
|
Order by configured data limit |
previous_month_data_volume - String
|
Order by previous month data volume |
end_customer_label - String
|
Order by the endcustomer label |
Example
{"iccid": "asc"}
SimTransition
Description
This type represents a possible status transitions for the corresponding product
Fields
Field Name | Description |
---|---|
fromstatusid - Int!
|
The status ID from which the transition is to be carried out. See List of possible SIM status |
tostatusid - Int!
|
The status ID for which the transition is to be carried out. See List of possible SIM status |
providerid - Int!
|
The product id for which this transition is possible. See List of provider ids |
Example
{"fromstatusid": 42, "tostatusid": 42, "providerid": 42}
Statistic
Description
Some data to be tracked on.
Example
{
"totalSimCards": 42,
"activeSimCards": 42,
"currentMonthlyDataUsage": 1707747614,
"previousMonthDataUsage": 1707747614
}
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"xyz789"
StringFilterInput
Description
This input represents the text/string based filter options.
Example
{
"eq": "xyz789",
"beginsWith": "xyz789",
"in": ["xyz789"]
}
UserAccount
Description
User account data
Fields
Field Name | Description |
---|---|
id - String!
|
The UUID of the user |
email - String!
|
The email address of the user |
status - String!
|
Account status: 'InvitationSent', 'InvitationExpired', 'Disabled' or 'HasAccess' |
groups - [String]
|
Permission groups. Available: 'Administrator', 'Observer' or 'Manager' |
zoneinfo - String!
|
Timezone of the user (e.g. Europe/Berlin) |
locale - String!
|
Defines the language of the portal (de or en) |
Example
{
"id": "abc123",
"email": "abc123",
"status": "abc123",
"groups": ["xyz789"],
"zoneinfo": "xyz789",
"locale": "abc123"
}