SMS-ActSMS·Act
サービス一覧チャージ利用ガイドドキュメントAPI
ログインログイン / 登録
SMS·Act

160+ の国・地域、600+ の主要サービスに対応する一時仮想番号。テスト、海外展開、ソーシャル登録に最適。失敗時は自動返金、サブスクや最低金額もありません。

サービス
  • サービス一覧
  • 料金
  • 利用ガイド
  • 開発者 API
  • ドキュメント
法務とサポート
  • 私たちについて
  • ご利用ガイドとサイトポリシー
  • 利用規約
  • プライバシーポリシー
  • お問い合わせ

© 2023-2026 SMS-Act 世界をリードするオンラインSMS認証プラットフォーム

対応国・地域 · 対応サービス

開発者 API

SMS-Act API

番号の取得、認証コードの受信、キャンセルと返金をご自身のプログラムから。シンプルでエラーの扱いが明確な REST API です。

アクセスキーを取得OpenAPI 仕様をダウンロード

このページの内容

  • クイックスタート
  • 完全なサンプル
  • 認証
  • 共通ルール
  • エンドポイント
  • オブジェクト
  • エラーコード

クイックスタート

  1. 1アカウントページの「API」タブでアクセスキーを発行し、サーバー側に保管します。
  2. 2GET /services と GET /services/{service}/countries でサービスと国を選びます。
  3. 3POST /activations で番号を取得し、status が completed になるまで GET /activations/{id} をポーリングして code を読み取ります。
  4. 4コードが届かない場合は POST /activations/{id}/cancel でキャンセルすると全額返金されます。そのまま期限切れにしても構いません。

完全なサンプル

番号を注文し、5 秒ごとにポーリングして認証コードを表示します。10 分以内に届かない場合はキャンセルして返金されます。環境変数 SMS_ACT_KEY にアクセスキーを設定して実行してください。

pip install requests
SMS_ACT_KEY=your_key python sms_act_example.py
import os
import time
import uuid

import requests

BASE_URL = "https://sms-act.net/sms/open-api/v1"
SESSION = requests.Session()
SESSION.headers["X-Access-Key"] = os.environ["SMS_ACT_KEY"]


def call(method, path, **kwargs):
    resp = SESSION.request(method, BASE_URL + path, timeout=30, **kwargs)
    body = resp.json()
    if resp.status_code >= 400:
        err = body["error"]
        raise RuntimeError(f"{err['code']}: {err['message']} (requestId={err['requestId']})")
    return body["data"]


# 1. Order a number. The Idempotency-Key makes network retries safe.
activation = call(
    "POST",
    "/activations",
    json={"service": "wa", "countryId": 6},
    headers={"Idempotency-Key": str(uuid.uuid4())},
)
print("Phone number:", activation["phoneNumber"])

# 2. Poll every 5 seconds until the code arrives (or give up after 10 minutes).
deadline = time.time() + 10 * 60
while activation["status"] == "waiting" and time.time() < deadline:
    time.sleep(5)
    activation = call("GET", f"/activations/{activation['id']}")

# 3. No code in time: cancel for a full refund.
if activation["status"] == "waiting":
    try:
        activation = call("POST", f"/activations/{activation['id']}/cancel")
    except RuntimeError:
        # The code may have arrived just before cancelling; read the final state.
        activation = call("GET", f"/activations/{activation['id']}")

if activation["status"] == "completed":
    print("Code:", activation["code"])
else:
    print("No code received; the activation was cancelled and refunded.")
# Node.js 18+
SMS_ACT_KEY=your_key node sms_act_example.mjs
import { randomUUID } from "node:crypto";

const BASE_URL = "https://sms-act.net/sms/open-api/v1";
const ACCESS_KEY = process.env.SMS_ACT_KEY;
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

async function call(method, path, { body, headers = {} } = {}) {
  const resp = await fetch(BASE_URL + path, {
    method,
    headers: { "X-Access-Key": ACCESS_KEY, "Content-Type": "application/json", ...headers },
    body: body ? JSON.stringify(body) : undefined,
  });
  const json = await resp.json();
  if (!resp.ok) {
    const { code, message, requestId } = json.error;
    throw new Error(`${code}: ${message} (requestId=${requestId})`);
  }
  return json.data;
}

// 1. Order a number. The Idempotency-Key makes network retries safe.
let activation = await call("POST", "/activations", {
  body: { service: "wa", countryId: 6 },
  headers: { "Idempotency-Key": randomUUID() },
});
console.log("Phone number:", activation.phoneNumber);

// 2. Poll every 5 seconds until the code arrives (or give up after 10 minutes).
const deadline = Date.now() + 10 * 60 * 1000;
while (activation.status === "waiting" && Date.now() < deadline) {
  await sleep(5000);
  activation = await call("GET", `/activations/${activation.id}`);
}

// 3. No code in time: cancel for a full refund.
if (activation.status === "waiting") {
  try {
    activation = await call("POST", `/activations/${activation.id}/cancel`);
  } catch {
    // The code may have arrived just before cancelling; read the final state.
    activation = await call("GET", `/activations/${activation.id}`);
  }
}

if (activation.status === "completed") {
  console.log("Code:", activation.code);
} else {
  console.log("No code received; the activation was cancelled and refunded.");
}

認証

/health 以外のすべてのリクエストで、X-Access-Key ヘッダーにアクセスキーを付けてください。キーを持つ人は誰でも残高を使えるため、絶対に公開しないでください。漏えいした場合はすぐにアカウントページで再発行してください。

ベース URL

https://sms-act.net/sms/open-api/v1

共通ルール

レスポンス

成功時は HTTP 2xx で、データは data に入ります。失敗時は HTTP 4xx または 5xx で、code・message・requestId・任意の details を含む error オブジェクトを返します。

エラー処理

エラーは error.code で判定し、message には依存しないでください。お問い合わせの際は requestId(X-Request-Id ヘッダーにもあります)をお伝えください。

注文のライフサイクル

注文は waiting から始まり、コードを受信すると completed、キャンセルするか コードが届かず自動キャンセルされる(通常は約 15 分後、遅くとも作成から 20 分後の expiresAt)と cancelled になります。キャンセルされた注文は必ず全額返金されます。

ポーリング

GET /activations/{id} のポーリング間隔は 3 秒以上にしてください。それより速くてもエラーにはなりませんが、最後に確認された状態が返るだけです。

冪等性

POST /activations には Idempotency-Key ヘッダー(UUID など)を付けてください。24 時間以内に同じ値で再送すると、二重請求されず元の注文が返ります。

レート制限

キーごとに 10 秒あたり 60 リクエストまでです。超えると Retry-After ヘッダー付きの 429 RATE_LIMITED が返ります。認証の失敗も IP ごとに制限されます。同じ IP から 1 分間に約 20 回失敗すると、その 1 分が終わるまで、その IP からのすべてのリクエスト(有効なキーを含む)に 429 が返ります。

同時注文と 1 日の失敗上限

同時に waiting にできる注文は最大 3 件です(ウェブサイトでの注文も数に含まれます)。超えると POST /activations は 409 PENDING_LIMIT_REACHED を返すので、どれかが終わるかキャンセルされるまで待ってください。1 日の失敗が 15 件に達し(キャンセルも自動タイムアウトも失敗に数えます)、その日の成功率が 10% 未満の場合、その日は注文できません(403 ACTIVATIONS_RESTRICTED)。認証コードをまだ一度も受信していない新規アカウントでは、1 日に失敗できるのは最大 14 回です。連携のテスト中は、注文とキャンセルを続けて行うのは避けてください。

残高

注文には最低残高が必要です。値は GET /account/balance の minBalanceToOrder で確認できます。残高が少なくても他のエンドポイントは利用できます。

データ形式

注文 ID は文字列、日時は UTC の RFC 3339 形式、価格の単位はクレジットです。一覧は page と pageSize(1–100)を受け付け、pagination を返します。

エンドポイント

エンドポイントとフィールドの説明は OpenAPI 仕様に基づくため英語です。

Get account balance

GET/account/balance

レスポンス

data: Balance

  • 200Current balance.
  • 401UNAUTHORIZED — missing, invalid or revoked Access Key.
  • 403ACCOUNT_SUSPENDED. POST /activations may also return DAILY_LIMIT_REACHED (details.failedToday, details.blockThreshold) or ACTIVATIONS_RESTRICTED.
  • 429RATE_LIMITED — wait Retry-After seconds.
  • 500INTERNAL_ERROR — unexpected server error. Nothing was charged and it is safe to retry (use the same Idempotency-Key for POST /activations).

リクエスト例

curl -X GET "https://sms-act.net/sms/open-api/v1/account/balance" \
  -H "X-Access-Key: $SMS_ACT_KEY"

レスポンス例

{
  "data": {
    "balance": 92,
    "currency": "credits",
    "minBalanceToOrder": 60
  }
}

List services that can be ordered

GET/services

パラメーター

  • pageintegerquery

    (≥ 1, default 1)

  • pageSizeintegerquery

    (1–100, default 20)

  • qstringquery

    Case-insensitive search on service code or name. (max length 50)

名前場所型必須説明
pagequeryintegerいいえ(≥ 1, default 1)
pageSizequeryintegerいいえ(1–100, default 20)
qquerystringいいえCase-insensitive search on service code or name. (max length 50)

レスポンス

data: Service[] + pagination

  • 200A page of services.
  • 400INVALID_REQUEST — a parameter is missing or malformed (details.field).
  • 401UNAUTHORIZED — missing, invalid or revoked Access Key.
  • 403ACCOUNT_SUSPENDED. POST /activations may also return DAILY_LIMIT_REACHED (details.failedToday, details.blockThreshold) or ACTIVATIONS_RESTRICTED.
  • 429RATE_LIMITED — wait Retry-After seconds.
  • 500INTERNAL_ERROR — unexpected server error. Nothing was charged and it is safe to retry (use the same Idempotency-Key for POST /activations).

リクエスト例

curl -X GET "https://sms-act.net/sms/open-api/v1/services" \
  -H "X-Access-Key: $SMS_ACT_KEY"

レスポンス例

{
  "data": [
    {
      "code": "wa",
      "name": "Whatsapp"
    }
  ],
  "pagination": {
    "page": 1,
    "pageSize": 20,
    "total": 1
  }
}

List countries

GET/countries

パラメーター

  • pageintegerquery

    (≥ 1, default 1)

  • pageSizeintegerquery

    (1–100, default 20)

  • qstringquery

    Case-insensitive search on English name or ISO code. (max length 50)

名前場所型必須説明
pagequeryintegerいいえ(≥ 1, default 1)
pageSizequeryintegerいいえ(1–100, default 20)
qquerystringいいえCase-insensitive search on English name or ISO code. (max length 50)

レスポンス

data: Country[] + pagination

  • 200A page of countries.
  • 400INVALID_REQUEST — a parameter is missing or malformed (details.field).
  • 401UNAUTHORIZED — missing, invalid or revoked Access Key.
  • 403ACCOUNT_SUSPENDED. POST /activations may also return DAILY_LIMIT_REACHED (details.failedToday, details.blockThreshold) or ACTIVATIONS_RESTRICTED.
  • 429RATE_LIMITED — wait Retry-After seconds.
  • 500INTERNAL_ERROR — unexpected server error. Nothing was charged and it is safe to retry (use the same Idempotency-Key for POST /activations).

リクエスト例

curl -X GET "https://sms-act.net/sms/open-api/v1/countries" \
  -H "X-Access-Key: $SMS_ACT_KEY"

レスポンス例

{
  "data": [
    {
      "id": 6,
      "iso2": "ID",
      "name": "Indonesia"
    }
  ],
  "pagination": {
    "page": 1,
    "pageSize": 20,
    "total": 1
  }
}

List countries where a service can be ordered

GET/services/{service}/countries

Includes the price and a best-effort availability hint. Not paginated.

パラメーター

  • servicestring必須path
名前場所型必須説明
servicepathstringはい

レスポンス

data: ServiceCountry[]

  • 200Orderable countries for the service.
  • 401UNAUTHORIZED — missing, invalid or revoked Access Key.
  • 403ACCOUNT_SUSPENDED. POST /activations may also return DAILY_LIMIT_REACHED (details.failedToday, details.blockThreshold) or ACTIVATIONS_RESTRICTED.
  • 404ACTIVATION_NOT_FOUND or NOT_FOUND.
  • 429RATE_LIMITED — wait Retry-After seconds.
  • 500INTERNAL_ERROR — unexpected server error. Nothing was charged and it is safe to retry (use the same Idempotency-Key for POST /activations).

リクエスト例

curl -X GET "https://sms-act.net/sms/open-api/v1/services/wa/countries" \
  -H "X-Access-Key: $SMS_ACT_KEY"

レスポンス例

{
  "data": [
    {
      "countryId": 6,
      "iso2": "ID",
      "countryName": "Indonesia",
      "price": {
        "amount": 8,
        "currency": "credits"
      },
      "available": true
    }
  ]
}

List activations created through the API

GET/activations

パラメーター

  • pageintegerquery

    (≥ 1, default 1)

  • pageSizeintegerquery

    (1–100, default 20)

  • status"waiting" | "completed" | "cancelled"query
名前場所型必須説明
pagequeryintegerいいえ(≥ 1, default 1)
pageSizequeryintegerいいえ(1–100, default 20)
statusquery"waiting" | "completed" | "cancelled"いいえ

レスポンス

data: Activation[] + pagination

  • 200A page of activations, newest first.
  • 400INVALID_REQUEST — a parameter is missing or malformed (details.field).
  • 401UNAUTHORIZED — missing, invalid or revoked Access Key.
  • 403ACCOUNT_SUSPENDED. POST /activations may also return DAILY_LIMIT_REACHED (details.failedToday, details.blockThreshold) or ACTIVATIONS_RESTRICTED.
  • 429RATE_LIMITED — wait Retry-After seconds.
  • 500INTERNAL_ERROR — unexpected server error. Nothing was charged and it is safe to retry (use the same Idempotency-Key for POST /activations).

リクエスト例

curl -X GET "https://sms-act.net/sms/open-api/v1/activations" \
  -H "X-Access-Key: $SMS_ACT_KEY"

レスポンス例

{
  "data": [
    {
      "id": "2348810953",
      "status": "completed",
      "service": "wa",
      "serviceName": "Whatsapp",
      "countryId": 6,
      "countryName": "Indonesia",
      "phoneNumber": "+6281234567890",
      "code": "482915",
      "price": {
        "amount": 8,
        "currency": "credits"
      },
      "createdAt": "2026-10-08T09:30:00Z",
      "expiresAt": "2026-10-08T09:50:00Z",
      "completedAt": "2026-10-08T09:31:12Z",
      "cancelledAt": null
    }
  ],
  "pagination": {
    "page": 1,
    "pageSize": 20,
    "total": 1
  }
}

Order a phone number

POST/activations

Charges price.amount credits. Nothing is charged if the request fails.

パラメーター

  • Idempotency-Keystringheader

    Strongly recommended. Replaying the same key within 24 hours returns the original activation instead of ordering again. (max length 64)

名前場所型必須説明
Idempotency-KeyheaderstringいいえStrongly recommended. Replaying the same key within 24 hours returns the original activation instead of ordering again. (max length 64)

リクエストボディ

  • servicestring必須
  • countryIdinteger必須

    (≥ 0)

名前型必須説明
servicestringはい
countryIdintegerはい(≥ 0)

レスポンス

data: ActivationCreated

  • 200Idempotent replay — the activation created by an earlier request with the same Idempotency-Key.
  • 201Activation created.
  • 400INVALID_REQUEST — a parameter is missing or malformed (details.field).
  • 401UNAUTHORIZED — missing, invalid or revoked Access Key.
  • 402INSUFFICIENT_BALANCE — details.balance, details.required.
  • 403ACCOUNT_SUSPENDED. POST /activations may also return DAILY_LIMIT_REACHED (details.failedToday, details.blockThreshold) or ACTIVATIONS_RESTRICTED.
  • 409NO_NUMBERS_AVAILABLE, PENDING_LIMIT_REACHED (details.pending, details.limit), ACTIVATION_NOT_CANCELLABLE or IDEMPOTENCY_IN_PROGRESS.
  • 422UNSUPPORTED_SERVICE_COUNTRY or IDEMPOTENCY_KEY_REUSED.
  • 429RATE_LIMITED — wait Retry-After seconds.
  • 500INTERNAL_ERROR — unexpected server error. Nothing was charged and it is safe to retry (use the same Idempotency-Key for POST /activations).
  • 502UPSTREAM_ERROR — the number provider failed. Nothing was charged and it is safe to retry.

リクエスト例

curl -X POST "https://sms-act.net/sms/open-api/v1/activations" \
  -H "X-Access-Key: $SMS_ACT_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"service":"wa","countryId":6}'

レスポンス例

{
  "data": {
    "id": "2348810953",
    "status": "waiting",
    "service": "wa",
    "serviceName": "Whatsapp",
    "countryId": 6,
    "countryName": "Indonesia",
    "phoneNumber": "+6281234567890",
    "code": null,
    "price": {
      "amount": 8,
      "currency": "credits"
    },
    "createdAt": "2026-10-08T09:30:00Z",
    "expiresAt": "2026-10-08T09:50:00Z",
    "completedAt": null,
    "cancelledAt": null
  }
}

Get an activation (poll this for the code)

GET/activations/{id}

パラメーター

  • idstring必須path
名前場所型必須説明
idpathstringはい

レスポンス

data: Activation

  • 200The activation. code is set once status is completed.
  • 401UNAUTHORIZED — missing, invalid or revoked Access Key.
  • 403ACCOUNT_SUSPENDED. POST /activations may also return DAILY_LIMIT_REACHED (details.failedToday, details.blockThreshold) or ACTIVATIONS_RESTRICTED.
  • 404ACTIVATION_NOT_FOUND or NOT_FOUND.
  • 429RATE_LIMITED — wait Retry-After seconds.
  • 500INTERNAL_ERROR — unexpected server error. Nothing was charged and it is safe to retry (use the same Idempotency-Key for POST /activations).

リクエスト例

curl -X GET "https://sms-act.net/sms/open-api/v1/activations/2348810953" \
  -H "X-Access-Key: $SMS_ACT_KEY"

レスポンス例

{
  "data": {
    "id": "2348810953",
    "status": "completed",
    "service": "wa",
    "serviceName": "Whatsapp",
    "countryId": 6,
    "countryName": "Indonesia",
    "phoneNumber": "+6281234567890",
    "code": "482915",
    "price": {
      "amount": 8,
      "currency": "credits"
    },
    "createdAt": "2026-10-08T09:30:00Z",
    "expiresAt": "2026-10-08T09:50:00Z",
    "completedAt": "2026-10-08T09:31:12Z",
    "cancelledAt": null
  }
}

Cancel an activation and get a full refund

POST/activations/{id}/cancel

Allowed only while waiting. Cancelling an already cancelled activation succeeds.

パラメーター

  • idstring必須path
名前場所型必須説明
idpathstringはい

レスポンス

data: Activation

  • 200The cancelled activation.
  • 401UNAUTHORIZED — missing, invalid or revoked Access Key.
  • 403ACCOUNT_SUSPENDED. POST /activations may also return DAILY_LIMIT_REACHED (details.failedToday, details.blockThreshold) or ACTIVATIONS_RESTRICTED.
  • 404ACTIVATION_NOT_FOUND or NOT_FOUND.
  • 409NO_NUMBERS_AVAILABLE, PENDING_LIMIT_REACHED (details.pending, details.limit), ACTIVATION_NOT_CANCELLABLE or IDEMPOTENCY_IN_PROGRESS.
  • 429RATE_LIMITED — wait Retry-After seconds.
  • 500INTERNAL_ERROR — unexpected server error. Nothing was charged and it is safe to retry (use the same Idempotency-Key for POST /activations).
  • 502UPSTREAM_ERROR — the number provider failed. Nothing was charged and it is safe to retry.

リクエスト例

curl -X POST "https://sms-act.net/sms/open-api/v1/activations/2348810953/cancel" \
  -H "X-Access-Key: $SMS_ACT_KEY"

レスポンス例

{
  "data": {
    "id": "2348810953",
    "status": "cancelled",
    "service": "wa",
    "serviceName": "Whatsapp",
    "countryId": 6,
    "countryName": "Indonesia",
    "phoneNumber": "+6281234567890",
    "code": null,
    "price": {
      "amount": 8,
      "currency": "credits"
    },
    "createdAt": "2026-10-08T09:30:00Z",
    "expiresAt": "2026-10-08T09:50:00Z",
    "completedAt": null,
    "cancelledAt": "2026-10-08T09:35:00Z"
  }
}

Health check

GET/health認証不要

レスポンス

  • 200Service is up.

リクエスト例

curl -X GET "https://sms-act.net/sms/open-api/v1/health"

レスポンス例

{
  "status": "ok",
  "version": "1.5.0"
}

オブジェクト

Activation

  • idstring必須
  • status"waiting" | "completed" | "cancelled"必須
  • servicestring必須
  • serviceNamestring必須
  • countryIdinteger | null必須

    Null only for a few legacy activations created before the country was recorded.

  • countryNamestring | null必須

    English name. Null in the same cases as countryId.

  • phoneNumberstring必須

    E.164 format.

  • codestring | null必須

    The verification code, set when status is completed.

  • priceMoney必須
  • createdAtstring必須
  • expiresAtstring必須

    Upper bound: if no code arrives, the activation is cancelled and refunded automatically, usually after about 15 minutes and at the latest by this time.

  • completedAtstring | null必須
  • cancelledAtstring | null必須
名前型必須説明
idstringはい
status"waiting" | "completed" | "cancelled"はい
servicestringはい
serviceNamestringはい
countryIdinteger | nullはいNull only for a few legacy activations created before the country was recorded.
countryNamestring | nullはいEnglish name. Null in the same cases as countryId.
phoneNumberstringはいE.164 format.
codestring | nullはいThe verification code, set when status is completed.
priceMoneyはい
createdAtstringはい
expiresAtstringはいUpper bound: if no code arrives, the activation is cancelled and refunded automatically, usually after about 15 minutes and at the latest by this time.
completedAtstring | nullはい
cancelledAtstring | nullはい

ActivationCreated

Returned by POST /activations. Same as Activation, optionally with a warning.

  • idstring必須
  • status"waiting" | "completed" | "cancelled"必須
  • servicestring必須
  • serviceNamestring必須
  • countryIdinteger | null必須

    Null only for a few legacy activations created before the country was recorded.

  • countryNamestring | null必須

    English name. Null in the same cases as countryId.

  • phoneNumberstring必須

    E.164 format.

  • codestring | null必須

    The verification code, set when status is completed.

  • priceMoney必須
  • createdAtstring必須
  • expiresAtstring必須

    Upper bound: if no code arrives, the activation is cancelled and refunded automatically, usually after about 15 minutes and at the latest by this time.

  • completedAtstring | null必須
  • cancelledAtstring | null必須
  • warningActivationWarning

    The activation was created and charged; this is only a heads-up. Do not retry because of it.

名前型必須説明
idstringはい
status"waiting" | "completed" | "cancelled"はい
servicestringはい
serviceNamestringはい
countryIdinteger | nullはいNull only for a few legacy activations created before the country was recorded.
countryNamestring | nullはいEnglish name. Null in the same cases as countryId.
phoneNumberstringはいE.164 format.
codestring | nullはいThe verification code, set when status is completed.
priceMoneyはい
createdAtstringはい
expiresAtstringはいUpper bound: if no code arrives, the activation is cancelled and refunded automatically, usually after about 15 minutes and at the latest by this time.
completedAtstring | nullはい
cancelledAtstring | nullはい
warningActivationWarningいいえThe activation was created and charged; this is only a heads-up. Do not retry because of it.

ActivationWarning

The activation was created and charged; this is only a heads-up. Do not retry because of it.

  • code"DAILY_FAILURE_WARNING"必須
  • failedTodayinteger必須
  • blockThresholdinteger必須

    Ordering is blocked for the rest of the day once this many activations have failed.

  • messagestring必須
名前型必須説明
code"DAILY_FAILURE_WARNING"はい
failedTodayintegerはい
blockThresholdintegerはいOrdering is blocked for the rest of the day once this many activations have failed.
messagestringはい

Service

  • codestring必須
  • namestring必須
名前型必須説明
codestringはい
namestringはい

Country

  • idinteger必須
  • iso2string | null必須

    ISO 3166-1 alpha-2. Several countries may share a code (e.g. virtual and physical US numbers) — always order by id.

  • namestring必須
名前型必須説明
idintegerはい
iso2string | nullはいISO 3166-1 alpha-2. Several countries may share a code (e.g. virtual and physical US numbers) — always order by id.
namestringはい

ServiceCountry

  • countryIdinteger必須
  • iso2string | null必須
  • countryNamestring必須
  • priceMoney必須
  • availableboolean必須

    Best-effort stock hint. true does not guarantee a number; false means ordering will most likely fail with NO_NUMBERS_AVAILABLE.

名前型必須説明
countryIdintegerはい
iso2string | nullはい
countryNamestringはい
priceMoneyはい
availablebooleanはいBest-effort stock hint. true does not guarantee a number; false means ordering will most likely fail with NO_NUMBERS_AVAILABLE.

Balance

  • balancenumber必須

    May contain decimals.

  • currency"credits"必須
  • minBalanceToOrdernumber必須

    Minimum balance required to create an activation.

名前型必須説明
balancenumberはいMay contain decimals.
currency"credits"はい
minBalanceToOrdernumberはいMinimum balance required to create an activation.

Money

  • amountnumber必須
  • currency"credits"必須
名前型必須説明
amountnumberはい
currency"credits"はい

Pagination

  • pageinteger必須

    (≥ 1)

  • pageSizeinteger必須

    (1–100)

  • totalinteger必須

    (≥ 0)

名前型必須説明
pageintegerはい(≥ 1)
pageSizeintegerはい(1–100)
totalintegerはい(≥ 0)

エラーコード

再試行可能なエラーは、時間をおいて同じリクエストを送ると成功する場合があります。POST /activations の再試行には同じ Idempotency-Key を使ってください。

  • INVALID_REQUESTHTTP 400再試行可: いいえA parameter is missing or malformed. details.field names it.
  • UNAUTHORIZEDHTTP 401再試行可: いいえThe X-Access-Key header is missing, invalid or the key was revoked.
  • INSUFFICIENT_BALANCEHTTP 402再試行可: いいえBalance is below the minimum required to create activations. Top up and retry.
  • ACCOUNT_SUSPENDEDHTTP 403再試行可: いいえThe account that owns the key has been suspended.
  • DAILY_LIMIT_REACHEDHTTP 403再試行可: いいえToo many activations failed today (cancelled orders count as failures). Ordering resumes tomorrow. With the default limits, a new account that has never received a code can fail up to 14 times a day; see ACTIVATIONS_RESTRICTED.
  • ACTIVATIONS_RESTRICTEDHTTP 403再試行可: いいえOrdering is restricted for today due to an abnormal failure pattern: 15 or more failures with a success rate below 10%, for any account. cancelled orders (manual or automatic timeout) count as failures.
  • ACTIVATION_NOT_FOUNDHTTP 404再試行可: いいえThe activation does not exist or belongs to another account.
  • NOT_FOUNDHTTP 404再試行可: いいえThe endpoint or service does not exist.
  • NO_NUMBERS_AVAILABLEHTTP 409再試行可: はいNo numbers right now for this service and country. Retry in a minute or try another country.
  • PENDING_LIMIT_REACHEDHTTP 409再試行可: はいToo many activations are still waiting for a code (at most 3 at a time, counting orders placed on the website too). Wait for one to finish or cancel it.
  • ACTIVATION_NOT_CANCELLABLEHTTP 409再試行可: いいえThe activation already received a code and cannot be cancelled.
  • IDEMPOTENCY_IN_PROGRESSHTTP 409再試行可: はいA request with the same Idempotency-Key is still being processed.
  • UNSUPPORTED_SERVICE_COUNTRYHTTP 422再試行可: いいえThis service cannot be ordered in this country. See GET /services/{service}/countries.
  • IDEMPOTENCY_KEY_REUSEDHTTP 422再試行可: いいえThe Idempotency-Key was already used with a different request body.
  • RATE_LIMITEDHTTP 429再試行可: はいToo many requests: more than 60 per 10 seconds on one key, too many failed authentication attempts from one IP, or another order from the same account is still being created. Wait for the number of seconds in Retry-After.
  • UPSTREAM_ERRORHTTP 502再試行可: はいThe number provider failed. Nothing was charged.
  • INTERNAL_ERRORHTTP 500再試行可: はいUnexpected server error. Nothing was charged. Retry with the same Idempotency-Key.