Soracom Sandbox API
Soracom Sandbox API for safely exercising platform workflows. Lets developers create test coupons, fake SIMs, and dummy subscriber records, then run normal API calls against the sandbox endpoint without billing.
Soracom Sandbox API for safely exercising platform workflows. Lets developers create test coupons, fake SIMs, and dummy subscriber records, then run normal API calls against the sandbox endpoint without billing.
openapi: 3.0.0
info:
description: SORACOM SANDBOX API v1
title: SORACOM SANDBOX API
version: 20230923-005714
servers:
- url: https://api-sandbox.soracom.io/v1
paths:
/sandbox/coupons/create:
post:
description: Creates a coupon.
operationId: sandboxCreateCoupon
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/sandboxCreateCouponRequest'
description: request
required: true
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/sandboxCreateCouponResponse'
description: OK
"400":
description: Request is not correct.
security:
- api_key: []
api_token: []
summary: Creates a coupon
tags:
- 'API Sandbox: Coupon'
x-soracom-cli:
- sandbox coupons create
/sandbox/init:
post:
description: Performs complex signup process at once, including registering
dummy payment method. Specify `email` and `password` for an operator which
will be created on sandbox, `authKeyId` and `authKey` for a real operator
on the production environment. An API Key and an API Token will be included
in the response if successful. Use the API Key and the API Token to requests
afterwards.
operationId: sandboxInitializeOperator
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/sandboxInitRequest'
description: request
required: true
responses:
"201":
content:
application/json:
schema:
$ref: '#/components/schemas/sandboxAuthResponse'
description: Successfully created a sandbox operator.
"400":
description: Email address, AuthKeyId, or AuthKey is not correct.
summary: Creates an operator account
tags:
- 'API Sandbox: Operator'
x-soracom-cli:
- sandbox init
/sandbox/operators/{operator_id}:
delete:
description: Deletes the specified operator.
operationId: sandboxDeleteOperator
parameters:
- description: Operator ID
in: path
name: operator_id
required: true
schema:
type: string
responses:
"200":
description: OK
"400":
description: Operator does not exist.
security:
- api_key: []
api_token: []
summary: Deletes an operator
tags:
- 'API Sandbox: Operator'
x-soracom-cli:
- sandbox operators delete
/sandbox/operators/token/{email}:
post:
description: Retrieves a 'signup token' for registration confirmation. Please
specify a pair of AuthKeyId and AuthKey of a SAM user on the production environment
to check if the caller has a valid account on it.
operationId: sandboxGetSignupToken
parameters:
- description: Email
in: path
name: email
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/sandboxGetSignupTokenRequest'
description: Authentication request.
required: true
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/sandboxGetSignupTokenResponse'
description: Successfully retrieved signup token.
"400":
description: Email address, AuthKeyId, or AuthKey is not correct.
summary: Gets a signup token
tags:
- 'API Sandbox: Operator'
x-soracom-cli:
- sandbox operators get-signup-token
/sandbox/orders/ship:
post:
description: Changes the shipping status to 'shipped' and gets ready the subscribers
included in the order.
operationId: sandboxShipOrder
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/sandboxShipOrderRequest'
description: Shipping request
required: true
responses:
"200":
description: OK
"400":
description: Order does not exist.
security:
- api_key: []
api_token: []
summary: Ships the specified order
tags:
- 'API Sandbox: Order'
x-soracom-cli:
- sandbox orders ship
/sandbox/stats/air/subscribers/{imsi}:
post:
description: Populates Air stats for testing purpose. Inserted data are going
to be automatically accumulated. It is not possible to put the data multiple
times with the same timestamp.
operationId: sandboxInsertAirStats
parameters:
- description: IMSI.
in: path
name: imsi
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/sandboxInsertAirStatsRequest'
description: The Air stats (up/down bytes of data) with specified timestamp.
required: true
responses:
"200":
description: OK
"400":
description: Data with the same timestamp already exists.
security:
- api_key: []
api_token: []
summary: Inserts Air stats for testing
tags:
- 'API Sandbox: Stats'
x-soracom-cli:
- sandbox stats air insert
/sandbox/stats/beam/subscribers/{imsi}:
post:
description: Populates Beam stats for testing purpose. Inserted data are going
to be automatically accumulated. It is not possible to put the data multiple
times with the same timestamp.
operationId: sandboxInsertBeamStats
parameters:
- description: IMSI.
in: path
name: imsi
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/sandboxInsertBeamStatsRequest'
description: The Beam stats (number of requests) with specified timestamp.
required: true
responses:
"200":
description: OK
"400":
description: Data with the same timestamp already exists.
security:
- api_key: []
api_token: []
summary: Inserts Beam stats for testing
tags:
- 'API Sandbox: Stats'
x-soracom-cli:
- sandbox stats beam insert
/sandbox/subscribers/create:
post:
description: Creates a new subscriber for sandbox.
operationId: sandboxCreateSubscriber
requestBody:
content:
application/json:
examples:
Creating "plan-D (D-300MB)":
value:
bundle:
- D-300MB
subscription: plan-D
Creating "plan01s":
value:
subscription: plan01s
schema:
$ref: '#/components/schemas/sandboxCreateSubscriberRequest'
description: Create request
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/sandboxCreateSubscriberResponse'
description: OK
security:
- api_key: []
api_token: []
summary: Creates a new subscriber for sandbox
tags:
- 'API Sandbox: Subscriber'
x-soracom-cli:
- sandbox subscribers create
components:
schemas:
TagSet:
additionalProperties:
type: string
type: object
sandboxAuthResponse:
properties:
apiKey:
type: string
operatorId:
type: string
token:
type: string
userName:
type: string
type: object
sandboxBeamCounts:
properties:
count:
format: int64
type: integer
type: object
sandboxCreateCouponRequest:
properties:
amount:
example: 1000
format: int32
type: integer
applicableBillItemName:
enum:
- dailyDataTrafficChargeTotal
- dailyChargeTotal
- dailySoracomBeamRequestChargeTotal
example: dailyDataTrafficChargeTotal
type: string
expiryYearMonth:
format: yyyyMM
type: string
type: object
sandboxCreateCouponResponse:
properties:
amount:
description: Coupon amount.
format: double
type: number
balance:
description: Balance.
format: double
type: number
billItemName:
description: Bill Item.
type: string
couponCode:
description: Coupon code.
type: string
expiryYearMonth:
description: Year and month of expiration.
format: yyyyMM
type: string
type: object
sandboxCreateSubscriberRequest:
properties:
bundles:
description: 'Bundle. If necessary, specify one of:'
items:
enum:
- X3-5MB
- D-300MB
- DU-10GB
- DU-50GB
- DU-100GB
- K2-300MB
type: string
type: array
subscription:
description: 'Subscription. Specify one of:'
enum:
- plan01s
- plan01s-low_data_volume
- planP1
- planX3
- plan-D
- plan-K
- plan-KM1
- plan-DU
- plan-K2
type: string
type: object
sandboxCreateSubscriberResponse:
properties:
apn:
type: string
createdAt:
format: int64
type: integer
expiryTime:
format: int64
type: integer
imsi:
type: string
ipAddress:
type: string
lastModifiedAt:
format: int64
type: integer
msisdn:
type: string
operatorId:
type: string
registrationSecret:
type: string
serialNumber:
type: string
speedClass:
type: string
status:
type: string
subscription:
type: string
tags:
$ref: '#/components/schemas/TagSet'
type: object
sandboxDataTrafficStats:
properties:
downloadByteSizeTotal:
format: int64
type: integer
downloadPacketSizeTotal:
format: int64
type: integer
uploadByteSizeTotal:
format: int64
type: integer
uploadPacketSizeTotal:
format: int64
type: integer
type: object
sandboxGetSignupTokenRequest:
properties:
authKey:
type: string
authKeyId:
type: string
type: object
sandboxGetSignupTokenResponse:
properties:
token:
type: string
required:
- token
type: object
sandboxInitRequest:
properties:
authKey:
type: string
authKeyId:
type: string
coverageTypes:
description: |
Coverage type.
- `g`: Global coverage
- `jp`: Japan coverage
items:
enum:
- g
- jp
type: string
type: array
email:
type: string
password:
type: string
registerPaymentMethod:
default: true
type: boolean
required:
- email
- password
- authKeyId
- authKey
type: object
sandboxInsertAirStatsRequest:
properties:
dataTrafficStatsMap:
additionalProperties:
$ref: '#/components/schemas/sandboxDataTrafficStats'
description: |
Test data for each speed class, including data for both upload and download, with timestamps. Specify a string representing the speed class as a key.
- `s1.minimum`
- `s1.slow`
- `s1.standard`
- `s1.fast`
- `s1.4xfast`
- `s1.8xfast`
- `u1.standard`
- `u1.slow`
- `t1.standard`
- `arc.standard`
type: object
unixtime:
description: UNIX time (in seconds).
format: int64
type: integer
type: object
sandboxInsertBeamStatsRequest:
properties:
beamStatsMap:
properties:
inHttp:
$ref: '#/components/schemas/sandboxBeamCounts'
inMqtt:
$ref: '#/components/schemas/sandboxBeamCounts'
inTcp:
$ref: '#/components/schemas/sandboxBeamCounts'
inUdp:
$ref: '#/components/schemas/sandboxBeamCounts'
outHttp:
$ref: '#/components/schemas/sandboxBeamCounts'
outHttps:
$ref: '#/components/schemas/sandboxBeamCounts'
outMqtt:
$ref: '#/components/schemas/sandboxBeamCounts'
outMqtts:
$ref: '#/components/schemas/sandboxBeamCounts'
outTcp:
$ref: '#/components/schemas/sandboxBeamCounts'
outTcps:
$ref: '#/components/schemas/sandboxBeamCounts'
outUdp:
$ref: '#/components/schemas/sandboxBeamCounts'
type: object
unixtime:
description: UNIX time (in seconds).
format: int64
type: integer
type: object
sandboxShipOrderRequest:
properties:
operatorId:
type: string
orderId:
type: string
required:
- orderId
- operatorId
type: object
tags:
- name: 'API Sandbox: Coupon'
- name: 'API Sandbox: Operator'
- name: 'API Sandbox: Order'
- name: 'API Sandbox: Stats'
- name: 'API Sandbox: Subscriber'