PingCAP Region API

List regions, get a region, and list cloud providers and node specs of a region.

Operations 5

GET /regions List regions #
GET /regions/{regionId} Get a region #
GET /regions:showCloudProviders List cloud providers #
GET /regions/{regionId}/nodeSpecs List node specs #
GET /regions/{regionId}/componentTypes/{componentType}/nodeSpecs/{nodeSpecKey} Get a node spec #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pingcap-region-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

pingcap-region-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TiDB Cloud Dedicated Region API
  description: '*TiDB Cloud API is in beta.*


    This API manages TiDB Cloud Dedicated clusters.'
  version: v1beta1
servers:
- url: https://dedicated.tidbapi.com/v1beta1
tags:
- name: Region
  description: List regions, get a region, and list cloud providers and node specs of a region.
paths:
  /regions:
    get:
      summary: List regions
      description: Lists the regions where you can create a cluster, across all supported cloud providers.
      operationId: RegionService_ListRegions
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tidb_cloud_open_apidedicatedv1beta1ListRegionsResponse'
        '400':
          description: A request field is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: cloudProvider
        description: The cloud provider where the region is located. If specified, only regions of the specified cloud provider are returned.
        in: query
        required: false
        schema:
          type: string
      - name: projectId
        description: The ID of the project to list regions for. If not specified, the project ID of the default project is used.
        in: query
        required: false
        schema:
          type: string
      - name: pageSize
        description: The maximum number of regions to return. If not specified, at most 20 regions will be returned. The maximum value is `100`. Values greater than `100` are set to `100`.
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 20
          maximum: 100
          minimum: 1
      - name: pageToken
        description: 'The pagination token received from a previous [List regions](#tag/Region/operation/RegionService_ListRegions) request. Use this token to retrieve the next page of results.


          **Note**: When paginating, all other parameters must match the original request.'
        in: query
        required: false
        schema:
          type: string
      - name: skip
        description: The number of regions to skip before returning results. If the value exceeds the total number of clusters, the response is `200` with an empty list and no `nextPageToken`.
        in: query
        required: false
        schema:
          type: integer
          format: int32
      tags:
      - Region
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location 'https://dedicated.tidbapi.com/v1beta1/regions'"
  /regions/{regionId}:
    get:
      summary: Get a region
      description: Retrieves details of a specific region by region ID.
      operationId: RegionService_GetRegion
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/commonv1beta1Region'
        '400':
          description: A request field is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: regionId
        description: The ID of the region to retrieve, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-east-1`.
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: The ID of the project for which to retrieve the region. If not specified, the project ID of the default project is used.
        in: query
        required: false
        schema:
          type: string
      tags:
      - Region
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location 'https://dedicated.tidbapi.com/v1beta1/regions/aws-us-east-1'"
  /regions:showCloudProviders:
    get:
      summary: List cloud providers
      description: Lists the cloud providers available for creating a cluster.
      operationId: RegionService_ShowCloudProviders
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1beta1ShowCloudProvidersResponse'
        '400':
          description: A request field is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: projectId
        description: The ID of the project. If not specified, the project ID of the default project is used.
        in: query
        required: false
        schema:
          type: string
      tags:
      - Region
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location 'https://dedicated.tidbapi.com/v1beta1/regions:showCloudProviders'"
  /regions/{regionId}/nodeSpecs:
    get:
      summary: List node specs
      description: Retrieves a paginated list of node specifications (specs) available for creating or scaling a cluster in the specified region. You can filter the results using the `componentType`, `projectId`, or `clusterId` parameter.
      operationId: RegionService_ListNodeSpecs
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1beta1ListNodeSpecsResponse'
        '400':
          description: A request field is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: regionId
        description: The ID of the region, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-east-1`.
        in: path
        required: true
        schema:
          type: string
      - name: componentType
        description: Filters the results to include only node specs for the specified component type.
        in: query
        required: false
        schema:
          type: string
          enum:
          - TIKV
          - TIDB
          - TIFLASH
          - PD
      - name: projectId
        description: Filters the results to include only node specs available to the specified project. If not specified, the project ID of the default project is used.
        in: query
        required: false
        schema:
          type: string
      - name: clusterId
        description: Filters the results to include only node specs available to the specified cluster. If not specified, all available node specs are returned.
        in: query
        required: false
        schema:
          type: string
      - name: pageSize
        description: The maximum number of node specs to return. If not specified, at most 10 node specs will be returned. The maximum value is `100`. Values greater than `100` are set to `100`.
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 10
          maximum: 100
          minimum: 1
      - name: pageToken
        description: 'The pagination token received from a previous [List node specs](#tag/Region/operation/RegionService_ListNodeSpecs) request. Use this token to retrieve the next page of results.


          **Note**: When paginating, all other parameters must match the original request.'
        in: query
        required: false
        schema:
          type: string
      - name: skip
        description: The number of node specs to skip before returning results. If the value exceeds the total number of clusters, the response is `200` with an empty list and no `nextPageToken`.
        in: query
        required: false
        schema:
          type: integer
          format: int32
      tags:
      - Region
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location 'https://dedicated.tidbapi.com/v1beta1/regions/aws-us-east-1/nodeSpecs'"
  /regions/{regionId}/componentTypes/{componentType}/nodeSpecs/{nodeSpecKey}:
    get:
      summary: Get a node spec
      description: Retrieves details of a node spec used for creating or scaling a cluster.
      operationId: RegionService_GetNodeSpec
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1beta1NodeSpec'
        '400':
          description: A request field is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '401':
          description: The API key cannot be authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '403':
          description: The API key does not have permission to access the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '429':
          description: You have exceed the rate limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: regionId
        description: The region ID of the node spec to retrieve, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-east-1`. If not specified, the default region ID is used.
        in: path
        required: true
        schema:
          type: string
      - name: componentType
        description: Filters the results to include only node specs for the specified component type.
        in: path
        required: true
        schema:
          type: string
          enum:
          - TIKV
          - TIDB
          - TIFLASH
          - PD
      - name: nodeSpecKey
        description: The key of the node spec to retrieve. For example, `8C32G`.
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: The ID of the project for which to retrieve the node spec. If not specified, the project ID of the default project is used.
        in: query
        required: false
        schema:
          type: string
      - name: clusterId
        description: The ID of the cluster. If specified, only node specs that are available to the specified cluster are returned. If not specified, all available node specs are returned.
        in: query
        required: false
        schema:
          type: string
      tags:
      - Region
      x-code-samples:
      - lang: curl
        label: curl
        source: "curl --digest --user 'YOUR_PUBLIC_KEY:YOUR_PRIVATE_KEY' \\\n  --location 'https://dedicated.tidbapi.com/v1beta1/regions/aws-us-east-1/componentTypes/TIKV/nodeSpecs/8C32G'"
components:
  schemas:
    StorageNodeSettingStorageType:
      type: string
      enum:
      - Basic
      - Standard
      - Performance
      - Plus
      description: " - Basic: Data disk: gp3; Raft log disk: none.\n - Standard: Data disk: gp3; Raft log disk: gp3.\n - Performance: Data disk: gp3; Raft log disk: io2.\n - Plus: Data disk: io2; Raft log disk: none."
    dedicatedv1beta1ComponentType:
      type: string
      enum:
      - TIKV
      - TIDB
      - TIFLASH
      - PD
    v1beta1RegionCloudProvider:
      type: string
      enum:
      - aws
      - gcp
      - azure
      - alicloud
      description: "Enum of cloud provider names.\n\n - aws: Amazon Web Services.\n - gcp: Google Cloud Platform.\n - azure: Microsoft Azure.\n - alicloud: Alibaba Cloud."
    tidb_cloud_open_apidedicatedv1beta1ListRegionsResponse:
      type: object
      properties:
        regions:
          type: array
          items:
            $ref: '#/components/schemas/commonv1beta1Region'
          description: A list of regions that match the query.
        totalSize:
          type: integer
          format: int32
          description: The total number of regions that match the query.
        nextPageToken:
          type: string
          description: The token to retrieve the next page of results. Use this value as the `pageToken` parameter in the next request. This field is empty when there are no more pages.
    googlerpcStatus:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: The error code returned with this error.
        message:
          type: string
          description: The error message returned with this error.
        details:
          type: array
          items:
            $ref: '#/components/schemas/protobufAny'
          description: A list of messages with additional error details.
      description: 'The `Status` type defines a logical error model that is suitable for

        different programming environments, including REST APIs and RPC APIs. It is

        used by [gRPC](https://github.com/grpc). Each `Status` message contains

        three pieces of data: error code, error message, and error details.


        You can find out more about this error model and how to work with it in the

        [API Design Guide](https://cloud.google.com/apis/design/errors).'
    commonv1beta1Region:
      type: object
      properties:
        name:
          type: string
          example: regions/aws-us-west-2
          description: The unique name of the region, in the format of `regions/{region_id}`. For example, `regions/aws-us-west-2`.
          pattern: ^regions/(aws|gcp|azure)-(.+)$
        regionId:
          type: string
          example: aws-us-west-2
          description: The unique identifier for the region, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-west-2`.
          readOnly: true
          pattern: ^(aws|gcp|azure|alicloud)-[a-z0-9-]+$
        cloudProvider:
          example: aws
          description: 'The cloud provider that offers the region.


            - `"aws"`: Amazon Web Services


            - `"gcp"`: Google Cloud


            - `"azure"`: Microsoft Azure


            - `"alicloud"`: Alibaba Cloud'
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/v1beta1RegionCloudProvider'
        displayName:
          type: string
          example: Oregon (us-west-2)
          description: A human-readable name for the region. For example, `Oregon (us-west-2)`.
          readOnly: true
        provider:
          type:
          - string
          - 'null'
          example: aws
          description: '**Deprecated.** Use `cloudProvider` instead. The name of the cloud provider. For example, `aws`, `gcp`, `azure`, or `alicloud`.'
          readOnly: true
      description: A representation of a region for deploying TiDB clusters.
    v1beta1ListNodeSpecsResponse:
      type: object
      properties:
        nodeSpecs:
          type: array
          items:
            $ref: '#/components/schemas/v1beta1NodeSpec'
          description: A list of node specs that match the query.
        totalSize:
          type: integer
          format: int32
          description: The total number of node specs that match the query.
        nextPageToken:
          type: string
          description: The token to retrieve the next page of results. Use this value as the `pageToken` parameter in the next request. This field is empty when there are no more pages.
    v1beta1NodeSpec:
      type: object
      properties:
        name:
          type: string
          description: The name of the node spec resource, in the format of `regions/{region_id}/componentTypes/{component_type}/nodeSpecs/{node_spec_key}`. For example, `regions/aws-us-west-2/componentTypes/TIKV/nodeSpecs/8C32G`.
        regionId:
          type: string
          description: The region ID of the node spec resource, in the format of `{cloud_provider}-{region_code}`. For example, `aws-us-west-2`.
        componentType:
          description: The component type of the node spec.
          allOf:
          - $ref: '#/components/schemas/dedicatedv1beta1ComponentType'
        nodeSpecKey:
          type: string
          description: The key of the node spec. For example, `8C32G`.
        displayName:
          type: string
          description: The display name of the node spec. For example, `8 vCPU, 32 GiB`.
        vCpu:
          type: integer
          format: int32
          description: The number of virtual CPUs (vCPUs) allocated to the node spec. For example, `8`.
        memorySizeGi:
          type: integer
          format: int32
          description: The amount of memory in gibibytes (GiB) allocated to the node spec. For example, `32`.
        defaultStorageSizeGi:
          type: integer
          format: int32
          description: The default storage size of the node spec resource in GiB.
        maxStorageSizeGi:
          type: integer
          format: int32
          description: The maximum storage size of the node spec resource in GiB.
        minStorageSizeGi:
          type: integer
          format: int32
          description: The minimum storage size of the node spec resource in GiB.
        defaultNodeCount:
          type: integer
          format: int32
          description: The default number of nodes for the node spec resource.
        storageTypes:
          type: array
          items:
            $ref: '#/components/schemas/StorageNodeSettingStorageType'
          description: The storage types supported by the node spec resource.
        maxRaftStoreIops:
          type:
          - integer
          - 'null'
          format: int32
          description: The maximum IOPS for Raft log storage of the node spec resource. Currently, this parameter is only useful when overriding IOPS for Raft log storage.
        minRaftStoreIops:
          type:
          - integer
          - 'null'
          format: int32
          description: The minimum IOPS for Raft log storage of the node spec resource. Currently, this parameter is only useful when overriding IOPS for Raft log storage.
        default:
          type: boolean
          description: Indicates whether this is the default node spec.
      description: All fields are output only.
    v1beta1ShowCloudProvidersResponse:
      type: object
      properties:
        cloudProviders:
          type: array
          items:
            $ref: '#/components/schemas/v1beta1RegionCloudProvider'
          description: 'A list of cloud providers that are available for the project.


            - `"aws"`: Amazon Web Services


            - `"gcp"`: Google Cloud


            - `"azure"`: Microsoft Azure


            - `"alicloud"`: Alibaba Cloud'
    protobufAny:
      type: object
      properties:
        '@type':
          type: string
          description: A URL or resource name that uniquely identifies the type of the serialized protocol buffer message.
      additionalProperties: {}
      description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\n Example 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\n Example 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"
x-tagGroups:
- name: Endpoints
  tags:
  - Cluster
  - Region
  - Private Endpoint Connection
  - Import
  - Integration
  - Changefeed