Bytebase Service Account Service API

ServiceAccountService manages service accounts for API integrations.

Operations 8

GET /v1/projects/{project}/serviceAccounts ListServiceAccounts #
POST /v1/projects/{project}/serviceAccounts CreateServiceAccount #
GET /v1/serviceAccounts/{serviceAccount} GetServiceAccount #
DELETE /v1/serviceAccounts/{serviceAccount} DeleteServiceAccount #
PATCH /v1/serviceAccounts/{serviceAccount} UpdateServiceAccount #
POST /v1/serviceAccounts/{serviceAccount}:undelete UndeleteServiceAccount #
GET /v1/workspaces/{workspace}/serviceAccounts ListServiceAccounts #
POST /v1/workspaces/{workspace}/serviceAccounts CreateServiceAccount #

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/bytebase:bytebase-serviceaccountservice-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

bytebase-serviceaccountservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bytebase API Reference Service Account Service API
  description: API reference for Bytebase. Every endpoint is served by your own Bytebase instance.
  version: 1.0.0
security: []
tags:
- name: ServiceAccountService
  description: ServiceAccountService manages service accounts for API integrations.
paths:
  /v1/projects/{project}/serviceAccounts:
    get:
      tags:
      - ServiceAccountService
      summary: ListServiceAccounts
      description: 'Lists service accounts.

        For workspace-level: parent is workspaces/{id}, permission bb.serviceAccounts.list on workspace.

        For project-level: parent is projects/{project}, permission bb.serviceAccounts.list on project.'
      operationId: ServiceAccountService_ListServiceAccounts
      parameters:
      - name: project
        in: path
        description: The project id.
        required: true
        schema:
          type: string
      - name: pageSize
        in: query
        description: "The maximum number of service accounts to return. The service may return fewer than\n this value.\n If unspecified, at most 10 service accounts will be returned.\n The maximum value is 1000; values above 1000 will be coerced to 1000."
        schema:
          type: integer
          title: page_size
          format: int32
      - name: pageToken
        in: query
        description: "A page token, received from a previous `ListServiceAccounts` call.\n Provide this to retrieve the subsequent page.\n\n When paginating, all other parameters provided to `ListServiceAccounts` must match\n the call that provided the page token."
        schema:
          type: string
          title: page_token
      - name: showDeleted
        in: query
        description: Show deleted service accounts if specified.
        schema:
          type: boolean
          title: show_deleted
      - name: filter
        in: query
        description: "Filter is used to filter service accounts returned in the list.\n The syntax and semantics of CEL are documented at https://github.com/google/cel-spec\n\n Supported filter:\n - name: the service account name, support \"==\" and \".contains()\" operator.\n - email: the service account email, support \"==\" and \".contains()\" operator.\n - state: check State enum for values, support \"==\" operator.\n\n For example:\n name == \"ed\"\n name.contains(\"ed\")\n state == \"DELETED\"\n email == \"ed@service.bytebase.com\"\n email.contains(\"ed\")"
        schema:
          type: string
          title: filter
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bytebase.v1.ListServiceAccountsResponse'
    post:
      tags:
      - ServiceAccountService
      summary: CreateServiceAccount
      description: 'Creates a new service account.

        For workspace-level: parent is workspaces/{id}, permission bb.serviceAccounts.create on workspace.

        For project-level: parent is projects/{project}, permission bb.serviceAccounts.create on project.'
      operationId: ServiceAccountService_CreateServiceAccount
      parameters:
      - name: project
        in: path
        description: The project id.
        required: true
        schema:
          type: string
      - name: serviceAccountId
        in: query
        description: "The ID to use for the service account, which will become the final component\n of the service account's email in the format: {service_account_id}@service.bytebase.com\n or {service_account_id}@{project-id}.service.bytebase.com"
        required: true
        schema:
          type: string
          title: service_account_id
      requestBody:
        description: The service account to create.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/bytebase.v1.ServiceAccount'
              title: service_account
              description: The service account to create.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bytebase.v1.ServiceAccount'
  /v1/serviceAccounts/{serviceAccount}:
    get:
      tags:
      - ServiceAccountService
      summary: GetServiceAccount
      description: 'Gets a service account by name.

        Permissions required: bb.serviceAccounts.get'
      operationId: ServiceAccountService_GetServiceAccount
      parameters:
      - name: serviceAccount
        in: path
        description: The serviceAccount id.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bytebase.v1.ServiceAccount'
    delete:
      tags:
      - ServiceAccountService
      summary: DeleteServiceAccount
      description: 'Deletes a service account.

        Permissions required: bb.serviceAccounts.delete'
      operationId: ServiceAccountService_DeleteServiceAccount
      parameters:
      - name: serviceAccount
        in: path
        description: The serviceAccount id.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.protobuf.Empty'
    patch:
      tags:
      - ServiceAccountService
      summary: UpdateServiceAccount
      description: 'Updates a service account.

        Permissions required: bb.serviceAccounts.update'
      operationId: ServiceAccountService_UpdateServiceAccount
      parameters:
      - name: serviceAccount
        in: path
        description: The serviceAccount id.
        required: true
        schema:
          type: string
      - name: updateMask
        in: query
        description: "The list of fields to update.\n Supported fields: title, service_key (triggers key rotation)"
        schema:
          type: string
      requestBody:
        description: "The service account to update.\n\n The service account's `name` field is used to identify the service account to update.\n Format: serviceAccounts/{email}"
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/bytebase.v1.ServiceAccount'
              title: service_account
              description: "The service account to update.\n\n The service account's `name` field is used to identify the service account to update.\n Format: serviceAccounts/{email}"
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bytebase.v1.ServiceAccount'
  /v1/serviceAccounts/{serviceAccount}:undelete:
    post:
      tags:
      - ServiceAccountService
      summary: UndeleteServiceAccount
      description: 'Restores a deleted service account.

        Permissions required: bb.serviceAccounts.undelete'
      operationId: ServiceAccountService_UndeleteServiceAccount
      parameters:
      - name: serviceAccount
        in: path
        description: The serviceAccount id.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bytebase.v1.ServiceAccount'
  /v1/workspaces/{workspace}/serviceAccounts:
    get:
      tags:
      - ServiceAccountService
      summary: ListServiceAccounts
      description: 'Lists service accounts.

        For workspace-level: parent is workspaces/{id}, permission bb.serviceAccounts.list on workspace.

        For project-level: parent is projects/{project}, permission bb.serviceAccounts.list on project.'
      operationId: ServiceAccountService_ListServiceAccounts2
      parameters:
      - name: workspace
        in: path
        description: The workspace id.
        required: true
        schema:
          type: string
      - name: pageSize
        in: query
        description: "The maximum number of service accounts to return. The service may return fewer than\n this value.\n If unspecified, at most 10 service accounts will be returned.\n The maximum value is 1000; values above 1000 will be coerced to 1000."
        schema:
          type: integer
          title: page_size
          format: int32
      - name: pageToken
        in: query
        description: "A page token, received from a previous `ListServiceAccounts` call.\n Provide this to retrieve the subsequent page.\n\n When paginating, all other parameters provided to `ListServiceAccounts` must match\n the call that provided the page token."
        schema:
          type: string
          title: page_token
      - name: showDeleted
        in: query
        description: Show deleted service accounts if specified.
        schema:
          type: boolean
          title: show_deleted
      - name: filter
        in: query
        description: "Filter is used to filter service accounts returned in the list.\n The syntax and semantics of CEL are documented at https://github.com/google/cel-spec\n\n Supported filter:\n - name: the service account name, support \"==\" and \".contains()\" operator.\n - email: the service account email, support \"==\" and \".contains()\" operator.\n - state: check State enum for values, support \"==\" operator.\n\n For example:\n name == \"ed\"\n name.contains(\"ed\")\n state == \"DELETED\"\n email == \"ed@service.bytebase.com\"\n email.contains(\"ed\")"
        schema:
          type: string
          title: filter
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bytebase.v1.ListServiceAccountsResponse'
    post:
      tags:
      - ServiceAccountService
      summary: CreateServiceAccount
      description: 'Creates a new service account.

        For workspace-level: parent is workspaces/{id}, permission bb.serviceAccounts.create on workspace.

        For project-level: parent is projects/{project}, permission bb.serviceAccounts.create on project.'
      operationId: ServiceAccountService_CreateServiceAccount2
      parameters:
      - name: workspace
        in: path
        description: The workspace id.
        required: true
        schema:
          type: string
      - name: serviceAccountId
        in: query
        description: "The ID to use for the service account, which will become the final component\n of the service account's email in the format: {service_account_id}@service.bytebase.com\n or {service_account_id}@{project-id}.service.bytebase.com"
        required: true
        schema:
          type: string
          title: service_account_id
      requestBody:
        description: The service account to create.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/bytebase.v1.ServiceAccount'
              title: service_account
              description: The service account to create.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bytebase.v1.ServiceAccount'
components:
  schemas:
    google.protobuf.Timestamp:
      type: string
      examples:
      - '2023-01-15T01:30:15.01Z'
      - '2024-12-25T12:00:00Z'
      format: date-time
      description: A point in time in RFC 3339 format, with up to nanosecond precision. Output uses UTC (`Z`); input may use an offset from UTC.
    bytebase.v1.State:
      type: string
      title: State
      enum:
      - STATE_UNSPECIFIED
      - ACTIVE
      - DELETED
      description: Resource lifecycle state.
    bytebase.v1.ListServiceAccountsResponse:
      type: object
      properties:
        serviceAccounts:
          type: array
          items:
            $ref: '#/components/schemas/bytebase.v1.ServiceAccount'
          title: service_accounts
          description: The service accounts from the specified request.
        nextPageToken:
          type: string
          title: next_page_token
          description: "A token, which can be sent as `page_token` to retrieve the next page.\n If this field is omitted, there are no subsequent pages."
      title: ListServiceAccountsResponse
      additionalProperties: false
      description: Response message for listing service accounts.
    bytebase.v1.ServiceAccount:
      type: object
      properties:
        name:
          type: string
          title: name
          description: "The name of the service account.\n Format: serviceAccounts/{email}"
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/bytebase.v1.State'
          title: state
          description: The state of the service account.
        email:
          type: string
          title: email
          description: "The email of the service account.\n For workspace-level: {name}@service.bytebase.com\n For project-level: {name}@{project-id}.service.bytebase.com"
          readOnly: true
        title:
          type: string
          title: title
          maxLength: 200
          description: The display title of the service account.
        serviceKey:
          type: string
          title: service_key
          description: The service key for authentication. Only returned on creation or key rotation.
          readOnly: true
        createTime:
          allOf:
          - $ref: '#/components/schemas/google.protobuf.Timestamp'
          title: create_time
          description: The timestamp when the service account was created.
          readOnly: true
      title: ServiceAccount
      additionalProperties: false
      description: ServiceAccount represents an API integration account.
    google.protobuf.Empty:
      type: object
      description: An empty JSON object.
x-provenance:
  method: harvested
  publisher: Bytebase
  source: https://api.bytebase.com/openapi.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)