Grepr Service Accounts API

Manage service accounts for programmatic API access using OAuth2 client credentials

Operations 7

GET /v1/service-accounts List service accounts #
POST /v1/service-accounts Create a service account #
DELETE /v1/service-accounts/{id} Delete service account #
GET /v1/service-accounts/{id} Get service account details #
PUT /v1/service-accounts/{id} Update service account #
GET /v1/service-accounts/{id}/secret Get service account secret #
POST /v1/service-accounts/{id}/secret/regenerate Regenerate service account secret #

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/grepr:grepr-service-accounts-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

grepr-service-accounts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Grepr Service Accounts API
  version: 1.0.0
  description: 'Operations tagged Service Accounts across 2 of this provider''s published API definitions: grepr-openapi.json, grepr.json. Each path carries the servers of the definition it was published in.'
tags:
- description: Manage service accounts for programmatic API access using OAuth2 client credentials
  name: Service Accounts
paths:
  /v1/service-accounts:
    get:
      description: Lists all service accounts for the organization with pagination support
      operationId: listServiceAccounts
      parameters:
      - in: query
        name: page
        schema:
          default: 0
          format: int32
          minimum: 0
          type: integer
      - in: query
        name: pageSize
        schema:
          default: 10
          format: int32
          minimum: 1
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceAccountsList'
          description: Service accounts retrieved successfully
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - grepr-api-key: []
      - grepr-oidc: []
      summary: List service accounts
      tags:
      - Service Accounts
    post:
      description: Creates a new service account with OAuth2 client credentials for programmatic API access
      operationId: createServiceAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateServiceAccount'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceAccountWithSecret'
          description: Service account created successfully
        '400':
          description: Invalid request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Service accounts not supported or internal error
      security:
      - grepr-api-key: []
      - grepr-oidc: []
      summary: Create a service account
      tags:
      - Service Accounts
  /v1/service-accounts/{id}:
    delete:
      description: Deletes a service account and immediately revokes all API access using its credentials
      operationId: deleteServiceAccount
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Service account deleted successfully
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Service account not found
      security:
      - grepr-api-key: []
      - grepr-oidc: []
      summary: Delete service account
      tags:
      - Service Accounts
    get:
      description: Gets the details of a specific service account
      operationId: getServiceAccount
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceAccountRead'
          description: Service account retrieved successfully
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Service account not found
      security:
      - grepr-api-key: []
      - grepr-oidc: []
      summary: Get service account details
      tags:
      - Service Accounts
    put:
      description: Updates the name and role assignments of a service account
      operationId: updateServiceAccount
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateServiceAccount'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceAccountRead'
          description: Service account updated successfully
        '400':
          description: Invalid request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Service account not found
      security:
      - grepr-api-key: []
      - grepr-oidc: []
      summary: Update service account
      tags:
      - Service Accounts
  /v1/service-accounts/{id}/secret:
    get:
      description: Retrieves the OAuth2 client secret for a service account
      operationId: getServiceAccountSecret
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
          description: Secret retrieved successfully
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Service account not found
      security:
      - grepr-api-key: []
      - grepr-oidc: []
      summary: Get service account secret
      tags:
      - Service Accounts
  /v1/service-accounts/{id}/secret/regenerate:
    post:
      description: Generates a new OAuth2 client secret for the service account. The old secret will be invalidated immediately.
      operationId: regenerateServiceAccountSecret
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
          description: Secret regenerated successfully
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Service account not found
      security:
      - grepr-api-key: []
      - grepr-oidc: []
      summary: Regenerate service account secret
      tags:
      - Service Accounts
components:
  schemas:
    ServiceAccountsList:
      properties:
        limit:
          format: int32
          type: integer
        serviceAccounts:
          $ref: '#/components/schemas/ItemsCollectionServiceAccountRead'
        start:
          format: int32
          type: integer
      type: object
    ItemsCollectionServiceAccountRead:
      properties:
        items:
          default: []
          items:
            $ref: '#/components/schemas/ServiceAccountRead'
          type: array
      type: object
    UpdateServiceAccount:
      description: Request to update a service account
      properties:
        name:
          description: Display name for the service account
          example: Production API Access
          type: string
        roleIds:
          default: []
          description: List of role IDs to assign to the service account
          example:
          - rol_AlphaNum1234
          - rol_alphaNum5678
          items:
            description: List of role IDs to assign to the service account
            example: '["rol_AlphaNum1234","rol_alphaNum5678"]'
            type: string
          type: array
          uniqueItems: true
      required:
      - name
      - roleIds
      type: object
    ServiceAccountWithSecret:
      description: Service account with client secret (only returned on creation)
      properties:
        clientId:
          description: OAuth2 client ID for authentication
          type: string
        id:
          description: Unique identifier
          type: string
        name:
          description: Display name of the service account
          type: string
        roles:
          default: []
          description: List of assigned roles
          items:
            $ref: '#/components/schemas/Role'
          type: array
          uniqueItems: true
        secret:
          description: The OAuth2 client secret for authentication
          format: password
          type: string
      required:
      - clientId
      - id
      - name
      - roles
      - secret
      type: object
    Role:
      properties:
        builtin:
          default: false
          description: Whether this is a built-in role
          readOnly: true
          type: boolean
        createdAt:
          description: When the role was created (null for system roles)
          format: date-time
          type: string
        createdBy:
          description: Who created the role (null for system roles)
          type: string
        description:
          description: Description of the role
          type: string
        effect:
          default: allow
          description: 'The effect of this role''s permissions: ''allow'' or ''deny''. Defaults to ''allow'' for standard roles.'
          readOnly: true
          type: string
        id:
          description: The id of the role.
          type: string
        name:
          description: The user-facing name of the role.
          type: string
        permissionIds:
          default: []
          description: Permission IDs assigned to this role (empty for system roles)
          items:
            description: Permission IDs assigned to this role (empty for system roles)
            type: string
          type: array
          uniqueItems: true
      required:
      - description
      - id
      - name
      - permissionIds
      type: object
    ServiceAccountRead:
      description: Service account for programmatic API access
      properties:
        clientId:
          description: OAuth2 client ID for authentication
          type: string
        id:
          description: Unique identifier
          type: string
        name:
          description: Display name of the service account
          type: string
        roles:
          default: []
          description: List of assigned roles
          items:
            $ref: '#/components/schemas/Role'
          type: array
          uniqueItems: true
      required:
      - clientId
      - id
      - name
      - roles
      type: object
    CreateServiceAccount:
      description: Request to create a service account
      properties:
        name:
          description: Display name for the service account
          example: Production API Access
          type: string
        roleIds:
          default: []
          description: List of role IDs to assign to the service account
          example:
          - rol_AlphaNum1234
          - rol_alphaNum5678
          items:
            description: List of role IDs to assign to the service account
            example: '["rol_AlphaNum1234","rol_alphaNum5678"]'
            type: string
          type: array
          uniqueItems: true
      required:
      - name
      - roleIds
      type: object
  securitySchemes:
    grepr-api-key:
      in: header
      name: GREPR-API-KEY
      type: apiKey
    grepr-oidc:
      bearerFormat: JWT
      openIdConnectUrl: https://grepr-prod.us.auth0.com/.well-known/openid-configuration
      type: openIdConnect
x-refined-from:
- grepr-openapi.json
- grepr.json
x-tagGroups:
- name: Integrations
  tags:
  - Grepr-hosted Data Warehouse Integration
  - External S3 Data Warehouse Integration
  - Datadog Integration
  - New Relic Integration
  - Splunk Integration
  - Sumo Logic Integration
  - OpenTelemetry Integration
- name: Pipelines
  tags:
  - Jobs
  - Templates
  - Datasets
  - Status Metrics
  - External Triggers
  - Job Actions
  - Triggers
- name: Pipeline Components
  tags:
  - Operations
  - Transforms
  - Sources
  - Sinks
- name: Administration
  tags:
  - Users
  - Teams
  - Roles
  - Permission
  - Invitations
  - Activity Logs
- name: Organization
  tags:
  - Organizations
  - Access Configuration
  - Grepr API Key
  - Service Accounts
  - Signup
- name: Query & Analysis
  tags:
  - Job Anomalies
  - Grok Parsing
  - Query Parsing
  - Validation
- name: System
  tags:
  - Manifest