GETPOST
v1.0.0stable

Check Certificate Status

Check certificate status using token authentication and either a certificate KID or device UDID

GET | POST/api/device/certcheck
Auth:API Key
Limit:30/minute

Request Parameters

All parameters can be passed via Query or Body

ParameterTypeRequiredDescription
token
stringRequired
User API token
Example: your_api_token_here
kid
stringOptional
Certificate KID. Provide either kid or udid
Example: ABC123XYZ
udid
stringOptional
Device UDID. Provide either kid or udid
Example: 00008030-001234567890002E

Response

ParameterTypeRequiredDescription
code
numberRequired
API call status: 1=success, others=failure
Example: 1
msg
stringRequired
Response message
Example: 证书状态正常
time
numberRequired
Server timestamp (Unix seconds)
Example: 1769675945
data
objectRequired
Response payload
data.status
stringRequired
Certificate status: normal/expired/revoked/banned/dropped/unknown
Example: normal
data.status_code
numberRequired
Status code: 205=normal, 203=expired, 204=revoked, 207=banned, 206=dropped, 208=unknown
Example: 205
data.status_text
stringRequired
Status text
Example: 正常
data.details
stringRequired
Details
Example: 证书有效,剩余 180 天过期
data.check_method
stringRequired
Check method: Online check / Local check
Example: 在线检测
data.can_detect_revoke
booleanRequired
Can detect revocation: true=online check available, false=local check only (validity period only)
Example: true
data.revoked_at
stringRequired
Revocation time (only for revoked/banned)
Example: 2026-01-15 10:30:00
data.expires_at
stringRequired
Certificate expiration time
Example: 2027-01-28 15:30:00
data.remaining_days
numberRequired
Remaining valid days
Example: 180
data.cert_info
objectRequired
Certificate information
data.cert_info.common_name
stringRequired
Certificate common name
Example: Apple Development: John Doe (XXXXXXXXXX)
data.cert_info.valid_from
stringRequired
Certificate valid from
Example: 2026-01-28 15:30:00
data.cert_info.valid_to
stringRequired
Certificate valid to
Example: 2027-01-28 15:30:00
data.device
objectRequired
Device information
ip
stringRequired
Requester IP address
Example: 192.168.1.100
ysucc
stringRequired
Success flag, returns "Ysucc" on success
Example: Ysucc
Response Example
{
"code":1,
"msg":"Certificate status normal",
"time":1769675945,
"data":
{
"status":"normal",
"status_code":205,
"status_text":"正常",
"details":"在线验证通过,证书有效,剩余 180 天过期",
"check_method":"在线检测",
"can_detect_revoke":true,
"revoked_at":"",
"expires_at":"2027-01-28 15:30:00",
"remaining_days":180,
"cert_info":
{
"common_name":"Apple Development: John Doe (XXXXXXXXXX)",
"valid_from":"2026-01-28 15:30:00",
"valid_to":"2027-01-28 15:30:00",
"issuer":"Apple Inc.",
"country":"CN"
}
,
"device":
{
"id":12345,
"kid":"ABC123XYZ",
"udid":"00008030-001234567890002E",
"pname":"MyApp Development",
"model":"iPhone 15 Pro",
"shtype":1,
"zt":"normal"
}
}
,
"ip":"192.168.1.100",
"ysucc":"Ysucc"
}

Certificate Dropped (Online)

Online check detected certificate dropped

Certificate Dropped (Online)
{
"code":1,
"msg":"Certificate dropped",
"time":1769675945,
"data":
{
"status":"dropped",
"status_code":206,
"status_text":"掉签",
"details":"证书已被吊销",
"check_method":"在线检测",
"can_detect_revoke":true,
"device":
{
"id":12345,
"kid":"ABC123XYZ",
"udid":"00008030-001234567890002E",
"pname":"MyApp Development",
"zt":"hidden"
}
}
,
"ip":"192.168.1.100",
"ysucc":"Ysucc"
}

Account Banned

Developer account has been banned by Apple

Account Banned
{
"code":1,
"msg":"Developer account has been banned",
"time":1769675945,
"data":
{
"status":"banned",
"status_code":207,
"status_text":"账号封禁",
"details":"Apple 封禁了该开发者账号",
"check_method":"在线检测",
"can_detect_revoke":true,
"revoked_at":"2026-01-15 10:30:00",
"device":
{
"id":12345,
"zt":"hidden"
}
}
,
"ip":"192.168.1.100",
"ysucc":"Ysucc"
}

Local Check (Online Unavailable)

Online check unavailable, fallback to local check, validity period only

Local Check (Online Unavailable)
{
"code":1,
"msg":"Certificate validity normal (revocation not verified)",
"time":1769675945,
"data":
{
"status":"normal",
"status_code":205,
"status_text":"正常",
"details":"本地检测:证书在有效期内,剩余 180 天过期。注意:在线检测不可用,无法确认证书是否被吊销",
"check_method":"本地检测(网络不可用)",
"can_detect_revoke":false,
"expires_at":"2027-01-28 15:30:00",
"remaining_days":180,
"device":
{
"id":12345,
"pname":"MyApp Development",
"zt":"normal"
}
}
,
"ip":"192.168.1.100",
"ysucc":"Ysucc"
}

Multiple Certificates Found

Multiple certificates exist for same UDID, use kid to specify

Multiple Certificates Found
{
"code":103,
"msg":"Multiple devices found, please specify certificate ID",
"time":1769675945,
"data":
{
"count":3,
"devices":
[
{
"id":12345,
"kid":"ABC123",
"pname":"App A",
"shtype":1
}
,
{
"id":12346,
"kid":"DEF456",
"pname":"App B",
"shtype":2
}
,
{
"id":12347,
"kid":"GHI789",
"pname":"App C",
"shtype":1
}
]
}
,
"ip":"192.168.1.100",
"yno":"Yno"
}

Error Codes

Error Codes8 defined
12
Token is required
Token parameter is missing
10
Invalid token
Invalid or expired token
20
Please provide kid or udid
Missing kid or udid

Response Language

Customize the API response language with the X-Lang header. The code examples below automatically use your current site language.

Recommended Header
X-Lang: en
Supported Languages
zh, en, zh-TW, vi, ar

Accept-Language is also supported; X-Lang takes priority. Unsupported languages fall back to English.

Code Examples

curl -X GET "https://testypro.iwai.cc,https://cer.xyul.cn,https://cer.iwai.cc/api/device/certcheck?token=your_api_token_here&kid=ABC123XYZ&udid=00008030-001234567890002E" \
  -H "X-Lang: en"

Notes

  • Supports both GET and POST
  • Provide at least one of: kid or udid
  • If multiple certs exist for same UDID, returns multiple cert prompt
  • Online check: Can detect validity + revocation status, requires network
  • Local check: Only checks validity period, cannot detect revocation
  • Falls back to local check when online unavailable, can_detect_revoke=false
  • Device status auto-updated to hidden when dropped/banned detected
  • Status codes: 205=normal, 203=expired, 204=revoked, 206=dropped, 207=banned, 208=unknown
  • Avoid frequent calls to prevent Apple rate limiting

Try it in Console

Fill in the parameters below and send a request to test. Requests only go to this site's API; the URL is locked and cannot be changed, and your current login cookie is included.

https://testypro.iwai.cc/api/device/certcheck?token=your_api_token_here&kid=ABC123XYZ&udid=00008030-001234567890002ELocked to this site
stringRequired

User API token

string

Certificate KID. Provide either kid or udid

string

Device UDID. Provide either kid or udid