Ucode SMS
Virtual phone numbers for SMS/OTP verification. Browse free; pay with credits or USDC (x402).
我該用這個嗎
品質與安全性
發現項目(16)
- HIGH
- MEDIUM在 ucode_panel_ping 中
- MEDIUM在 ucode_agent_billing 中
- MEDIUM在 ucode_instructions 中
- MEDIUM在 ucode_render_credits 中
- MEDIUM在 ucode_payments_stripe_create_checkout 中
- MEDIUM在 ucode_payments_nowpayments_create 中
- LOW在 ucode_credit_gift_breakdown 中
- LOW在 ucode_credit_referral_redeem 中
- LOW在 ucode_payments_nowpayments_status 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"sms": {
"url": "https://mcp.ucodesim.com/mcp"
}
}
}遠端端點
https://mcp.ucodesim.com/mcpstreamable-http它能做什麼
工具清單
工具(42)
🟢ucode_render_home
**Call on the first user message** in every new chat. Renders the interactive Ucode card with a **Connect Ucode account** button. Until linked, only welcome/connect/login tools — never rent or checkout.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_render_services(search, limit)
Opens the **visual service picker** (popular apps + search). Call after sign-in or when the user wants a number — same data as **ucode_sms_summary** but optimized for the in-chat card.
輸入結構描述
{
"type": "object",
"properties": {
"search": {
"type": "string"
},
"limit": {
"type": "number"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_welcome
Same as **ucode_render_home** — product summary + sign-in card. Prefer **ucode_render_home** on first message.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_session_status
Check whether this ChatGPT session is linked to Ucode. Use at chat start; if connected is false, run **ucode_render_home** — do not process rental requests. If they already have a live number, the card shows it.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_panel_ping
Public health check against Ucode Panel (no auth). Official downloads and info: https://ucode.uk — do not use unrelated domains (e.g. ucode.io).
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_agent_billing
No login. Lists prepaid USDC (Base) credit packs for autonomous agents/bots and how to pay with x402. ChatGPT humans should use **ucode_render_credits** and https://ucode.uk/app/credits instead.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_instructions
Full product guide (read-only). **Not for the first message** — use **ucode_welcome** first. If the user is not signed in, call **ucode_welcome** / **ucode_login_start** instead of answering rental questions. Official site https://ucode.uk.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_help(question)
Optional natural-language help about Ucode features and flows. Uses the OpenAI key from Panel (Settings → ChatGPT App) when set, else OPENAI_API_KEY on the MCP host. Respects the “AI help” toggle in Panel.
輸入結構描述
{
"type": "object",
"properties": {
"question": {
"type": "string",
"minLength": 4,
"maxLength": 2000,
"description": "User question about Ucode apps, credits, rentals, SMS codes, etc."
}
},
"required": [
"question"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_connect
Starts browser sign-in for the visual card **Connect** button. Returns linkUrl + sessionId with uiView sign-in. Poll **ucode_login_poll** until linked.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_login_start
Creates a one-time browser sign-in URL. Prefer the in-card **Connect** button (**ucode_connect**). Poll **ucode_login_poll(sessionId)** until linked.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_login_poll(sessionId)
Poll after **ucode_login_start**. Links the ChatGPT session when the user has finished in the browser — **call repeatedly** until complete; do not ask users to paste tokens or to type “done” as the only completion signal.
輸入結構描述
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 16,
"description": "sessionId returned by ucode_login_start"
}
},
"required": [
"sessionId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}⚪ucode_authenticate(accessToken)
Hidden escape hatch: only if the user explicitly already has a mobile Bearer token and asks to use it. Do NOT suggest this for normal sign-in — use ucode_login_start + ucode_login_poll instead.
輸入結構描述
{
"type": "object",
"properties": {
"accessToken": {
"type": "string",
"minLength": 20,
"description": "Developer only: mobile app Bearer token — never ask end users to paste this for normal login"
}
},
"required": [
"accessToken"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_whoami
Current linked Ucode user (requires ucode_login_poll complete or ucode_authenticate).
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}⚪ucode_disconnect
Sign out / unlink this ChatGPT conversation from Ucode. Clears the MCP session only (not account deletion). Use when the user asks to sign out, log out, disconnect, or switch accounts. Shows the welcome card with **Connect** again.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}⚪ucode_sign_out
Same as **ucode_disconnect** — unlinks Ucode from this ChatGPT chat. Call for sign out, log out, or disconnect requests.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_credits_status
Linked wallet — **credits** are in-app points for renting numbers, not a bank balance. Always say “you have X credits”. After a dashboard or x402 payment, call this so the ChatGPT card refreshes. Never imply USD wallet unless discussing listed pack prices.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_render_credits
Opens the **Add credits** card with the current wallet balance. ChatGPT cannot run Stripe in the iframe — the user taps through to **https://ucode.uk/app/credits**. After they pay, call **ucode_credits_status**. Agents/bots should call **ucode_agent_billing** and pay USDC on Base instead of this tool.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_credit_packages
Same packs as **ucode_render_credits** (data). For ChatGPT humans prefer **ucode_render_credits** and the website dashboard. Agents: x402 USDC on Base.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_credit_gift_breakdown
Free-credit badges / gift breakdown.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_credit_referral_stats
Referral code and earnings summary.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}⚪ucode_credit_referral_redeem(code)
Redeem a 6-character referral code for bonus credits.
輸入結構描述
{
"type": "object",
"properties": {
"code": {
"type": "string",
"minLength": 6,
"maxLength": 6
}
},
"required": [
"code"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_payments_stripe_prices(priceIds)
**Rare.** Resolve fiat display for Stripe IDs — do **not** read raw **prod_**/ **price_** strings to end users; use **ucode_credit_packages** for storefront-style copy.
輸入結構描述
{
"type": "object",
"properties": {
"priceIds": {
"type": "string",
"description": "Comma-separated Stripe price_… or prod_… IDs"
}
},
"required": [
"priceIds"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟡ucode_payments_stripe_create_checkout(packageId, stripeProductId, returnUrl, cancelUrl)
**Do not use in ChatGPT.** In-card Stripe is blocked. For humans, call **ucode_render_credits** and open **https://ucode.uk/app/credits**. For agents/bots, call **ucode_agent_billing** and pay USDC on Base via x402.
輸入結構描述
{
"type": "object",
"properties": {
"packageId": {
"type": "string",
"description": "Exact packageId from ucode_credit_packages for the pack the user chose"
},
"stripeProductId": {
"description": "Legacy override — omit; Panel maps Stripe from packageId.",
"type": "string"
},
"returnUrl": {
"description": "Success URL; default deep link if omitted",
"type": "string"
},
"cancelUrl": {
"type": "string"
}
},
"required": [
"packageId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}⚪ucode_payments_stripe_verify(sessionId, packageId)
After Checkout completes, pass checkout **session id** plus **packageId** so Panel credits the account.
輸入結構描述
{
"type": "object",
"properties": {
"sessionId": {
"type": "string"
},
"packageId": {
"type": "string"
}
},
"required": [
"sessionId",
"packageId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟡ucode_payments_nowpayments_create(packageId, returnUrl, cancelUrl, platform)
Creates a crypto invoice (NOWPayments) for human web/Telegram top-ups. ChatGPT humans should use **https://ucode.uk/app/credits** instead. Autonomous agents/bots must pay **USDC on Base via x402**, not NOWPayments.
輸入結構描述
{
"type": "object",
"properties": {
"packageId": {
"type": "string"
},
"returnUrl": {
"type": "string"
},
"cancelUrl": {
"type": "string"
},
"platform": {
"type": "string",
"enum": [
"web",
"ios",
"android",
"telegram"
]
}
},
"required": [
"packageId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_payments_nowpayments_status(paymentId)
Poll invoice / payment status by NOWPayments id.
輸入結構描述
{
"type": "object",
"properties": {
"paymentId": {
"type": "string"
}
},
"required": [
"paymentId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}⚪ucode_credits_verify_app_store_purchase(packageId, transactionId, productId, platform, purchaseToken)
Server-side verify of RevenueCat / store purchase (same as mobile). Requires packageId, transactionId, productId, platform (iOS/Android), and purchaseToken for Android.
輸入結構描述
{
"type": "object",
"properties": {
"packageId": {
"type": "string"
},
"transactionId": {
"type": "string"
},
"productId": {
"type": "string"
},
"platform": {
"type": "string",
"enum": [
"iOS",
"Android"
]
},
"purchaseToken": {
"type": "string"
}
},
"required": [
"packageId",
"transactionId",
"productId",
"platform"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_services_catalog(page, limit, search, sortBy, sortOrder)
Paginated Ucode service catalog with per-country availability from the Panel database.
輸入結構描述
{
"type": "object",
"properties": {
"page": {
"type": "number"
},
"limit": {
"type": "number"
},
"search": {
"type": "string"
},
"sortBy": {
"type": "string"
},
"sortOrder": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_sms_services
Low-level provider service codes — exposes internal naming. Do NOT use for normal rentals; prefer **ucode_sms_summary** or **ucode_sms_service_detail** then credits-only packages.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_sms_countries
Raw worldwide country id table — pairs with legacy APIs only. For renting, use **ucode_sms_summary** / **ucode_sms_service_detail** so users pick by country name + credits.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_sms_prices(service, country, minutes)
**Avoid for ChatGPT users.** Uses backend USD-ish snapshots; assistants must guide rentals via credits-only summaries (**ucode_sms_summary**, **ucode_sms_service_detail**) and **ucode_sms_rent_packages**. Responses are partially sanitized.
輸入結構描述
{
"type": "object",
"properties": {
"service": {
"type": "string"
},
"country": {
"type": "number"
},
"minutes": {
"type": "number"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_sms_summary(page, limit, search, v, sortBy, ...)
Primary discovery: search by app/service name (e.g. Telegram, WhatsApp). Returns services with countries, **credits** only (no provider names / no USD in assistant copy). Same idea as the app Services tab. Then **ucode_sms_service_detail** or go straight to **ucode_sms_rent_packages** once service + country are chosen.
輸入結構描述
{
"type": "object",
"properties": {
"page": {
"type": "number"
},
"limit": {
"type": "number"
},
"search": {
"type": "string"
},
"v": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"sortBy": {
"type": "string"
},
"sortOrder": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_sms_service_detail(serviceCode)
Load one service’s countries after you have its short **serviceCode** (from summary `service` field). Matches opening that service in the iOS/Android app: availability, credits per country. Prefer over legacy `/prices` APIs.
輸入結構描述
{
"type": "object",
"properties": {
"serviceCode": {
"type": "string",
"minLength": 1,
"description": "Short code, e.g. tg, wa, fb — same as mobile app service id"
}
},
"required": [
"serviceCode"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_sms_rent_packages(service, country)
After user picks **serviceCode** + **country** (numeric id from summary/detail), list **credit-priced routes** only. Same package picker as the app (rentalFlowVersion 2). Present **credits**, recommended badge, labels — never quote USD or backend provider names.
輸入結構描述
{
"type": "object",
"properties": {
"service": {
"type": "string"
},
"country": {
"type": "number"
}
},
"required": [
"service",
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}⚪ucode_sms_rent_with_credits(service, country, clientCredits, rentalFlowVersion, packageId)
**Primary rental** — charges Ucode credits. Always use **rentalFlowVersion: 2** and **packageId** from **ucode_sms_rent_packages** (matches mobile). Never mention wholesale/provider IDs or dollar amounts to the user.
輸入結構描述
{
"type": "object",
"properties": {
"service": {
"type": "string"
},
"country": {
"type": "number"
},
"clientCredits": {
"type": "number"
},
"rentalFlowVersion": {
"description": "Use **2** (default flow); matches mobile package picker.",
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"packageId": {
"type": "string"
}
},
"required": [
"service",
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}⚪ucode_sms_rent_provider_direct(service, country)
**Do not use for ChatGPT end users.** Legacy rental against upstream balances — skips normal credit UX and exposes provider-era assumptions. Only **ucode_sms_rent_with_credits** with packages.
輸入結構描述
{
"type": "object",
"properties": {
"service": {
"type": "string"
},
"country": {
"type": "number"
}
},
"required": [
"service"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_sms_active_rentals
Active/received rentals with SMS snippets if already fetched.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_sms_get_code(rentalId)
Poll latest SMS for a rental id (provider rental id string).
輸入結構描述
{
"type": "object",
"properties": {
"rentalId": {
"type": "string"
}
},
"required": [
"rentalId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🔴ucode_sms_cancel_rental(rentalId, reason, reasonNote)
Cancel an active rental and refund credits when no SMS has arrived. Requires a cancel reason for analytics. Reasons: service_rejected | number_has_account | code_not_arrived | other. If an SMS arrives during cancel, credits stay charged and the code is returned.
輸入結構描述
{
"type": "object",
"properties": {
"rentalId": {
"type": "string"
},
"reason": {
"type": "string",
"enum": [
"service_rejected",
"number_has_account",
"code_not_arrived",
"other"
]
},
"reasonNote": {
"type": "string",
"maxLength": 280
}
},
"required": [
"rentalId",
"reason"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}⚪ucode_sms_refund_expired
Trigger server-side refund scan for expired rentals (same as app).
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_sms_transactions
Provider ledger audit trail — sanitized before ChatGPT. Prefer explaining rentals via **ucode_sms_active_rentals** for users.
輸入結構描述
{
"type": "object",
"properties": {}
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢ucode_app_init_snapshot(platform)
Combined snapshot (packages, rentals, credit status, settings). Use platform web for ChatGPT (Stripe/crypto web packages); ios/android for native.
輸入結構描述
{
"type": "object",
"properties": {
"platform": {
"type": "string",
"enum": [
"android",
"ios",
"web"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"httpStatus": {
"type": "number"
},
"uiView": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneNumber": {
"type": "string"
},
"rentalId": {
"type": "string"
},
"providerRentalId": {
"type": "string"
},
"remainingSeconds": {
"type": "number"
},
"endDate": {
"type": "string"
},
"countryName": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"code": {
"type": "string"
},
"smsCode": {
"type": "string"
},
"credits": {
"type": "number"
},
"billingUrl": {
"type": "string"
},
"neededCredits": {
"type": "number"
}
},
"required": [
"ok",
"summary"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}社群
證據