naftiko: 1.0.0-alpha2 info: label: RingCentral API — Phone Numbers description: 'RingCentral API — Phone Numbers. 10 operations. Lead operation: Get Extension Phone Number List. Self-contained Naftiko capability covering one Ringcentral business surface.' tags: - Ringcentral - Phone Numbers created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: RINGCENTRAL_API_KEY: RINGCENTRAL_API_KEY capability: consumes: - type: http namespace: platform-phone-numbers baseUri: https://platform.ringcentral.com description: RingCentral API — Phone Numbers business capability. Self-contained, no shared references. resources: - name: restapi-v1.0-account-accountId-extension-extensionId-phone-number path: /restapi/v1.0/account/{accountId}/extension/{extensionId}/phone-number operations: - name: listextensionphonenumbers method: GET description: Get Extension Phone Number List outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: status in: query type: string description: Status of a phone number - name: usageType in: query type: array description: Usage type of phone number - name: page in: query type: integer description: Indicates a page number to retrieve. Only positive number values - name: perPage in: query type: integer description: Indicates a page size (number of items). If not specified, the value is '100' by default - name: restapi-v1.0-account-accountId-phone-number path: /restapi/v1.0/account/{accountId}/phone-number operations: - name: listaccountphonenumbers method: GET description: List Company Phone Numbers outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer description: Indicates a page number to retrieve. Only positive number values - name: perPage in: query type: integer description: Indicates a page size (number of items) - name: usageType in: query type: array description: Usage type of phone number - name: paymentType in: query type: string description: Payment Type of the number - name: status in: query type: string description: Status of a phone number - name: restapi-v1.0-account-accountId-phone-number-phoneNumberId path: /restapi/v1.0/account/{accountId}/phone-number/{phoneNumberId} operations: - name: readaccountphonenumber method: GET description: Get Phone Number outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: phoneNumberId in: path type: integer description: Internal identifier of a phone number required: true - name: restapi-v1.0-number-parser-parse path: /restapi/v1.0/number-parser/parse operations: - name: parsephonenumber method: POST description: Parse Phone Number(s) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: homeCountry in: query type: string description: ISO 3166 alpha2 code of the home country to be used if it is impossible to determine country from the number itself. - name: nationalAsPriority in: query type: boolean description: The default value is `false`. If `true`, the numbers that are - name: body in: body type: object description: Request body (JSON). required: true - name: restapi-v2-accounts-accountId-phone-numbers path: /restapi/v2/accounts/{accountId}/phone-numbers operations: - name: listaccountphonenumbersv2 method: GET description: List Account Phone Numbers outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: type in: query type: array description: Types of phone numbers to be returned - name: usageType in: query type: array description: Usage type(s) of phone numbers to be returned - name: status in: query type: string description: Status of the phone number(s) to be returned - name: tollType in: query type: string description: Toll type of phone numbers to return - name: extensionStatus in: query type: string description: Statuses of extensions to return phone numbers for - name: byocNumber in: query type: boolean description: The parameter reflects whether this number is BYOC or not - name: phoneNumber in: query type: string description: Phone number in e.164 format to be searched for. - name: deletenumbersfrominventoryv2 method: DELETE description: Delete Numbers from Inventory outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: restapi-v2-accounts-accountId-phone-numbers-bulk-add path: /restapi/v2/accounts/{accountId}/phone-numbers/bulk-add operations: - name: addnumberstoinventoryv2 method: POST description: Add Numbers to Inventory outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: restapi-v2-accounts-accountId-phone-numbers-bulk-add-taskId path: /restapi/v2/accounts/{accountId}/phone-numbers/bulk-add/{taskId} operations: - name: getbulkaddtaskresultsv2 method: GET description: Get Add Numbers Task Results outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: taskId in: path type: string description: Identifier of a task returned by asynchronous bulk add operation required: true - name: restapi-v2-accounts-accountId-phone-numbers-phoneNumberId path: /restapi/v2/accounts/{accountId}/phone-numbers/{phoneNumberId} operations: - name: assignphonenumberv2 method: PATCH description: Assign Phone Number outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: restapi-v2-accounts-accountId-phone-numbers-phoneNumberId-replace path: /restapi/v2/accounts/{accountId}/phone-numbers/{phoneNumberId}/replace operations: - name: replacephonenumberv2 method: POST description: Replace Phone Number outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.RINGCENTRAL_API_KEY}}' exposes: - type: rest namespace: platform-phone-numbers-rest port: 8080 description: REST adapter for RingCentral API — Phone Numbers. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/restapi/v1-0/account/{accountid}/extension/{extensionid}/phone-number name: restapi-v1-0-account-accountid-extension-extensionid-phone-number description: REST surface for restapi-v1.0-account-accountId-extension-extensionId-phone-number. operations: - method: GET name: listextensionphonenumbers description: Get Extension Phone Number List call: platform-phone-numbers.listextensionphonenumbers with: status: rest.status usageType: rest.usageType page: rest.page perPage: rest.perPage outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/phone-number name: restapi-v1-0-account-accountid-phone-number description: REST surface for restapi-v1.0-account-accountId-phone-number. operations: - method: GET name: listaccountphonenumbers description: List Company Phone Numbers call: platform-phone-numbers.listaccountphonenumbers with: page: rest.page perPage: rest.perPage usageType: rest.usageType paymentType: rest.paymentType status: rest.status outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/account/{accountid}/phone-number/{phonenumberid} name: restapi-v1-0-account-accountid-phone-number-phonenumberid description: REST surface for restapi-v1.0-account-accountId-phone-number-phoneNumberId. operations: - method: GET name: readaccountphonenumber description: Get Phone Number call: platform-phone-numbers.readaccountphonenumber with: phoneNumberId: rest.phoneNumberId outputParameters: - type: object mapping: $. - path: /v1/restapi/v1-0/number-parser/parse name: restapi-v1-0-number-parser-parse description: REST surface for restapi-v1.0-number-parser-parse. operations: - method: POST name: parsephonenumber description: Parse Phone Number(s) call: platform-phone-numbers.parsephonenumber with: homeCountry: rest.homeCountry nationalAsPriority: rest.nationalAsPriority body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v2/accounts/{accountid}/phone-numbers name: restapi-v2-accounts-accountid-phone-numbers description: REST surface for restapi-v2-accounts-accountId-phone-numbers. operations: - method: GET name: listaccountphonenumbersv2 description: List Account Phone Numbers call: platform-phone-numbers.listaccountphonenumbersv2 with: type: rest.type usageType: rest.usageType status: rest.status tollType: rest.tollType extensionStatus: rest.extensionStatus byocNumber: rest.byocNumber phoneNumber: rest.phoneNumber outputParameters: - type: object mapping: $. - method: DELETE name: deletenumbersfrominventoryv2 description: Delete Numbers from Inventory call: platform-phone-numbers.deletenumbersfrominventoryv2 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v2/accounts/{accountid}/phone-numbers/bulk-add name: restapi-v2-accounts-accountid-phone-numbers-bulk-add description: REST surface for restapi-v2-accounts-accountId-phone-numbers-bulk-add. operations: - method: POST name: addnumberstoinventoryv2 description: Add Numbers to Inventory call: platform-phone-numbers.addnumberstoinventoryv2 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v2/accounts/{accountid}/phone-numbers/bulk-add/{taskid} name: restapi-v2-accounts-accountid-phone-numbers-bulk-add-taskid description: REST surface for restapi-v2-accounts-accountId-phone-numbers-bulk-add-taskId. operations: - method: GET name: getbulkaddtaskresultsv2 description: Get Add Numbers Task Results call: platform-phone-numbers.getbulkaddtaskresultsv2 with: taskId: rest.taskId outputParameters: - type: object mapping: $. - path: /v1/restapi/v2/accounts/{accountid}/phone-numbers/{phonenumberid} name: restapi-v2-accounts-accountid-phone-numbers-phonenumberid description: REST surface for restapi-v2-accounts-accountId-phone-numbers-phoneNumberId. operations: - method: PATCH name: assignphonenumberv2 description: Assign Phone Number call: platform-phone-numbers.assignphonenumberv2 with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/restapi/v2/accounts/{accountid}/phone-numbers/{phonenumberid}/replace name: restapi-v2-accounts-accountid-phone-numbers-phonenumberid-replace description: REST surface for restapi-v2-accounts-accountId-phone-numbers-phoneNumberId-replace. operations: - method: POST name: replacephonenumberv2 description: Replace Phone Number call: platform-phone-numbers.replacephonenumberv2 with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: platform-phone-numbers-mcp port: 9090 transport: http description: MCP adapter for RingCentral API — Phone Numbers. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-extension-phone-number-list description: Get Extension Phone Number List hints: readOnly: true destructive: false idempotent: true call: platform-phone-numbers.listextensionphonenumbers with: status: tools.status usageType: tools.usageType page: tools.page perPage: tools.perPage outputParameters: - type: object mapping: $. - name: list-company-phone-numbers description: List Company Phone Numbers hints: readOnly: true destructive: false idempotent: true call: platform-phone-numbers.listaccountphonenumbers with: page: tools.page perPage: tools.perPage usageType: tools.usageType paymentType: tools.paymentType status: tools.status outputParameters: - type: object mapping: $. - name: get-phone-number description: Get Phone Number hints: readOnly: true destructive: false idempotent: true call: platform-phone-numbers.readaccountphonenumber with: phoneNumberId: tools.phoneNumberId outputParameters: - type: object mapping: $. - name: parse-phone-number-s description: Parse Phone Number(s) hints: readOnly: false destructive: false idempotent: false call: platform-phone-numbers.parsephonenumber with: homeCountry: tools.homeCountry nationalAsPriority: tools.nationalAsPriority body: tools.body outputParameters: - type: object mapping: $. - name: list-account-phone-numbers description: List Account Phone Numbers hints: readOnly: true destructive: false idempotent: true call: platform-phone-numbers.listaccountphonenumbersv2 with: type: tools.type usageType: tools.usageType status: tools.status tollType: tools.tollType extensionStatus: tools.extensionStatus byocNumber: tools.byocNumber phoneNumber: tools.phoneNumber outputParameters: - type: object mapping: $. - name: delete-numbers-inventory description: Delete Numbers from Inventory hints: readOnly: false destructive: true idempotent: true call: platform-phone-numbers.deletenumbersfrominventoryv2 with: body: tools.body outputParameters: - type: object mapping: $. - name: add-numbers-inventory description: Add Numbers to Inventory hints: readOnly: false destructive: false idempotent: false call: platform-phone-numbers.addnumberstoinventoryv2 with: body: tools.body outputParameters: - type: object mapping: $. - name: get-add-numbers-task-results description: Get Add Numbers Task Results hints: readOnly: true destructive: false idempotent: true call: platform-phone-numbers.getbulkaddtaskresultsv2 with: taskId: tools.taskId outputParameters: - type: object mapping: $. - name: assign-phone-number description: Assign Phone Number hints: readOnly: false destructive: false idempotent: true call: platform-phone-numbers.assignphonenumberv2 with: body: tools.body outputParameters: - type: object mapping: $. - name: replace-phone-number description: Replace Phone Number hints: readOnly: false destructive: false idempotent: false call: platform-phone-numbers.replacephonenumberv2 with: body: tools.body outputParameters: - type: object mapping: $.