Token导航 LogoToken导航

Agent Skill · 开发

sinch-porting-api(sinch porting API 文档)

用于辅助 API 设计、接口文档、请求响应结构和服务集成说明。它适合让 Agent 梳理 endpoint、生成 OpenAPI 草稿、检查字段命名、整理错误码或辅助前后端联调。使用时需要确认真实业务语义、鉴权方式、分页和错误处理规则;涉及生成接口文档时,应避免凭空补字段,最好从现有代码、schema 或接口样例中提取事实。

sinch-porting-api 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 13,638。

总安装 857周安装 35GitHub Stars 7下载 277核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:sinch-porting-api(sinch porting API 文档)
来源仓库:https://github.com/sinch/skills
仓库路径:skills/sinch-porting-api
安装命令:
npx skills add https://github.com/sinch/skills --skill sinch-porting-api
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/sinch/skills --skill sinch-porting-api

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

用于辅助 API 设计、接口文档和请求响应结构梳理。适合在 Codex、Claude、Cursor、Gemini CLI 中生成 OpenAPI 草稿或检查字段命名。使用时需确认业务语义、鉴权方式和错误处理规则,避免凭空补字段。建议从现有代码、schema 或接口样例中提取事实,确保信息准确。

安装前请核实权限范围和维护状态,避免触发不必要的网络或文件操作。

来源仓库内路径:skills/sinch-porting-api

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/sinch/skills --skill sinch-porting-api;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

sinch-porting-api 怎么安装?

在终端执行 npx skills add https://github.com/sinch/skills --skill sinch-porting-api。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

sinch-porting-api 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

sinch-porting-api 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

sinch-porting-api 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

sinch-porting-api 用的人多吗?

公开数据是累计安装 857 次,近一周安装 35 次,下载 277 次,GitHub 7 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

sinch-porting-api 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
sinch-porting-api

sinch porting API 文档 · 本页

8577接触敏感数据未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Sinch Porting API

Overview

The Porting API automates port-in operations — transferring phone numbers from another carrier into Sinch. It supports portability checks, order creation and management, document uploads, on-demand activation, and webhook notifications for status updates. Currently supports North American (US/CA) numbers only.

Instructions

Before generating code, gather from the user:

  1. Approach — SDK or direct API calls (curl/fetch)?
  2. Use case — Portability check, create order, track order, activate numbers?
  3. Activation mode (only for create order) — Automatic (on desiredPortDate) or on-demand (onDemandActivation: true)?

Note: The @sinch/sdk-core Node.js SDK does not currently have dedicated porting methods. Use direct HTTP calls for all porting operations.

Getting Started

Authentication

See sinch-authentication for full setup.

Base URL

EnvironmentURL
Productionhttps://porting.api.sinch.com/v1/projects/{PROJECT_ID}

Store credentials in environment variables — never hardcode tokens, PINs, or keys in commands or source code:

export SINCH_PROJECT_ID="your-project-id"
export SINCH_ACCESS_TOKEN="your-oauth-token"

First API Call — Check Portability

Always check portability before creating an order:

curl -X POST \
  "https://porting.api.sinch.com/v1/projects/$SINCH_PROJECT_ID/portabilityChecks" \
  -H "Authorization: Bearer $SINCH_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumbers": ["+15551234567", "+15559876543"]
  }'

Response:

{
  "phoneNumbers": [
    {
      "phoneNumber": "+15551234567",
      "portable": true,
      "carrier": "T-Mobile"
    },
    {
      "phoneNumber": "+15559876543",
      "portable": false,
      "carrier": "Verizon",
      "reason": "Number is not portable"
    }
  ]
}

Create a Port-In Order

curl -X POST \
  "https://porting.api.sinch.com/v1/projects/$SINCH_PROJECT_ID/orders/portIns" \
  -H "Authorization: Bearer $SINCH_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "desiredPortSchedule": {
      "desiredPortDate": "2026-05-15",
      "desiredPortTime": "09:00:00",
      "desiredPortTimeZone": "US/Eastern"
    },
    "customerOrderReference": "my-ref-123",
    "phoneNumbers": [
      {
        "phoneNumber": "+15551234567",
        "endUser": {
          "name": "Acme Corp",
          "streetNum": "123",
          "streetName": "Main",
          "streetType": "St",
          "city": "Anytown",
          "state": "CA",
          "zipCode": "90210",
          "typeOfService": "B"
        },
        "portOutInfo": {
          "existingPortOutPin": "1234"
        }
      }
    ]
  }'
existingPortOutPin — Obtain this PIN from the losing carrier before submitting the order. See Create Port-In Order for full field reference.

Response:

{
  "id": 12345,
  "status": "PENDING",
  "customerOrderReference": "my-ref-123",
  "desiredPortSchedule": {
    "desiredPortDate": "2026-05-15",
    "desiredPortTime": "09:00:00",
    "desiredPortTimeZone": "US/Eastern"
  },
  "phoneNumbers": [
    {
      "phoneNumber": "+15551234567",
      "status": "PENDING"
    }
  ]
}

Track an Order

# Auth: same Bearer token header as above
curl -X GET \
  "https://porting.api.sinch.com/v1/projects/$SINCH_PROJECT_ID/orders/portIns/12345" \
  -H "Authorization: Bearer $SINCH_ACCESS_TOKEN"

Response:

{
  "id": 12345,
  "status": "CONFIRMED",
  "customerOrderReference": "my-ref-123",
  "desiredPortSchedule": {
    "desiredPortDate": "2026-05-15",
    "desiredPortTime": "09:00:00",
    "desiredPortTimeZone": "US/Eastern"
  },
  "phoneNumbers": [
    {
      "phoneNumber": "+15551234567",
      "status": "CONFIRMED",
      "focDate": "2026-05-15"
    }
  ]
}

Activate Numbers (On-Demand)

First check which number groups are ready:

# Auth: same Bearer token header as above
curl -X GET \
  "https://porting.api.sinch.com/v1/projects/$SINCH_PROJECT_ID/orders/portIns/12345/availableActivations" \
  -H "Authorization: Bearer $SINCH_ACCESS_TOKEN"

Response:

{
  "activationGroups": [
    {
      "groupId": "grp-001",
      "phoneNumbers": ["+15551234567"],
      "status": "READY"
    }
  ]
}

Then activate:

# Auth: same Bearer token header as above
curl -X POST \
  "https://porting.api.sinch.com/v1/projects/$SINCH_PROJECT_ID/orders/portIns/12345/activate" \
  -H "Authorization: Bearer $SINCH_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "groupIds": ["grp-001"]
  }'

Key Concepts

  • Port-In Order — A request to transfer one or more phone numbers from another carrier to Sinch. Each order has a numeric id and tracks the overall lifecycle.
  • Order Status — Lifecycle of a port-in order: PENDING (can update/cancel) → CONFIRMED (locked, awaiting port date) → COMPLETED (numbers active). Also: PENDING_CANCELATION → CANCELED.
  • Phone Number Status — Per-number status within an order: PENDING → CONFIRMED → ACTIVATED. Also: REJECTED (see rejectReason), CANCELED, EXCLUDED (see exclusionReason).
  • FOC (Firm Order Confirmation) — The confirmed port date set by the losing carrier. Returned as focDate on each phone number once confirmed. On-demand activation requires FOC date to be today or earlier.
  • End User — The person or company that currently owns the number. Required fields: name, streetNum, streetName, city, state, zipCode. Must match the losing carrier's records exactly.
  • Port-Out Info — Credentials from the losing carrier. Usually only existingPortOutPin is needed. May also include accountNum, accountPhoneNumber, authorizingName, authorizingDate.
  • LOA (Letter of Authorization) — A document authorizing the port. Upload via POST /orders/portIns/{orderId}/documents.
  • On-Demand Activation — When onDemandActivation: true, numbers are not auto-activated on the port date. Instead, call POST /orders/portIns/{orderId}/activate after FOC date is reached and numbers are routing on Sinch network.
  • Voice Configuration — Optional per-number config for voice routing. Discriminated on type: RTC (programmable voice, requires appId), EST (elastic SIP trunking, requires trunkId), FAX (requires serviceId).
  • Messaging Configuration — Optional per-number config for messaging features. Supports A2PLC (Application-to-Person Long Code) and SMSMMS feature types. Configured alongside voice options on each phone number in the order.
  • E911 — Optional per-number emergency location data. Submitted as part of the phone number entry in a port-in order for numbers that require E911 service.
  • Directory Listing — Optional per-number directory listing information (e.g., name and address for directory assistance). Provided as part of the phone number entry in a port-in order.
  • Desired Port Schedule — Required. Contains desiredPortDate (ISO date, required), desiredPortTime (defaults to project config or 09:00:00), desiredPortTimeZone (one of: US/Eastern, US/Central, US/Mountain, US/Pacific).
  • Configuration — Project-level defaults for porting: default contact info, webhook URL, default port time and timezone. Set via POST /configuration, updated via PUT /configuration.

Common Patterns

  • Check portability — POST /portabilityChecks with phoneNumbers array. Always do this before creating an order; non-portable numbers cause order failure.
  • Create port-in order — POST /orders/portIns with desiredPortSchedule, phoneNumbers (each with endUser and portOutInfo). Returns order id and initial PENDING status.
  • List and filter orders — GET /orders/portIns with query params: orderStatus, phoneNumber, customerOrderReference, createdDateStart/createdDateEnd, focStartDate/focEndDate, pageSize (default 100, max 1000), page.
  • Get order details — GET /orders/portIns/{orderId} returns full order with phone numbers, notes, and documents.
  • Get phone number groups — GET /orders/portIns/phoneGroups/{orderId} returns phone numbers grouped by their status or activation group within the order. Porting is processed by groups.
  • Update a pending order — PUT /orders/portIns/{orderId} — sends the full object (not a patch). Only works on PENDING orders.
  • Cancel a pending order — DELETE /orders/portIns/{orderId} — only works on PENDING orders.
  • Add note to order — POST /orders/portIns/{orderId}/notes — use to respond to issues flagged by Sinch during processing.
  • Upload document (LOA) — POST /orders/portIns/{orderId}/documents — attach authorization documents.
  • Get document details — GET /orders/portIns/{orderId}/documents/{documentId} — retrieve metadata or content for a previously uploaded document.
  • On-demand activation — First GET /orders/portIns/{orderId}/availableActivations to see which number groups are ready, then POST /orders/portIns/{orderId}/activate to activate them. FOC date must be today or earlier and numbers must be routing on Sinch network.
  • Configure defaults — POST /configuration to create, PUT /configuration to update, GET /configuration to read. Sets default contact, webhook URL, port time, and timezone.

Gotchas and Best Practices

  • Always check portability first — POST /portabilityChecks before creating an order. Orders with non-portable numbers will fail.
  • Phone numbers must be E.164 format — All phone numbers in requests must be in E.164 format (e.g., +15551234567). Numbers not in this format will be rejected.
  • customerOrderReference max 100 characters — Longer values will be rejected at validation.
  • North America only — The Porting API currently supports US and CA numbers only (countryCode is US or CA).
  • Max 500 numbers per order — For orders with more than 500 numbers, contact Sinch support.
  • Update is a full PUT, not PATCH — PUT /orders/portIns/{orderId} requires the complete order object. Omitting fields will clear them.
  • Only PENDING orders can be updated or canceled — Once CONFIRMED, orders cannot be modified. Cancel creates PENDING_CANCELATION state during which the same numbers cannot be resubmitted.
  • End user info must match the losing carrier's records — Mismatched name, address, or account details cause rejections. typeOfService defaults to B (Business); set to R for residential.
  • Port-out PIN is usually sufficient — Most carriers only require existingPortOutPin in portOutInfo. Only provide accountNum, accountPhoneNumber, authorizingName if the carrier requires them.
  • authorizingDate cannot be in the future — Must be today or earlier.
  • Default port time is 09:00 US/Eastern — If you don't set desiredPortTime and desiredPortTimeZone on the order and haven't configured project defaults, the system uses 09:00:00 US/Eastern.
  • Time zones are US-only enum values — Only US/Eastern, US/Central, US/Mountain, US/Pacific are accepted. No generic timezone strings.
  • 10DLC campaign required after port completes — For US 10DLC numbers, you must associate the number with an approved 10DLC campaign before sending SMS/MMS. This can only be done after the port completes.
  • Webhooks for real-time updates — Configure a webhook URL via POST /configuration or the dashboard. Use webhooks instead of polling GET /orders/portIns/{orderId} for status updates.
  • voiceConfiguration is a discriminated union — Must include type field: RTC (with appId), EST (with trunkId), or FAX (with serviceId).
  • No SDK support — The @sinch/sdk-core Node.js SDK does not have dedicated porting methods. Use direct REST calls.
  • resellerName required for Canadian numbers — An additional field needed when porting CA numbers.

Links

平台分布

Codex

37.13%
按下载量换算103

Claude

27.78%
按下载量换算77

Cursor

18.15%
按下载量换算50

Gemini CLI

8.96%
按下载量换算25

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills