ActivationCreateRequest
plan_idID of the plan to activate on the link.
ActivationDataUsageSummaryResponse-Output
allocated_mib^(?!^[-+.]*$)[+-]?0*… · requiredTotal MiB allocated to the activation when it started.
remaining_mib^(?!^[-+.]*$)[+-]?0*… · requiredMiB still available on the activation.
used_mib^(?!^[-+.]*$)[+-]?0*… · requiredMiB consumed so far (allocated - remaining).
ActivationPlanSummary
idInternal Plan identifier.
nameCustomer-assigned Plan name.
included_data_mbBundled data, in MB.
validity_daysValidity, in days.
ActivationResponse
idInternal Activation identifier.
The plan this activation is an instance of.
statusRuntime status of the activation.
sourceHow the activation was created: manual (customer-initiated) or resubscription (automatic).
Aggregated data usage for the activation.
created_atUTC timestamp when the activation was created.
updated_atUTC timestamp of the last update.
UTC timestamp when the activation became active. Null until activation completes.
UTC timestamp when the activation is scheduled to expire. Null when no fixed end is set.
ActivationSortField
Customer-visible sort fields for the activation list endpoint.
Mirrors the domain enum 1:1 — no internal sync timestamps to hide on this entity.
ActivationStatus
Runtime status of a plan activation on a link.
ActivationType
When the plan activates after being assigned to a link.
BulkTaskItemResponse
idInternal identifier for this item.
reference_idThe per-action target identifier the worker used for this item (SIM iccid, link id, etc.). Lets you correlate failures back to your input list.
statusPer-item lifecycle status.
The input the worker received for this item.
created_atUTC timestamp when the item was created.
updated_atUTC timestamp of the last update.
Worker output for successful items. Null for non-success statuses.
Failure reason for failed items. Null otherwise.
BulkTaskItemSortField
Customer-visible sort fields for the items list endpoint.
BulkTaskItemStatus
Status of a single item within a bulk task.
BulkTaskResponse
idInternal bulk-task identifier.
typeWhat bulk operation this task represents.
statusLifecycle status of the task itself: pending (queued), running (worker picked it up), completed (all items processed — some may still have failed; check counters), failed (worker job crashed).
total_itemsTotal number of items the task was created with.
completed_itemsItems processed successfully.
failed_itemsItems that the worker could not process.
pending_itemsItems still waiting to be processed (total - completed - failed).
created_atUTC timestamp when the task was created.
updated_atUTC timestamp of the last update.
BulkTaskSortField
Customer-visible sort fields for the task list endpoint.
BulkTaskType
Type of bulk operation.
CallerOrganizationResponse
idInternal identifier for your organisation. Useful when contacting support.
nameHuman-readable display name.
created_atUTC timestamp the organisation was created.
updated_atUTC timestamp the organisation was last updated.
CompatibilityZone
User-friendly compatibility zone identifiers.
ConnectedRAT
RAT type reported in live network connectivity status.
CostServiceName
Service categories that usage is billed against.
CostUsageLineResponse-Output
Service category (DATA / SMS-MO / SMS-MT / IOT). May be null for lines the provider didn't categorise.
Physical quantity (MB for DATA, count for SMS/IOT).
Money in the snapshot's currency.
Operators this usage was attributed to. Empty when no mapping was possible.
CoverageCreateRequest
nameDisplay name for the coverage. Not required to be unique.
operator_idsOperator ids to include in the coverage. Must be non-empty.
CoverageOperatorsRequest
operator_idsOperator ids to add or remove. Must be non-empty.
CoverageRenameRequest
nameNew display name for the coverage. Not required to be unique.
CoverageResponse
idInternal coverage identifier.
nameCoverage display name.
created_atUTC timestamp when the coverage was created.
updated_atUTC timestamp of the last update.
compatibility_zonesCompatibility zones spanned by the operators in this coverage.
Operators included in this coverage.
CoverageSortField
Customer-visible sort fields for the coverage list endpoint.
Subset of the domain sort fields — only fields actually surfaced on
CoverageResponse are sortable. Sorting by hidden fields would
confuse clients that can't see the resulting order. status is
excluded because customer-facing responses are always active
(removed coverages are filtered from list and 410 from get).
CoverageSummary
idInternal coverage identifier.
nameCoverage display name.
compatibility_zonesCompatibility zones spanned by the coverage.
DataCapSchema
threshold_mbUsage threshold in MB.
periodBase period (daily or monthly).
period_multiplierNumber of base periods between resets.
actionAction applied at threshold.
ESimProfileStatus
eSIM profile status.
ErrorResponse
messageHuman-readable description. For 5xx errors this is a generic message; the real cause is in our server logs.
codeStable machine-readable identifier for the failure class (e.g. entity_not_found, validation_error, upstream_unavailable).
Structured context for the error, when available (e.g. {entity, identifiers} for not-found / duplicate cases). Absent for 5xx responses.
LimitAction
Action when data cap threshold is exceeded.
LinkAttachSIMRequest
sim_idID of the SIM to bind to the link.
LinkBulkActivationRequest
link_idsLinks to act on. Must be non-empty; duplicates are rejected.
plan_idPlan to activate (or whose activations to remove) on each link.
LinkBulkRequest
link_idsLinks to act on. Must be non-empty; duplicates are rejected.
LinkCreateRequest
nameCustomer-assigned name for the Link.
sim_idID of the SIM to bind to the Link.
Plans to activate on the Link at creation. Omit to create a pre-active Link.
LinkDataUsageSummaryResponse-Output
total_used_mib^(?!^[-+.]*$)[+-]?0*… · requiredTotal MiB used across all activations on the link.
activation_countNumber of activations contributing to the total.
LinkNetworkBarsRequest
network_typesNetwork types to bar (or unbar). Must be non-empty.
LinkResponse
idInternal Link identifier.
statusLifecycle status of the Link.
Aggregated data usage across the Link's activations.
created_atUTC timestamp when the Link was created.
updated_atUTC timestamp of the last update.
Customer-assigned Link name (optional).
compatibility_zonesCompatibility zones this Link can operate in (derived from the bound SIM when present).
The SIM bound to this Link. Null when no SIM is attached.
Last-known network connectivity for this Link. Refreshed live on the detail endpoint when the Link is active.
barred_network_typesNetwork types currently barred on this Link.
IMEI this Link is locked to. Null when no IMEI lock is in effect.
Free-form customer metadata. Max 10 root-level keys, max nesting depth 3 (the root dict counts as depth 1).
LinkSIMSummary
idInternal SIM identifier.
iccidICCID — the SIM's printed serial number.
statusLifecycle status of the SIM.
sim_typePhysical SIM or eSIM.
MSISDN (phone number) assigned to the SIM, if any.
LinkSendSMSRequest
messageMessage body. 1-80 characters.
LinkSortField
Customer-visible sort fields for the link list endpoint.
Subset of the domain sort fields — drops synced_at and
last_usage_collected_at (internal sync timestamps).
LinkSummary-Output
idInternal Link identifier.
statusLifecycle status of the Link.
Customer-assigned Link name (optional).
Last-known network connectivity for this Link. Null if never observed.
LinkUpdateRequest
New customer-assigned name for the Link.
Replacement meta object. Pass {} to clear; omit to leave unchanged.
NetworkStatusResponse
Operator the Link is currently attached to.
ISO 3166-1 alpha-3 country code of the operator.
Radio access technology the Link is currently using.
Policy state applied to the Link by the network.
OperatorResponse
idInternal operator identifier.
nameOperator display name.
tadigStandardised TADIG operator code.
countryISO 3166-1 alpha-3 country code.
compatibility_zoneCompatibility zone the operator belongs to.
network_typesNetwork technologies supported by this operator.
OperatorSortField
Customer-visible sort fields for the operator list endpoint.
Subset of the internal OperatorSortField — only fields actually
surfaced on OperatorResponse are sortable. Sorting by fields the
response doesn't carry (created_at, is_barred, etc.) would be
confusing for clients that can't see the resulting order.
OperatorSummary
idInternal operator identifier.
nameOperator display name.
tadigStandardised TADIG operator code.
countryISO 3166-1 alpha-3 country code.
compatibility_zoneCompatibility zone the operator belongs to.
OrganizationBalanceResponse
organization_idInternal identifier of the organisation this balance belongs to.
amount^(?!^[-+.]*$)[+-]?0*… · requiredCurrent main-account balance in whole currency units (EUR for all current deployments). May carry sub-cent precision.
currencyISO 4217 currency code reported by the provider.
collected_atUTC timestamp the snapshot was observed. Snapshots are append-only and skip-unchanged — gaps between timestamps indicate stretches where the balance didn't move.
OrganizationCostResponse
organization_idIdentifier of the organisation this snapshot belongs to.
yearYear the snapshot covers.
monthMonth the snapshot covers (1-12).
collected_atUTC timestamp the snapshot was observed at the provider.
ISO 4217 currency code for all amounts. Typically EUR.
Per-service usage breakdown with operator attribution.
PagedResponse_ActivationResponse_
Items on the current page.
totalTotal number of items across all pages.
pageCurrent page number (1-based).
page_sizeItems per page used to compute this response.
pagesTotal number of pages at the current page_size.
PagedResponse_BulkTaskItemResponse_
Items on the current page.
totalTotal number of items across all pages.
pageCurrent page number (1-based).
page_sizeItems per page used to compute this response.
pagesTotal number of pages at the current page_size.
PagedResponse_BulkTaskResponse_
Items on the current page.
totalTotal number of items across all pages.
pageCurrent page number (1-based).
page_sizeItems per page used to compute this response.
pagesTotal number of pages at the current page_size.
PagedResponse_CoverageResponse_
Items on the current page.
totalTotal number of items across all pages.
pageCurrent page number (1-based).
page_sizeItems per page used to compute this response.
pagesTotal number of pages at the current page_size.
PagedResponse_LinkResponse_
Items on the current page.
totalTotal number of items across all pages.
pageCurrent page number (1-based).
page_sizeItems per page used to compute this response.
pagesTotal number of pages at the current page_size.
PagedResponse_OperatorResponse_
Items on the current page.
totalTotal number of items across all pages.
pageCurrent page number (1-based).
page_sizeItems per page used to compute this response.
pagesTotal number of pages at the current page_size.
PagedResponse_PlanResponse_
Items on the current page.
totalTotal number of items across all pages.
pageCurrent page number (1-based).
page_sizeItems per page used to compute this response.
pagesTotal number of pages at the current page_size.
PagedResponse_SIMResponse_
Items on the current page.
totalTotal number of items across all pages.
pageCurrent page number (1-based).
page_sizeItems per page used to compute this response.
pagesTotal number of pages at the current page_size.
PagedResponse_SentSMSResponse_
Items on the current page.
totalTotal number of items across all pages.
pageCurrent page number (1-based).
page_sizeItems per page used to compute this response.
pagesTotal number of pages at the current page_size.
PlanCreateRequest
nameDisplay name for the plan. Not required to be unique.
coverage_idCoverage this plan applies to.
included_data_mbBundled data in MB.
validity_daysPlan validity from activation, in days.
activation_typeWhen the plan activates after being assigned to a link.
base_throttleMax speed the plan can ever provide. Use unlimited for no throttle — null is not accepted (use the explicit unlimited value instead, so the field always has a meaningful answer).
Free-text description.
In-plan soft cap — speed action applied at threshold.
Initial set of plan notifications. At most one per type.
What triggers plan renewal. Presence is immutable post-create.
Cap on automatic reactivations. -1 means unlimited.
PlanNotificationCreateRequest
typeNotification trigger type.
messageSMS body sent to the link (max 85 chars).
Threshold value — MB for data_consumption_absolute, percentage 1-100 for data_consumption_relative, null for activation/expiration.
PlanNotificationResponse
idNotification identifier (assigned on create).
typeNotification trigger type.
messageSMS body sent to the link.
Threshold value — MB for data_consumption_absolute, percentage for data_consumption_relative, null for activation/expiration.
PlanNotificationType
Types of plan notifications sent via SMS to the link.
PlanNotificationUpdateRequest
messageNew SMS body (max 85 chars).
New threshold (semantics depend on the notification's type).
PlanResponse
idInternal plan identifier.
nameCustomer-assigned plan name.
Coverage this plan applies to.
included_data_mbBundled data in MB.
validity_daysPlan validity from activation, in days.
base_throttleBase throttle speed. unlimited means no throttle. Always present — historical rows with no throttle set surface as unlimited rather than null.
activation_typeWhen the plan activates after assignment.
created_atUTC timestamp when the plan was created.
updated_atUTC timestamp of the last update.
Free-text description.
In-plan soft cap.
Renewal trigger, if any.
Max reactivations (-1 = unlimited).
SMS notifications configured for this plan.
compatibility_zonesCompatibility zones derived from the coverage.
PlanSortField
Customer-visible sort fields for the plan list endpoint.
Subset of the domain sort fields. status is excluded (binary,
hidden from responses). coverage_id is excluded (UUID, not user-
meaningful for ordering — customers filter by coverage instead).
PlanUpdateRequest
New plan name.
New description; pass null to clear.
New coverage id.
New bundled data in MB.
New validity in days.
New base throttle. Use unlimited for no throttle. Omit the field to leave the current value unchanged — null here would canonicalize to unlimited on read, so use the explicit value instead to keep intent obvious.
New data cap; pass null to clear.
New activation type.
New reactivation trigger type. Presence cannot be toggled — to change between two non-null values, send the new value.
New max reactivations (-1 = unlimited); pass null to clear.
ReactivationTrigger
What triggers plan renewal.
SIMBulkProvisionRequest
name_prefixPrefix for each provisioned link's name; the per-item suffix is _{counter}.
sim_idsSIMs to provision. Must be non-empty; duplicates are rejected.
Plans to activate on every new link. Omit to leave each link pre-active.
counter_startFirst value used for the _{counter} suffix; subsequent items get +1 each.
SIMInstallationResponse
Raw LPA activation string for the eSIM. Null for physical SIMs.
Android deeplink that opens the system eSIM installer prefilled with this code.
iOS deeplink that opens the system eSIM installer prefilled with this code.
Inline SVG markup of the LPA QR code, ready to embed in HTML.
SIMResponse
idInternal SIM identifier.
iccidICCID — the SIM's printed serial number.
statusLifecycle status of the SIM.
sim_typePhysical SIM or eSIM.
is_attachedWhether the upstream system reports the SIM as currently attached. Distinct from link: this reflects upstream-reported attach state, while link reflects our local binding.
created_atUTC timestamp when the SIM was first synced into our system.
updated_atUTC timestamp of the last update from sync.
MSISDN (phone number) assigned to the SIM, if any.
IMSI on the SIM profile.
IMEI of the device the SIM was last seen in, if known.
eUICC identifier — only present for eSIMs.
compatibility_zonesCompatibility zones this SIM can operate in.
eSIM profile state. Null for physical SIMs.
The Link this SIM is bound to in our system. Null if not bound.
SIMSortField
Customer-visible sort fields for the SIM list endpoint.
Subset of the domain sort fields — covers identifiers + lifecycle
timestamps, both useful to customers. synced_at is hidden
(internal sync timestamp).
SentSMSResponse
idInternal identifier for this send attempt.
messageMessage body that was submitted.
statusOutcome of the send attempt.
sent_atUTC timestamp when the attempt was made.
Reason for the failure when status is failed. Null when status is sent.