Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/soracom-group-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: Soracom API v1
title: Soracom Group API
version: 20250903-043502
servers:
- description: Japan coverage production API endpoint
url: https://api.soracom.io/v1
- description: Global coverage production API endpoint
url: https://g.api.soracom.io/v1
tags:
- description: '[Group configuration](/en/docs/group-configuration/)'
name: Group
paths:
/groups:
get:
description: Returns a list of Groups.
operationId: listGroups
parameters:
- description: Tag name of the group. Filters through all groups that exactly match the tag name. When tag_name is specified, tag_value is required.
in: query
name: tag_name
required: false
schema:
type: string
- description: Tag value of the groups.
in: query
name: tag_value
required: false
schema:
type: string
- description: Search criteria for tag strings (`tag_value`).
in: query
name: tag_value_match_mode
required: false
schema:
default: exact
enum:
- exact
- prefix
type: string
- description: Maximum number of results per response page.
in: query
name: limit
required: false
schema:
type: integer
- description: The last Group ID retrieved on the current page. By specifying this parameter, you can continue to retrieve the list from the next group onward.
in: query
name: last_evaluated_key
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Group'
type: array
description: A list of groups.
security:
- api_key: []
api_token: []
summary: List Groups.
tags:
- Group
x-soracom-cli:
- groups list
x-soracom-cli-pagination:
request:
param: last_evaluated_key
response:
header: x-soracom-next-key
post:
description: Create a new group.
operationId: createGroup
requestBody:
content:
application/json:
example:
configuration:
SoracomAir:
metadata:
enabled: true
SoracomHarvest:
enabled: true
SoracomHarvestFiles:
enabled: true
tags:
name: Group name
schema:
$ref: '#/components/schemas/CreateGroupRequest'
description: Tags and configuration for a new group to be created.
required: true
responses:
'201':
content:
application/json:
example:
configuration:
SoracomAir:
metadata:
enabled: true
SoracomHarvest:
enabled: true
SoracomHarvestFiles:
enabled: true
createdAt: 1698796800000
createdTime: 1698796800000
groupId: 12345678-abcd-9012-efab-345678901234
lastModifiedAt: 1698796800000
lastModifiedTime: 1698796800000
operatorId: OP0012345678
tags:
name: Group name
schema:
$ref: '#/components/schemas/Group'
description: Created.
security:
- api_key: []
api_token: []
summary: Create Group
tags:
- Group
x-soracom-cli:
- groups create
/groups/{group_id}:
delete:
description: Deletes the group specified by Group ID.
operationId: deleteGroup
parameters:
- description: ID of the target Group.
in: path
name: group_id
required: true
schema:
type: string
responses:
'204':
description: Deletion of specified group complete.
'404':
description: The specified group does not exist.
security:
- api_key: []
api_token: []
summary: Delete Group
tags:
- Group
x-soracom-cli:
- groups delete
get:
description: Returns the group specified by the group ID.
operationId: getGroup
parameters:
- description: ID of the target Group.
in: path
name: group_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
description: Specified Group.
'404':
description: The specified group does not exist.
security:
- api_key: []
api_token: []
summary: Get Group
tags:
- Group
x-soracom-cli:
- groups get
/groups/{group_id}/configuration/{namespace}:
delete:
description: Delete a namespace for the specified group.
operationId: deleteConfigurationNamespace
parameters:
- description: ID of the target Group.
in: path
name: group_id
required: true
schema:
type: string
- description: Namespace to be deleted.
in: path
name: namespace
required: true
schema:
enum:
- SoracomAir
- SoracomBeam
- SoracomEndorse
- SoracomOrbit
- SoracomFunk
- SoracomFunnel
- SoracomHarvest
- SoracomHarvestFiles
- SoracomKrypton
- UnifiedEndpoint
type: string
responses:
'204':
description: The namespace was successfully deleted.
'400':
description: The specified namespace does not exist.
'404':
description: The specified group does not exist.
security:
- api_key: []
api_token: []
summary: Delete Group Configuration Namespace
tags:
- Group
x-soracom-cli:
- groups delete-config-namespace
put:
description: Updates the configuration of the specified group.
operationId: putConfigurationParameters
parameters:
- description: ID of the target group. The group ID can be obtained via the [Group:listGroups API](#!/Group/listGroups).
in: path
name: group_id
required: true
schema:
type: string
- description: 'A string indicating the configuration target. It varies depending on the configuration content.
- `SoracomAir`: Custom DNS, Metadata service, VPG (Virtual Private Gateway), CHAP authentication, Simple Location function, Binary Parser.
- `SoracomBeam`: SORACOM Beam.
- `SoracomEndorse`: SORACOM Endorse.
- `SoracomFunk`: SORACOM Funk.
- `SoracomFunnel`: SORACOM Funnel.
- `SoracomHarvest`: SORACOM Harvest Data.
- `SoracomHarvestFiles`: SORACOM Harvest Files.
- `SoracomKrypton`: SORACOM Krypton.
- `SoracomOrbit`: SORACOM Orbit.
- `UnifiedEndpoint`: Unified Endpoint.
'
in: path
name: namespace
required: true
schema:
enum:
- SoracomAir
- SoracomBeam
- SoracomEndorse
- SoracomFunk
- SoracomFunnel
- SoracomHarvest
- SoracomHarvestFiles
- SoracomKrypton
- SoracomOrbit
- UnifiedEndpoint
type: string
requestBody:
content:
application/json:
examples:
(1) Configuring Custom DNS (SoracomAir):
description: 'When configuring [Custom DNS](/en/docs/air/custom-dns/) for IoT SIM, please note the following points.
- Specify `SoracomAir` for the `namespace` path parameter.
- For more information about the `key` and `value` pairs, refer to [Advanced Configuration](/en/docs/air/custom-dns/#advanced-configuration).
'
value:
- key: useCustomDns
value: true
- key: dnsServers
value:
- 192.168.0.5
- 192.168.0.6
(2) Configuring Metadata Service (SoracomAir):
description: 'When configuring [Metadata Service](/en/docs/air/metadata-service/), please note the following points.
- Specify `SoracomAir` for the `namespace` path parameter.
- For more information about the `key` and `value` pairs, refer to [Advanced Configuration](/en/docs/air/metadata-service/#advanced-configuration).
'
value:
- key: metadata
value:
allowOrigin: http://some.example.com
enabled: true
minimizeResponseBody: true
readonly: true
- key: userdata
value: foobar
(3) Configuring CHAP Authentication (SoracomAir):
description: 'When [using arbitrary username and password with CHAP authentication](/en/docs/air/chap-authentication/), please note the following points.
- Specify `SoracomAir` for the `namespace` path parameter.
'
value:
- key: authenticationRequired
value: true
- key: username
value: xxxxx
- key: password
value: yyyyy
(4) Enabling Endorse (SoracomEndorse):
description: 'When [enabling Endorse](/en/docs/endorse/configuration/), please note the following points.
- Specify `SoracomEndorse` for the `namespace` path parameter.
- For more information about the `key` and `value` pairs, refer to [Advanced Configuration](/en/docs/endorse/configuration/#advanced-configuration).
'
value:
- key: enabled
value: true
- key: parametersToEndorse
value:
imei: true
imsi: true
msisdn: false
requestParameters: true
simId: true
- key: tokenTimeoutSeconds
value: 600
- key: allowOrigin
value: https://soracom.io
- key: authorizedRedirectUrls
value:
- https://soracom.io
- http://localhost:3000
(5) Overwriting timestamp with payload data (SoracomHarvest):
description: 'When overwriting timestamp with payload data on Harvest Data, please note the following points.
- Specify `SoracomHarvest` for the `namespace` path parameter.
- For more information about the `key` and `value` pairs, refer to [Advanced Configuration](/en/docs/harvest/configuration/#advanced-configuration).
'
value:
- key: enabled
value: true
- key: customTimestamp
value:
format: iso-8601
type: jsonpointer
value: /time
schema:
items:
$ref: '#/components/schemas/GroupConfigurationUpdateRequest'
type: array
description: 'Group configuration.
**Warning**: If you change the settings included in the same `namespace`, please include all existing settings in the request body, not just the changes. Any settings not included in the request body will be reset to their default values.
'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
description: The Group after the update.
'404':
description: The specified Group does not exist.
security:
- api_key: []
api_token: []
summary: Update group configuration
tags:
- Group
x-soracom-cli:
- groups put-config
/groups/{group_id}/configuration/{namespace}/{name}:
delete:
description: Delete parameters for the specified group.
operationId: deleteConfigurationParameter
parameters:
- description: ID of the target Group.
in: path
name: group_id
required: true
schema:
type: string
- description: Namespace of target parameters.
in: path
name: namespace
required: true
schema:
enum:
- SoracomAir
- SoracomBeam
- SoracomEndorse
- SoracomFunk
- SoracomFunnel
- SoracomHarvest
- SoracomHarvestFiles
- SoracomKrypton
- UnifiedEndpoint
type: string
- description: Parameter name to be deleted. (This will be part of a URL path, so it needs to be percent-encoded. In JavaScript, specify the name after it has been encoded using encodeURIComponent().)
in: path
name: name
required: true
schema:
type: string
responses:
'204':
description: The parameter was successfully deleted.
'404':
description: The specified group does not exist.
security:
- api_key: []
api_token: []
summary: Delete Group Configuration Parameters
tags:
- Group
x-soracom-cli:
- groups delete-config
/groups/{group_id}/subscribers:
get:
description: Returns a list of subscribers that belong to the specified group by group ID.
operationId: listSubscribersInGroup
parameters:
- description: ID of the target Group.
in: path
name: group_id
required: true
schema:
type: string
- description: Maximum number of results per response page.
in: query
name: limit
required: false
schema:
type: integer
- description: The IMSI of the last subscriber retrieved on the previous page. By specifying this parameter, you can continue to retrieve the list from the next subscriber onward.
in: query
name: last_evaluated_key
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Sim'
type: array
description: Specified Group.
'404':
description: The specified group does not exist.
security:
- api_key: []
api_token: []
summary: List Subscribers in a group
tags:
- Group
x-sam-operationId: listSubscribers
x-soracom-cli:
- groups list-subscribers
x-soracom-cli-pagination:
request:
param: last_evaluated_key
response:
header: x-soracom-next-key
/groups/{group_id}/tags:
put:
description: Adds/updates tags of specified configuration group.
operationId: putGroupTags
parameters:
- description: ID of the target Group.
in: path
name: group_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
items:
$ref: '#/components/schemas/TagUpdateRequest'
type: array
description: Array of values for tags to be updated.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
description: The group after the update.
'404':
description: The specified group does not exist.
security:
- api_key: []
api_token: []
summary: Update Group Tags
tags:
- Group
x-sam-operationId: putTags
x-soracom-cli:
- groups put-tags
/groups/{group_id}/tags/{tag_name}:
delete:
description: Deletes tag from the specified group.
operationId: deleteGroupTag
parameters:
- description: ID of the target Group.
in: path
name: group_id
required: true
schema:
type: string
- description: Tag name to be deleted. (This will be part of a URL path, so it needs to be percent-encoded. In JavaScript, specify the name after it has been encoded using encodeURIComponent().)
in: path
name: tag_name
required: true
schema:
type: string
responses:
'204':
description: Tag deletion complete.
'404':
description: The specified group or the tag does not exist.
security:
- api_key: []
api_token: []
summary: Delete Group Tag
tags:
- Group
x-sam-operationId: deleteTag
x-soracom-cli:
- groups delete-tag
components:
schemas:
TagUpdateRequest:
properties:
tagName:
type: string
tagValue:
type: string
required:
- tagName
- tagValue
type: object
Placement:
properties:
infrastructureProvider:
enum:
- aws
type: string
region:
description: 'If `infrastructureProvider` is `aws`, it indicates the rendezvous point.
- `ap-northeast-1`: Tokyo (Japan). The default for Japan coverage.
- `eu-central-1`: Frankfurt (Germany). The default for Global coverage.
- `us-west-2`: Oregon (USA).
- `ap-southeast-2`: Sydney (Australia).
'
enum:
- ap-northeast-1
- eu-central-1
- us-west-2
- ap-southeast-2
type: string
type: object
Group:
properties:
configuration:
$ref: '#/components/schemas/GroupConfiguration'
createdTime:
format: int64
type: integer
groupId:
type: string
lastModifiedTime:
format: int64
type: integer
operatorId:
type: string
tags:
$ref: '#/components/schemas/TagSet'
type: object
ImeiLock:
description: IMEI lock configuration.
properties:
imei:
description: IMEI of the target device
type: string
type: object
ArcSessionStatus:
properties:
arcAllowedIPs:
description: Displays the WireGuard AllowedIPs received from the Arc server.
items:
type: string
type: array
arcClientPeerIpAddress:
description: IP address of the client.
type: string
arcClientPeerPublicKey:
type: string
arcServerEndpoint:
description: WireGuard protocol endpoints on the Arc server.
type: string
arcServerPeerPublicKey:
description: Server peer public key for the Arc server.
type: string
gatewayPrivateIpAddress:
description: The private IP address of the VPG. In the case of VPG Type-F, the source IP address of the closed network communication from the IoT SIM to the customer's system is NAT-ed to this IP address.
type: string
gatewayPublicIpAddress:
description: The fixed global IP address when using the VPG [Fixed Global IP Address Option](/en/docs/vpg/fixed-global-ip/).
type: string
lastUpdatedAt:
format: int64
type: integer
placement:
$ref: '#/components/schemas/Placement'
vpgId:
description: The VPG ID. If the VPG was not used, this will not be output.
type: string
type: object
Cell:
description: Information about the base station to which the IoT SIM is connected. It will not be output for virtual SIM/subscribers.
properties:
ci:
description: The Cell Identity (for 2G and 3G networks), a 16 bit value represented in decimal form as an integer. (See 3GPP TS 23.003 4.3)
type: integer
eci:
description: The E-UTRAN Cell Identifier (for LTE networks), a 28 bit value represented in decimal form as a long. (See 3GPP TS 23.003 19.6)
type: integer
lac:
description: The Location Area Code (for 2G and 3G networks), a 16 bit value represented in decimal form as an integer. (See 3GPP TS 23.003 4.1)
type: integer
mcc:
description: The Mobile Country Code, a 3 digit number.
type: integer
mnc:
description: The Mobile Network Code, a 2 or 3 digit number. If the value returned is only 1 digit in length, then you should prepend the value with a leading zero.
type: integer
rac:
description: The Routing Area Code (for 2G and 3G networks), an 8 bit value represented in decimal form as an integer. (See 3GPP TS 23.003 4.2)
type: integer
radioType:
description: "The Radio Access Technology or type of network that the device is connected to. \n\n**Warning**: In some cases, the information displayed may differ from the actual wireless access technology or type of network being used by the communication carrier's equipment. For example, even when connected to LTE-M, it may be displayed as LTE.\n"
enum:
- 3G
- GSM
- LTE
- LTE-M
- NB-IoT
type: string
sac:
description: The Service Area Code (for 2G and 3G networks), a 16 bit value represented in decimal form as an integer. (See 3GPP TS 23.003 12.5)
type: integer
tac:
description: The Tracking Area Code (for LTE networks), a 16 bit value represented in decimal form as an integer. (See 3GPP TS 23.003 19.4.2.3)
type: integer
type: object
Capabilities:
properties:
data:
description: 'Data communication support.
- `true`: with data.
- `false`: without data.
'
type: boolean
sms:
description: 'SMS support.
- `true`: with SMS.
- `false`: without SMS.
'
type: boolean
type: object
PreviousSessionStatus:
description: Information about the previous session.
properties:
cell:
$ref: '#/components/schemas/Cell'
createdTime:
description: The time when the previous session was created.
format: int64
type: integer
deletedTime:
description: The time when the previous session was deleted.
format: int64
type: integer
dnsServers:
description: Array of IP address of the DNS servers.
items:
type: string
type: array
gatewayPrivateIpAddress:
description: The private IP address of the VPG. In the case of VPG Type-F, the source IP address of the closed network communication from the IoT SIM to the customer's system is NAT-ed to this IP address.
type: string
gatewayPublicIpAddress:
description: The fixed global IP address when using the VPG [Fixed Global IP Address Option](/en/docs/vpg/fixed-global-ip/).
type: string
imei:
description: The IMEI of the device using the IoT SIM. If using a virtual SIM/subscriber, this will be `null`.
type: string
imsi:
description: The IMSI of the IoT SIM.
type: string
sessionId:
description: The session ID.
type: string
subscription:
type: string
ueIpAddress:
description: The IP address of the device.
type: string
vpgId:
description: The VPG ID. If the VPG was not used, this will not be output.
type: string
type: object
GroupConfigurationUpdateRequest:
properties:
key:
type: string
value: {}
required:
- key
- value
type: object
TagSet:
additionalProperties:
type: string
description: An object which always contains at least one property "name" with a string value. If you give a subscriber/SIM a name, the name will be returned as the value of the "name" property. If the subscriber/SIM does not have a name, an empty string "" is returned. In addition, if you create any custom tags for the subscriber/SIM, each custom tag will appear as additional properties in the object.
example:
tagName1: tagValue1
tagName2: tagValue2...
type: object
Sim:
properties:
activeProfileId:
type: string
arcSessionStatus:
$ref: '#/components/schemas/ArcSessionStatus'
capabilities:
$ref: '#/components/schemas/Capabilities'
createdTime:
description: UNIX time (in milliseconds) that the IoT SIM (primary subscription to the IoT SIM) was created.
format: int64
type: integer
expiryAction:
description: 'Action when expiration date expires. Please refer to [Soracom Air Expiration Function](/en/docs/air/expiration/) for more detail.
- `doNothing` : do nothing
- `deleteSession` : delete session of the SIM if any
- `deactivate` : change the SIM status to Inactive
- `suspend` : change the SIM status to Suspended
- `terminate` : forcibly end any existing connections, and terminate the SIM
- `null`: No expiration date set.
'
enum:
- doNothing
- deleteSession
- deactivate
- suspend
- terminate
- (null value)
type: string
expiryTime:
description: IoT SIM expiration date (UNIX time in milliseconds).
format: int64
type: integer
groupId:
description: The SIM group ID where the SIM belongs to.
type: string
imeiLock:
$ref: '#/components/schemas/ImeiLock'
lastModifiedTime:
description: UNIX time (in milliseconds) that the information in the IoT SIM (primary subscription to the IoT SIM) was changed
format: int64
type: integer
lastPortMappingCreatedTime:
description: UNIX time in milliseconds that Napter was used with the SIM. If Napter has never been used with the SIM, null is returned.
format: int64
type: integer
localInfo:
$ref: '#/components/schemas/Map'
moduleType:
description: 'The form factor of the physical SIM.
- `mini`: standard (2FF) size.
- `micro`: micro (3FF) size.
- `nano`: nano (4FF) size.
- `trio`: 3 in 1 (can be cut into 2FF/3FF/4FF depending on how you cut it).
- `embedded`: Embedded (MFF2).
- `virtual`: Virtual SIM/Subscriber.
- `integrated`: Embedded (iSIM).
- `profilePackage`: Profile Package (eSIM profile).
'
enum:
- mini
- micro
- nano
- trio
- embedded
- virtual
- integrated
- profilePackage
type: string
operatorId:
description: The ID of the operator who owns this SIM.
type: string
otaSerialNumber:
type: string
pcapEndTime:
format: int64
type: integer
pcapStartTime:
format: int64
type: integer
previousSession:
$ref: '#/components/schemas/PreviousSessionStatus'
profiles:
additionalProperties:
$ref: '#/components/schemas/SimProfile'
type: object
renewalFeeStatusSetTime:
description: UNIX time (in milliseconds) that the IoT SIM status is either "ready", "standby", or "suspended".
format: int64
type: integer
serialNumber:
description: The serial number of the SIM. Virtual SIM/Subscriber does not have a serial number.
type: string
sessionStatus:
$ref: '#/components/schemas/SessionStatus'
simId:
description: The SIM ID of the SIM.
type: string
speedClass:
description: The speed class of the SIM.
type: string
status:
description: 'Status of the IoT SIM (primary subscription of the IoT SIM). The status of the virtual SIM/subscriber added to the IoT SIM is either `active` or `terminated`.
- `ready`
- `active`
- `inactive`
- `standby`
- `suspended`
- `terminated`
'
enum:
- ready
- active
- inactive
- standby
- suspended
- terminated
type: string
tags:
$ref: '#/components/schemas/TagSet'
terminationEnabled:
description: 'Value indicating whether the IoT SIM can be terminated (termination protection setting).
- `true`: Can be terminated (termination protection OFF)
- `false`: Cannot be terminated (termination protection ON)
'
type: boolean
testmodeExhaustedTime:
description: UNIX time (in milliseconds) when the SIM exceeded the testing usage limit.
format: int64
type: integer
type:
description: 'IoT SIM Type
- `euicc`: Chip type (eSIM)
- `uicc`: Card type
- `virtual`: Virtual SIM/Subscriber
'
enum:
- euicc
- uicc
- virtual
type: string
type: object
Map:
additionalProperties:
type: string
type: object
CreateGroupRequest:
properties:
configuration:
$ref: '#/components/schemas/GroupConfiguration'
tags:
$ref: '#/components/schemas/TagSet'
type: object
GroupConfiguration:
additionalProperties:
type: object
type: object
SimProfile:
properties:
arcClientPeerPrivateKey:
description: 'The client''s PrivateKey (client peer private key) for connecting with WireGuard.
- PrivateKey (client peer private key) cannot be redisplayed. If you have lost your private key, generate a new key and update the device credentials.
- Never disclose connection information to outside parties.
'
type: string
arcClientPeerPublicKey:
type: string
iccid:
type: string
otaSupported:
type: boolean
primaryImsi:
type: string
subscribers:
additionalProperties:
$ref: '#/components/schemas/SimplifiedSubscriber'
type: object
type: object
SessionStatus:
description: Information about the current session.
properties:
cell:
$ref: '#/components/schemas/Cell'
dnsServers:
description: Array of IP address of the DNS servers.
items:
type: string
type: array
gatewayPrivateIpAddress:
description: The private IP address of the VPG. In the case of VPG Type-F, the source IP address of the closed network communication from the IoT SIM to the customer's system is NAT-ed to this IP address.
type: string
gatewayPublicIpAddress:
description: The fixed global IP address when using the VPG [Fixed Global IP Address Option](/en/docs/vpg/fixed-global-ip/).
type: string
imei:
description: The IMEI of the device using the IoT SIM. If using a virtual SIM/subscriber, this will be `null`.
type: string
imsi:
description: The IMSI of the IoT SIM.
type: string
lastUpdatedAt:
format: int64
type: integer
location:
type: object
online:
d
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/soracom/refs/heads/main/openapi/soracom-group-api-openapi.yml