POST
v1.1.0stable

Renew Device Membership

Batch update device membership expiry with flexible matching and renewal modes.

POST/api/device/membership/renew
Auth:API Key
Granica:30/minute

Parametry żądania

Wszystkie parametry mogą być przekazywane za pośrednictwem zapytania lub ciała

ParametrRodzajWymaganeOpis
token
stringWymagane
User API token
Przykład: your_api_token_here
mode
stringOpcjonalnie
Renew mode: extend, set, or permanent. Defaults to set when expire_time is provided, otherwise extend
extendsetpermanent
Przykład: extend
base
stringOpcjonalnie
Extend base: auto, current, or now
autocurrentnow
Przykład: auto
days
numberOpcjonalnie
Days to add in extend mode
Przykład: 30
seconds
numberOpcjonalnie
Seconds to add in extend mode. Higher priority than days
Przykład: 2592000
duration
stringOpcjonalnie
Duration expression: 30d, 12h, 60m, or 3600s
Przykład: 30d
expire_time
numberOpcjonalnie
New expiry timestamp for set mode, seconds or milliseconds. 0 means permanent
Przykład: 1772267945
kid
stringOpcjonalnie
Single device KID
Przykład: KID001
udid
stringOpcjonalnie
Single device UDID
Przykład: 00008030-001234567890002E
kids
arrayOpcjonalnie
Device KID array. Comma/space/newline separated strings are also supported
Przykład: KID001,KID002
udids
arrayOpcjonalnie
Device UDID array. If one UDID has multiple certificates, match=all updates all by default. Comma/space/newline separated strings are also supported
Przykład: 00008030-001234567890002E
items
arrayOpcjonalnie
Advanced batch items. Each item can include kid or udid and override mode/base/days/seconds/duration/expire_time
Przykład: [{"kid":"KID001","mode":"extend","days":30},{"udid":"00008030-001234567890002E","mode":"permanent"}]
match
stringOpcjonalnie
Multiple match handling: all, first, or error. Default all
allfirsterror
Przykład: all
continue_on_error
booleanOpcjonalnie
Whether to continue after an item fails. Default true
Przykład: true

Odpowiedź

ParametrRodzajWymaganeOpis
code
numberWymagane
Status code: 1=request processed
Przykład: 1
data.total
numberWymagane
Number of requested device items
Przykład: 2
data.success
numberWymagane
Successful renewal count
Przykład: 2
data.failed
numberWymagane
Failed renewal count
Przykład: 0
data.results[].kid
stringWymagane
Device KID
Przykład: KID001
data.results[].old_expire_time
numberWymagane
Previous membership expiry timestamp. 0 means permanent
Przykład: 1769675945
data.results[].new_expire_time
numberWymagane
New membership expiry timestamp. 0 means permanent
Przykład: 1772267945
data.results[].new_expire_at
stringWymagane
Formatted new expiry time
Przykład: 2026-02-28 15:04:05
Przykład odpowiedzi
{
"code":1,
"msg":"Device membership renewal processed",
"time":1769675945,
"data":
{
"total":2,
"processed_results":2,
"success":2,
"failed":0,
"continue_on_error":true,
"match":"all",
"results":
[
{
"index":0,
"kid":"KID001",
"udid":"00008030-001234567890002E",
"success":true,
"code":1,
"msg":"续期成功",
"old_expire_time":1769675945,
"new_expire_time":1772267945,
"old_expire_at":"2026-01-29 15:04:05",
"new_expire_at":"2026-02-28 15:04:05",
"changed":true,
"matched_count":1
}
,
{
"index":1,
"kid":"KID002",
"udid":"00008030-009876543210002E",
"success":true,
"code":1,
"msg":"续期成功",
"old_expire_time":0,
"new_expire_time":0,
"old_expire_at":"permanent",
"new_expire_at":"permanent",
"changed":false,
"matched_count":1
}
]
}
,
"ip":"192.168.1.100",
"ysucc":"Ysucc"
}

Batch extend 30 days by KID

Use comma-separated kids with extend mode

Batch extend 30 days by KID
{
"token":"your_api_token_here",
"kids":"KID001,KID002",
"mode":"extend",
"days":30
}

Batch extend by UDID

For scenarios where only UDIDs are available. Multiple certificates under one UDID are updated by default

Batch extend by UDID
{
"token":"your_api_token_here",
"udids":"00008030-001234567890002E,00008030-009876543210002E",
"mode":"extend",
"duration":"60d"
}

Set explicit expiry time

Use mode=set to set an explicit membership expiry timestamp

Set explicit expiry time
{
"token":"your_api_token_here",
"kid":"KID001",
"mode":"set",
"expire_time":1772267945
}

Set permanent

Use mode=permanent to make membership permanent

Set permanent
{
"token":"your_api_token_here",
"kid":"KID001",
"mode":"permanent"
}

Per-device strategy

Each item can override global renewal options

Per-device strategy
{
"token":"your_api_token_here",
"items":
[
{
"kid":"KID001",
"mode":"extend",
"days":30
}
,
{
"kid":"KID002",
"mode":"set",
"expire_time":1772267945
}
,
{
"udid":"00008030-001234567890002E",
"mode":"permanent"
}
]
}

Only update latest match for a UDID

With match=first, only the latest matched certificate under the same UDID is updated

Only update latest match for a UDID
{
"token":"your_api_token_here",
"udid":"00008030-001234567890002E",
"mode":"extend",
"days":30,
"match":"first"
}

Kod błędu

Kod błędu4 zdefiniowane
12
Token is required
Missing token parameter
20
Please provide at least one device
Missing kid, kids, udid, udids, or items
21
Invalid mode, valid values: extend/set/permanent
Invalid renewal mode

Język odpowiedzi

Dostosuj język odpowiedzi API do nagłówka X- Lang. Poniższe przykłady kodów automatycznie korzystają z aktualnego języka strony.

Zalecany nagłówek
X-Lang: pl
Obsługiwane języki
zh, en, zh-TW, vi, ar, es, ru

Obsługiwane jest również Accept- Language; X- Lang ma pierwszeństwo. Nieobsługiwane języki podążają za zapasami języka strony.

Przykłady kodów

curl -X POST "https://testypro.iwai.cc,https://cer.xyul.cn,https://cer.iwai.cc/api/device/membership/renew" \
  -H "X-Lang: pl" \
  -H "Content-Type: application/json" \
  -d '{
    "token": "your_api_token_here",
    "mode": "extend",
    "base": "auto",
    "days": 30,
    "seconds": 2592000,
    "duration": "30d",
    "expire_time": 1772267945,
    "kid": "KID001",
    "udid": "00008030-001234567890002E",
    "kids": "KID001,KID002",
    "udids": "00008030-001234567890002E",
    "items": [
      {
        "kid": "KID001",
        "mode": "extend",
        "days": 30
      },
      {
        "udid": "00008030-001234567890002E",
        "mode": "permanent"
      }
    ],
    "match": "all",
    "continue_on_error": true
  }'

Uwagi

  • 该接口仅更新设备会员/证书下载权益到期时间,不会重新签名或扣款
  • 0 表示永久有效;extend 遇到永久有效设备时默认保持永久,可用 base=now 强制改为从当前时间延长
  • UDID 命中多条证书时默认 match=all 全部更新,可传 first 或 error 改变行为
  • 支持 JSON 请求,也支持表单参数;表单 items 可传 JSON 数组字符串

Spróbuj w konsoli

Wypełnij poniższe parametry i wyślij wniosek o przetestowanie. Żądania są kierowane tylko do API tej witryny; adres URL jest zablokowany i nie może być zmieniony, a obecne pliki cookie logowania są włączone.

POSThttps://testypro.iwai.cc/api/device/membership/renewZamknięte na tej stronie
stringWymagane

User API token

string

Renew mode: extend, set, or permanent. Defaults to set when expire_time is provided, otherwise extend

string

Extend base: auto, current, or now

number

Days to add in extend mode

number

Seconds to add in extend mode. Higher priority than days

string

Duration expression: 30d, 12h, 60m, or 3600s

number

New expiry timestamp for set mode, seconds or milliseconds. 0 means permanent

string

Single device KID

string

Single device UDID

array

Device KID array. Comma/space/newline separated strings are also supported

array

Device UDID array. If one UDID has multiple certificates, match=all updates all by default. Comma/space/newline separated strings are also supported

array

Advanced batch items. Each item can include kid or udid and override mode/base/days/seconds/duration/expire_time

string

Multiple match handling: all, first, or error. Default all

boolean

Whether to continue after an item fails. Default true