メニュー
REST API v1 ドキュメント

SSL証明書 自動注文 API

BASE URL https://www.slogical.co.jp/ssl/api/v1/
📦 注文作成 📋 ステータス確認 📥 証明書ダウンロード 🔄 再発行 📄 CSR 生成 🗑 キャンセル 📑 注文一覧取得 📊 利用状況確認 ⏰ 満了間近一覧
注文対応製品:RapidSSLQuickSSL Premium(ワイルドカード含む)。年・月・満了日指定での発注が可能です。
ステータス確認・再発行・ダウンロード:OV/EV 証明書を含む DigiCert 全製品に対応。
利用開始:マイページ から API キーをお申し込みください。接続元 IP アドレスの登録が必要です。

ページ更新日:2026/08/30 / 仕様変更の履歴

💻 Go サンプルクライアント 新規注文・再発行・PFX作成(OpenSSL不要)を自動化するサンプルプログラム。go run ですぐ実行可能。メール・ファイル・DNS(Route53)認証に対応。途中再開もOK。
REST APIでCSR生成→注文→ステータス確認を行うクイックスタートのデモ
▲ クイックスタート:CSR生成 → 注文 → ステータス確認(サンドボックス実行例)。コマンドは下の cURLサンプル をそのまま実行できます。

1. ベース URL

API は本番環境とサンドボックス環境で同じ URL を利用します。

サンドボックス環境では実際の請求や証明書発行は行われません。疎通確認や実装テストにご利用ください。
※サンドボックス注文すると、マイページで「キャンセルされた注文」としてご確認いただけます。
※サンドボックス注文では、ファイル認証のAPIキーや証明書などのレスポンスがダミー値になります。

2. 認証(API キー)

API の利用には、事前に マイページ からお申込みいただいた API キー が必要です。
弊社にて内容確認のうえ、本番用・サンドボックス用の API キーを発行します。

リクエストヘッダーに、以下の形式で API キーを送信してください。

Authorization: ApiKey <発行されたAPIキー>

接続元 IP アドレス制限 をしておりますので、アクセス元IPアドレスをお教えください。
登録されていない IP からのAPIアクセスは認証エラーとなります。

3. エンドポイント一覧

HTTP メソッド パス 概要
POST /ssl/api/v1/orders 注文作成(証明書の新規発行/更新)
GET /ssl/api/v1/orders/{order_id} 注文ステータス・DCV 用トークン取得
DELETE /ssl/api/v1/orders/{order_id} 注文キャンセル
GET /ssl/api/v1/orders オーダー一覧取得
POST /ssl/api/v1/csrs CSR 作成(秘密鍵生成を含む)
POST /ssl/api/v1/orders/{order_id}/reissue 証明書再発行
DELETE /ssl/api/v1/orders/{order_id}/reissue 再発行キャンセル
GET /ssl/api/v1/certificates/{order_id} 証明書/中間証明書のダウンロード
GET /ssl/api/v1/usage API 利用状況の取得(当月のコール数・エンドポイント別件数等)
GET /ssl/api/v1/expiry?type={renewal|reissue|cert} 満了間近コモンネーム一覧の取得(マイページの CSV と同内容)
GET /ssl/api/v1/monitor SSL監視の最新チェック結果の取得(SSL監視プラン Pro 限定)

4. リクエスト形式

文字コード: UTF-8
Content-Type: application/json
ボディ: POST /ssl/api/v1/ordersPOST /ssl/api/v1/csrsPOST /ssl/api/v1/orders/{order_id}/reissue のみ JSON ボディ必須、その他のエンドポイントはボディ不要です。

4-1. 注文作成リクエスト(POST /ssl/api/v1/orders)

代表的なフィールドは次の通りです(実際のフィールド名は英語で、値の内容は日本語を含んでも構いません)。

※ 未使用のフィールドは空文字列でも構いません。必須項目や書式の詳細は、下記の cURLサンプルをご確認ください。

5. レスポンス形式

全てのエンドポイントは JSON でレスポンスを返します。

{
  "status": "OK" | "NG",
  "order_id": 12345,
  "digicert_order_id": 67890,
  "order_status": "issued" | "pending" | "...",
  "token": "dcv-random-value",
  "certificate": "-----BEGIN CERTIFICATE----- ...",
  "intermediate_certificate": "-----BEGIN CERTIFICATE----- ...",
  "order": {
    "id": 12345,
    "ssl_type": "ra01",
    "months": "",
    "csrinfo_cn": "www.example.com",
    "csrinfo_bit": "2048",
    "sans": "",
    "hash_algorithm": "sha256",
    "www_option": "a",
    "dcv_scope": "",
    "ev_jp_corp_name": "",
    "c_email": "info@example.com",
    "c_email_add1": "",
    "c_email_add2": "",
    "c_email_invoice": "billing@example.com",
    "c_email_invoice_add1": "",
    "c_email_invoice_add2": ""
  },
  "message": [
    "説明メッセージ1",
    "説明メッセージ2"
  ]
}

6. cURL サンプル

6-1. 注文作成(POST /ssl/api/v1/orders)

サンドボックス環境でのサンプルです。実際の CSR や組織情報に置き換えてご利用ください。

curl -i -X POST "https://www.slogical.co.jp/ssl/api/v1/orders" \
  -H "Authorization: ApiKey <YOUR_SANDBOX_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "certificate": {
      "product": "RapidSSL",
      "years": 1,
      "is_update": "n",
      "server_type": "その他",
      "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICbzCCAVcCAQAwKjELMAkGA1UEBhMCSlAxGzAZBgNVBAMMEnd3dy5zbG9naWNh\nbC5jby5qcDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJafWY/71gSa\nayKMqZgeYvw3raKJyquMnIIMeVUMtJeeNSwvs54X6By+YbUkECVhQW10Q02BrLzz\n+fnrLUHp9b6QHfDlIOh6vmXNwEsJAwP8TW6ay3XAfLpr0tQ0xH9z3D51coK8Qw9m\nQlzfAN0m9b3vYOJwEFdXJRxIGiMksnOcBQMXDgruGOox/YoNiuXsKChGts9oDYAR\n1o9kzPtAgEC57SEg1TQyNiMXh8J93htgkTX1ZPca59TUiWPT3ZBmRrO4kfUn3f6v\nspnNbzC/fwRDS55x0naXbCh8FBwh1xgLpth/IIZXacp6s6DEDNofk5fZRC7RnMCQ\njEt+/I6ZREECAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQCRpFDYUUOPDNMu6DGq\nSQj23tMDiUj9Wx1tZzD3n+faRPatkahnAQjmnfOH5OsaYDRkPknA/vVfWfRKNkiY\njFx+UFpyW8RrY+WzfuuEjrBNTFneSrp2h7ot3pbXoH/mQGjduqCzt+sjlhJ4oLMd\numaX7UJjmKwjGSa6itWNPM0FVXDjDhNKO/Lso0+nRvgB3HWxXHST7WeK4RAaLR69\n3Gvckf/2LgrClgYOj336E4hEyPDaQa6ftX2BGtXLq4kRxejjSpOUyv3eC469SnEk\nHJBx+dnaRZq9GZB/lIZxtfcmfKERoW3G8/GpjgWliMTpf3Ur9nzNEWsO6SeTFodT\nRWq8\n-----END CERTIFICATE REQUEST-----",
      "www_option": "a",
      "dcv": "file"
    },
    "organization": {
      "corp_name": "株式会社エスロジカル",
      "name1": "関",
      "name2": "一真",
      "name_alph1": "Seki",
      "name_alph2": "Kazumasa",
      "tel": "048-837-7778",
      "email": "seki@slogical.co.jp",
      "email_add1": "info@example.com",
      "email_add2": "info2@example.com",
      "post": "3300854",
      "addr1": "埼玉県",
      "addr2": "さいたま市大宮区",
      "addr3": "桜木町1-195-1",
      "addr4": "大宮ソラミチKOZ4階 エキスパートオフィス大宮"
    },
    "contact": {
      "is_postpay": "y",
      "email_invoice": "billing@example.com",
      "email_invoice_add1": "keiri@example.com",
      "email_invoice_add2": "keiri2@example.com",
      "memo": "APIからの注文です"
    }
  }'

6-1-2. 月単位での注文(certificate.months)

years の代わりに months(3~11)を指定します。

curl -i -X POST "https://www.slogical.co.jp/ssl/api/v1/orders" \
  -H "Authorization: ApiKey <YOUR_SANDBOX_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "certificate": {
      "product": "RapidSSL",
      "months": 3,
      "is_update": "n",
      "server_type": "その他",
      "csr": "-----BEGIN CERTIFICATE REQUEST-----\n...\n-----END CERTIFICATE REQUEST-----",
      "www_option": "a",
      "dcv": "file"
    },
    "organization": {
      "corp_name": "株式会社エスロジカル",
      "name1": "関",
      "name2": "一真",
      "name_alph1": "Seki",
      "name_alph2": "Kazumasa",
      "tel": "048-837-7778",
      "email": "seki@slogical.co.jp",
      "post": "3300854",
      "addr1": "埼玉県",
      "addr2": "さいたま市大宮区",
      "addr3": "桜木町1-195-1"
    },
    "contact": {
      "is_postpay": "y"
    }
  }'

6-1-3. 満了日指定での注文(certificate.expire)

years / months の代わりに expireYYYY-MM-DD 形式)を指定します。
価格は今日から満了日までの日数を30日で割り上げた月数で計算されます。

curl -i -X POST "https://www.slogical.co.jp/ssl/api/v1/orders" \
  -H "Authorization: ApiKey <YOUR_SANDBOX_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "certificate": {
      "product": "RapidSSL",
      "expire": "2026-12-31",
      "is_update": "n",
      "server_type": "その他",
      "csr": "-----BEGIN CERTIFICATE REQUEST-----\n...\n-----END CERTIFICATE REQUEST-----",
      "www_option": "a",
      "dcv": "file"
    },
    "organization": {
      "corp_name": "株式会社エスロジカル",
      "name1": "関",
      "name2": "一真",
      "name_alph1": "Seki",
      "name_alph2": "Kazumasa",
      "tel": "048-837-7778",
      "email": "seki@slogical.co.jp",
      "post": "3300854",
      "addr1": "埼玉県",
      "addr2": "さいたま市大宮区",
      "addr3": "桜木町1-195-1"
    },
    "contact": {
      "is_postpay": "y"
    }
  }'

6-2. 注文ステータス・DCV トークン取得(GET /ssl/api/v1/orders/{order_id})

curl -i "https://www.slogical.co.jp/ssl/api/v1/orders/12345" \
  -H "Authorization: ApiKey <YOUR_SANDBOX_API_KEY>"

レスポンスの order_status で発行状況を確認できます。また、token フィールドにファイル認証/DNS 認証で利用するランダムコードが含まれます。

レスポンス例:

{
  "status": "OK",
  "is_sandbox": false,
  "order_id": 12345,
  "digicert_order_id": 67890,
  "order_status": "issued",
  "token": "_abcdefghijklmnopqrstuvwxyz01234",
  "order": {
    "id": 12345,
    "ssl_type": "ra01",
    "months": "",
    "csrinfo_cn": "www.example.com",
    "csrinfo_bit": "2048",
    "sans": "",
    "hash_algorithm": "sha256",
    "www_option": "a",
    "dcv_scope": "",
    "ev_jp_corp_name": "",
    "c_email": "info@example.com",
    "c_email_add1": "",
    "c_email_add2": "",
    "c_email_invoice": "billing@example.com",
    "c_email_invoice_add1": "",
    "c_email_invoice_add2": ""
  }
}

※ DigiCert への注文処理が完了する前にリクエストした場合、order_status は返されず、message"Please wait. Your order is being processed." が含まれます。その場合でも order オブジェクトは返されます。

6-3. 証明書ダウンロード(GET /ssl/api/v1/certificates/{order_id})

curl -i "https://www.slogical.co.jp/ssl/api/v1/certificates/12345" \
  -H "Authorization: ApiKey <YOUR_SANDBOX_API_KEY>"

# ルート証明書も含めたい場合(オプション)
curl -i "https://www.slogical.co.jp/ssl/api/v1/certificates/12345?include_root=true" \
  -H "Authorization: ApiKey <YOUR_SANDBOX_API_KEY>"

order_statusissued になった後、このエンドポイントからサーバー証明書と中間証明書(PEM 形式)を取得できます。
2026/02/07 証明書の改行コードを LF(Unix)で統一いたしました。

6-4. 注文キャンセル(DELETE /ssl/api/v1/orders/{order_id})

SSL証明書がまだ発行されていない場合に限り、APIからのキャンセルが可能です。
それ以外のステータスではキャンセルはエラーとなり、手動対応が必要です。

curl -i -X DELETE "https://www.slogical.co.jp/ssl/api/v1/orders/12345" \
  -H "Authorization: ApiKey <YOUR_SANDBOX_API_KEY>"

成功時は 200 OK が返り、レスポンスの statusOK になります。

{
  "status": "OK",
  "order_id": 12345,
  "message": [
    "This order has been canceled."
  ]
}

すでにキャンセルされている注文、またはキャンセルできない状態の場合は、
status: "NG" および関連するメッセージが返されます。

6-5. オーダー一覧取得(GET /ssl/api/v1/orders)

過去の注文を一覧で取得します。結果は注文 ID の降順(新しい順)で返されます。
ページングや検索条件(注文日・コモンネーム等)をクエリパラメータで指定できます。
特定のコモンネームに対して「新規発行・更新・再発行」のどれを実行すべきかを判定したい場合は、GET /ssl/api/v1/orders?common_name_exact=<CN>&per_page=1 を実行してください。コモンネームの完全一致で最新のご注文 1 件を取得でき、そのご注文に付く recommended_operation(次に必要な操作)・order_state(ご注文の状態)・残日数から、そのまま自動判定できます(詳細は下記「更新・再発行の自動判定」)。
order.expire は契約期限ではありません(満了日指定でご注文いただいた場合のみ値が入る、ご注文時の控えです。詳細は「5. レスポンス形式」の order フィールド説明をご参照ください)。
なお、更新・再発行の対象をまとめて抽出する場合は、専用の GET /ssl/api/v1/expiry(下記 6-10.)をご利用いただくと、残日数付きで満了の近い順に取得できるため簡便です。

パラメータ名 説明
pageページ番号(デフォルト: 1)page=2
per_page1ページあたり件数(デフォルト: 30、最大: 200)per_page=10
common_nameコモンネームで部分一致検索common_name=example.com
common_name_exactコモンネームで完全一致検索。自動化で対象注文を一意に特定する場合はこちらをご利用ください(common_name と併用した場合は両方の条件が AND で適用されます)common_name_exact=re-shop.jp
corp_name会社名で部分一致検索corp_name=エスロジカル
created_from注文日(From)YYYY-MM-DDcreated_from=2025-01-01
created_to注文日(To)YYYY-MM-DDcreated_to=2025-12-31
digicert_cert_from証明書有効期限(From)YYYY-MM-DDdigicert_cert_from=2026-01-01
digicert_cert_to証明書有効期限(To)YYYY-MM-DDdigicert_cert_to=2026-03-31
digicert_contract_fromDigiCert 契約期限(From)YYYY-MM-DDdigicert_contract_from=2026-01-01
digicert_contract_toDigiCert 契約期限(To)YYYY-MM-DDdigicert_contract_to=2026-12-31
include_csrtrue を指定すると CSR 全文を返す(デフォルト: 返さない)include_csr=true
include_deletedtrue を指定するとキャンセル済み注文も含めるinclude_deleted=true
# 全件取得(新しい順)
curl -i "https://www.slogical.co.jp/ssl/api/v1/orders?page=1&per_page=30" \
  -H "Authorization: ApiKey <YOUR_API_KEY>"

# コモンネームで絞り込み(部分一致)
curl -i "https://www.slogical.co.jp/ssl/api/v1/orders?common_name=www.example.com" \
  -H "Authorization: ApiKey <YOUR_API_KEY>"

# コモンネームで絞り込み(完全一致)— 自動化ではこちら
curl -i "https://www.slogical.co.jp/ssl/api/v1/orders?common_name_exact=re-shop.jp" \
  -H "Authorization: ApiKey <YOUR_API_KEY>"

# 対象コモンネームの最新のご注文 1 件だけ取得(更新・再発行の判定用)
curl -i "https://www.slogical.co.jp/ssl/api/v1/orders?common_name_exact=www.example.com&per_page=1" \
  -H "Authorization: ApiKey <YOUR_API_KEY>"

common_name部分一致のため、たとえば common_name=re-shop.jpemetore-shop.jp のご注文にも一致します。自動化で対象のご注文を一意に特定する場合は、必ず common_name_exact をご利用ください。
common_name_exact に空文字や使用できない文字(英数字・.-_* 以外)を指定した場合は 400 エラーになります。条件を黙って無視して全件を返すことはありません(誤った注文を対象にした自動処理を防ぐためです)。大文字小文字は区別しません。

レスポンス例:

{
  "status": "OK",
  "is_sandbox": false,
  "total": 2,
  "page": 1,
  "per_page": 30,
  "orders": [
    {
      "order": {
        "id": 12345,
        "ssl_type": "ra01",
        "months": "",
        "expire": "",
        "csrinfo_cn": "www.example.com",
        "csrinfo_bit": "2048",
        "sans": "",
        "hash_algorithm": "sha256",
        "www_option": "a",
        "ev_jp_corp_name": "",
        "is_update": "n",
        "created": "2026-02-01 10:00:00"
      },
      "product_name": "RapidSSL 1年",
      "digicert_order_id": 67890,
      "digicert_order_till_gmt": "2027-02-01",
      "digicert_cert_valid_till_gmt": "2026-12-01",
      "digicert_status": "issued",
      "order_state": "issued",
      "recommended_operation": "reissue",
      "recommended_operation_reason": "cert_expires_before_contract",
      "newer_order_pending": false,
      "is_latest_for_cn": true,
      "days_to_contract_expiry": 155,
      "days_to_cert_expiry": 93
    },
    {
      "order": {
        "id": 12346,
        "ssl_type": "rw01",
        "months": "",
        "expire": "",
        "csrinfo_cn": "*.example.com",
        "csrinfo_bit": "2048",
        "sans": "",
        "hash_algorithm": "sha256",
        "www_option": "n",
        "ev_jp_corp_name": "",
        "is_update": "n",
        "created": "2025-05-01 10:00:00"
      },
      "product_name": "RapidSSL ワイルドカード 1年",
      "digicert_order_id": 67891,
      "digicert_order_till_gmt": "2026-05-01",
      "digicert_cert_valid_till_gmt": "2026-05-01",
      "digicert_status": "expired",
      "order_state": "expired",
      "recommended_operation": "renew",
      "recommended_operation_reason": "contract_expired",
      "newer_order_pending": false,
      "is_latest_for_cn": true,
      "days_to_contract_expiry": -121,
      "days_to_cert_expiry": -121
    }
  ]
}

digicert_cert_valid_till_gmt(証明書有効期限)は、DigiCert にて証明書が発行済みの場合のみ値が入ります。order_statuspending などの未発行状態では空文字になります。
order.months / order.expireご注文時のリクエスト値の控えであり、契約・証明書の満了日ではありません。年単位(certificate.years)のご注文ではいずれも空文字になります。満了日は digicert_order_till_gmt(契約満了日)/digicert_cert_valid_till_gmt(証明書有効期限)をご参照ください。
digicert_order_till_gmt / digicert_cert_valid_till_gmt は、DigiCert 以外の認証局の商品(サイバートラスト系など、ウェブサイトからのご注文分)では空文字になります。

更新・再発行の自動判定(recommended_operation)

各ご注文には、そのコモンネームについて次に必要となる証明書操作の判定結果が付きます。
GET /ssl/api/v1/expiry(下記 6-10.)の「満了 90 日以内」という抽出条件とは切り離しており、現時点の契約満了日と証明書有効期限だけから renew(更新)か reissue(再発行)かを常に返します。実際に何日前に申請するかは days_to_contract_expiry / days_to_cert_expiry をご覧のうえ、御社の運用ルールでご判断ください。

フィールド説明
recommended_operation次に必要な操作。renew(更新)/reissue(再発行)/none(何もしない)/unknown(判定不能)
recommended_operation_reason判定根拠のコード(下表)
order_stateご注文の状態。accepted(ご注文受付・認証局への申請前)/processing(申請済み・発行待ち)/issued(発行済み)/reissue_pending(再発行申請中)/expired(契約満了)/rejected(却下)/revoked(失効)/canceled(キャンセル済み)/unknown(判定不能)
digicert_statusDigiCert のステータス生値。未連携・未同期の場合は空文字
newer_order_pending同一コモンネームで、このご注文より新しい発行待ちのご注文がある場合 trueGET /ssl/api/v1/expiry の同名フィールドと同じ意味です)
is_latest_for_cn同一コモンネームで最も新しいご注文(キャンセル済みを除く)であれば truefalse の行は判定対象外です(recommended_operationnone。ただし judgement_unavailable の場合を除く。下記の注をご参照ください)
days_to_contract_expiry契約満了までの残日数(マイナスは満了済み)。不明な場合は null
days_to_cert_expiry証明書満了までの残日数(マイナスは満了済み)。不明な場合は null

判定根拠(recommended_operation_reason):

reasonoperation意味
cert_expires_before_contractreissue契約期間が残っているのに証明書が先に満了する(再発行で証明書を出し直せる)
contract_expires_firstrenew契約満了が証明書満了と同時か先に来る(更新のご注文が必要)
contract_expiredrenew契約が満了済み(再発行はできないため更新のみ)
application_in_progressnoneご注文を受け付け済み、または認証局へ申請済みで発行待ち
reissue_in_progressnone再発行を申請中
superseded_by_newer_ordernone同一コモンネームにより新しいご注文がある(判定はそちらの行をご覧ください)
order_cancelednoneキャンセル済みのご注文(include_deleted=true のときのみ現れます)
not_a_certificate_ordernoneコモンネームを持たないご注文(SSL監視プランのお申し込みなど)
no_expiry_dataunknown契約満了日・証明書有効期限のどちらかが取得できない
order_rejected / order_revoked / order_canceled_at_caunknown認証局側で却下・失効・取消(お問い合わせください)
unknown_order_stateunknownDigiCert 以外の認証局の商品、または想定外のステータス
judgement_unavailableunknown弊社側で判定に必要な情報を集計できなかった(一時的な障害)。時間をおいて再取得してください

recommended_operation_reasonjudgement_unavailable の場合、is_latest_for_cnnewer_order_pending の値は信用しないでください。判定に必要な集計自体ができていないため、両方とも false(=それぞれ「最新ではない」「後続の申請はない」と読める値)が入りますが、実際にそうであるとは限りません。この場合は recommended_operation: "unknown" のみを見て、自動処理を停止してください。

自動化での使い方(例:満了 30 日前から申請する運用の場合):

GET /ssl/api/v1/orders?common_name_exact=<CN>&per_page=1

total == 0                                             → 新規発行(POST /orders)
orders[0].recommended_operation == "none"              → 何もしない(申請中・より新しい注文あり)
orders[0].recommended_operation == "renew"
    && days_to_contract_expiry <= 30                   → 更新(POST /orders, is_update=y)
orders[0].recommended_operation == "reissue"
    && days_to_cert_expiry <= 30                       → 再発行(POST /orders/{id}/reissue)
orders[0].recommended_operation == "unknown"           → エラーとして停止(人手で確認)

per_page=1 は「そのコモンネームの最も新しいご注文」を返します(注文 ID の降順のため)。更新のご注文が登録されると、通常はその新しいご注文が order_state: "accepted"(=recommended_operation: "none")として先頭に表示されます。再発行は、状態の反映後に order_state: "reissue_pending" となります。いずれも排他制御や反映遅延の影響を受けますので、下記「自動化を安全に運用するための注意」を必ずご確認ください。
recommended_operation は「契約と証明書のどちらが先に満了するか」だけで決まります。契約満了も近い時期(例:契約 40 日・証明書 30 日)は reissue と判定されますが、この場合は再発行しても新しい証明書の期限は契約満了日までとなります。無駄な再発行を避けたい場合は、days_to_contract_expiry が一定日数以下なら更新を優先する、といった条件を御社側で追加してください。
days_to_* の日付境界は 日本時間の午前 9 時です(満了日を UTC の 0:00 として解釈しているため)。日本時間の 0:00〜9:00 の間は、当日満了の契約が「残り 1 日」と表示されます。マイページの満了一覧 CSV・満了通知メールと同じ計算方法に揃えているための仕様です。満了日そのもの(digicert_order_till_gmt / digicert_cert_valid_till_gmt)は影響を受けませんので、厳密な日数が必要な場合はそちらからご計算ください。
※ 判定に使う満了日は認証局と同期したもので、通常は 1 日 1 回(深夜)更新されます。

自動化を安全に運用するための注意

判定は取得した時点のスナップショットです。API 側で「同じコモンネームについて二重に申請できない」ようロック(排他制御)は行っておりませんので、次の点にご留意ください。

※ サンドボックス用 API キーでは、コモンネーム www.example.com の発行済みダミー 1 件を返します(common_name_exact も効くため、0 件=新規発行の分岐も動作確認できます)。ダミーの満了日は実行時刻を基準に「契約=約 2 年後/証明書=約 90 日後」で組み立てるため、recommended_operation は常に reissue になります。固定値ではありませんので、テストで値を突き合わせる場合はご注意ください。
※ 同一ドメインを大文字・小文字の異なる表記(例 WWW.example.jpwww.example.jp)で複数回ご注文いただいている場合、GET /ssl/api/v1/expiry 側では表記ごとに別のコモンネームとして集計されるため、newer_order_pending の値が本エンドポイントと食い違うことがあります。GET /orders 側は大文字小文字を区別せず同一ドメインとして扱います。表記を揃えてご注文いただくことを推奨します。

6-6. CSR 作成(POST /ssl/api/v1/csrs)

秘密鍵と CSR を API で生成します。
key_typekey_size は省略可能で、デフォルトは RSA 2048bit です。

curl -i -X POST "https://www.slogical.co.jp/ssl/api/v1/csrs" \
  -H "Authorization: ApiKey <YOUR_SANDBOX_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "common_name": "www.example.com",
    "country": "JP"
  }'
curl -i -X POST "https://www.slogical.co.jp/ssl/api/v1/csrs" \
  -H "Authorization: ApiKey <YOUR_SANDBOX_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "common_name": "www.example.com",
    "country": "JP",
    "state": "Saitama-shi",
    "locality": "Saitama",
    "organization": "Example Inc"
  }'

6-7. 再発行(POST /ssl/api/v1/orders/{order_id}/reissue)

既存注文(発行済)に対して、CSR を差し替えて再発行します。
CSR の Common Name は元注文と一致している必要があります(一致しない場合はエラー)。
RapidSSL・QuickSSL Premium(DV)に加え、トゥルービジネスID・デジサート Secure Site 等の OV/EV 証明書も申請できます。
ただし OV/EV 証明書の再発行は、認証局(DigiCert)側で組織の再審査が行われる場合があります。

curl -i -X POST "https://www.slogical.co.jp/ssl/api/v1/orders/12345/reissue" \
  -H "Authorization: ApiKey <YOUR_SANDBOX_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "certificate": {
      "csr": "-----BEGIN CERTIFICATE REQUEST-----\n...\n-----END CERTIFICATE REQUEST-----",
      "dcv": "file"
    }
  }'

2026/02/07 リクエスト例の記載に誤りがありましたので訂正しました。

6-8. 再発行キャンセル(DELETE /ssl/api/v1/orders/{order_id}/reissue)

進行中の再発行をキャンセルします(状態によってはキャンセル不可の場合があります)。

curl -i -X DELETE "https://www.slogical.co.jp/ssl/api/v1/orders/12345/reissue" \
  -H "Authorization: ApiKey <YOUR_SANDBOX_API_KEY>"

6-9. API 利用状況の取得(GET /ssl/api/v1/usage)

ご自身(認証中の API キーに紐づく会員)の 当月の API 利用状況 を取得します。
総コール数・エラー数・最終利用日時・エンドポイント別件数を返します。他のお客様のデータは含まれません。
※ 集計対象は当月(サーバーのローカル時刻基準)です。ボディは不要です。

curl -i "https://www.slogical.co.jp/ssl/api/v1/usage" \
  -H "Authorization: ApiKey <YOUR_API_KEY>"

レスポンス例:

{
  "status": "OK",
  "is_sandbox": false,
  "usage": {
    "period": "2026-06",
    "total_calls": 128,
    "error_calls": 3,
    "last_used": "2026-06-13 09:42:11",
    "by_endpoint": [
      { "endpoint": "GET /orders", "calls": 80 },
      { "endpoint": "POST /orders", "calls": 30 },
      { "endpoint": "GET /certificates/{id}", "calls": 18 }
    ]
  }
}

※ マイページの「API(注文自動化)」画面でも、同じ当月の利用状況をご確認いただけます。

6-10. 満了間近CN一覧の取得(GET /ssl/api/v1/expiry)

更新・再発行期日の迫っているコモンネームの一覧を取得します。
マイページからダウンロードできる CSV(renewal_cn.csv / reissue_cn.csv / cert_expiry_cn.csv)と同じ内容・同じ並び順です。
※ 同一コモンネームは最新の注文 1 件に集約されます。ボディは不要です。

curl -i "https://www.slogical.co.jp/ssl/api/v1/expiry?type=renewal" \
  -H "Authorization: ApiKey <YOUR_API_KEY>"

レスポンス例:

{
  "status": "OK",
  "is_sandbox": false,
  "expiry": {
    "type": "renewal",
    "total": 2,
    "items": [
      {
        "order_id": 12345,
        "created": "2025-08-01 10:23:45",
        "common_name": "www.example.jp",
        "status": "issued",
        "newer_order_pending": false,
        "digicert_order_till_gmt": "2026-08-01",
        "digicert_cert_valid_till_gmt": "2026-08-01",
        "days": 28
      },
      {
        "order_id": 12388,
        "created": "2025-09-10 09:00:00",
        "common_name": "shop.example.jp",
        "status": "issued",
        "newer_order_pending": true,
        "digicert_order_till_gmt": "2026-09-10",
        "digicert_cert_valid_till_gmt": "2026-09-10",
        "days": 68
      }
    ]
  }
}

type の指定がない場合や上記 3 種以外の場合は 400 エラーになります。
※ サンドボックス用 API キーではダミーの固定値を返します。
※ こちらは「満了 90 日以内のものを一覧で取得する」エンドポイントです。特定のコモンネーム 1 件について次に必要な操作を判定したい場合は、GET /ssl/api/v1/orders?common_name_exact=<CN>&per_page=1recommended_operation(上記 6-5.「更新・再発行の自動判定」)をご利用ください。90 日という抽出条件に依存せず判定できます。

6-11. SSL監視の最新チェック結果の取得(GET /ssl/api/v1/monitor)

SSL監視プラン の監視対象FQDNごとに、最新の自動チェック結果(スコア・証明書残日数・満了日など)を取得します。 外部CN(当店ご購入以外の証明書)も含まれます。Pro プラン限定です(対象外プランは 403 を返します)。ボディは不要です。

curl -i "https://www.slogical.co.jp/ssl/api/v1/monitor" \
  -H "Authorization: ApiKey <YOUR_API_KEY>"

レスポンス例:

{
  "status": "OK",
  "is_sandbox": false,
  "monitor": {
    "type": "latest",
    "total": 2,
    "items": [
      {
        "fqdn": "www.example.jp",
        "source_cn": "*.example.jp",
        "manual": false,
        "checked_at": "2026-07-12 02:10:33",
        "scored": true,
        "score": "A",
        "score_num": 90,
        "days_left": 45,
        "cert_to": "2026-08-26 23:59:59",
        "cert_cn": "*.example.jp",
        "issuer": "RapidSSL TLS RSA CA G1"
      },
      {
        "fqdn": "ext.example.net",
        "source_cn": "ext.example.net",
        "manual": true,
        "checked_at": "2026-07-12 02:11:05",
        "scored": false,
        "score_num": 0,
        "days_left": 0,
        "error": "接続できないか、証明書を取得できませんでした"
      }
    ]
  }
}

※ データはSSL監視バッチの実行時点(プランの頻度による)のものです。リアルタイムの再チェックは行いません。
※ 監視から除外・削除した対象(除外CN・削除した外部CN/監視FQDN)は応答から即時に除外されます。契約満了により監視対象から外れたものは、最後のチェックから最大45日で応答から消えます。
※ サンドボックス用 API キーではダミーの固定値を返します。

7. 更新履歴

API の仕様変更・機能追加の履歴です。既存のリクエスト形式が動かなくなる変更(後方非互換な変更)は行わない方針で、レスポンスへのフィールド追加を基本としています。
※ 本履歴は 2026 年 4 月以降の主な変更を記載しています。それ以前の変更は記録しておりません。

日付 変更内容
2026-08-30 オーダー一覧取得(GET /orders)に、更新・再発行の自動判定を追加(上記 6-5.)
・クエリ common_name_exact(コモンネームの完全一致検索)を追加
・レスポンスに recommended_operation / recommended_operation_reason / order_state / digicert_status / newer_order_pending / is_latest_for_cn / days_to_contract_expiry / days_to_cert_expiry を追加(既存フィールドの削除・名称変更はありません)
サンドボックス用 API キーのダミー応答を変更しました。判定フィールドをお試しいただけるよう、発行済み・満了日ありのご注文を返します(order.is_donedigicert_order_id・満了日の値が従来と変わります。満了日は実行時刻を基準にした動的な値です)。サンドボックスの応答を固定値として比較しているテストがある場合はご確認ください。
2026-08-02 月単位のご注文の下限を 3 ヵ月に変更(certificate.months は 3〜11。certificate.expire では 3 ヵ月より短い期間も指定できますが、価格は 3 ヵ月分が下限です)
2026-07-19 Go サンプルクライアントの ZIP 配布を開始
2026-07-12 SSL監視の最新チェック結果取得(GET /ssl/api/v1/monitor)を追加(Pro プラン限定)
2026-07-04 満了間近CN一覧の取得(GET /ssl/api/v1/expiry)を追加
2026-06-27 ドメイン認証の範囲指定(certificate.dcv_scope)を追加(注文・再発行)
2026-06-16 メール送付先の追加指定を拡張(組織情報 organization.email_add1 / email_add2、請求 contact.email_invoice_add1 / email_invoice_add2
2026-06-13 API 利用状況の取得(GET /ssl/api/v1/usage)を追加
2026-05-11 Go サンプルクライアントを公開
2026-04-19 月単位のご注文(certificate.months)と満了日指定のご注文(certificate.expire)に対応

8. お問い合わせ

API の仕様に関するご質問など、お気軽に お問い合わせ ください。