Benchling Authentication API

Endpoints to help authenticate with the rest of the API resources.

Operations 2

POST /token Generate a token for usage with authenticating via OAuth2 in subsequent API calls. #
POST /oauth/token Generate a token #

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/benchling-authentication-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

benchling-authentication-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Benchling Authentication API
  version: 2.0.0
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  description: 'Operations tagged Authentication across 2 of this provider''s published API definitions: benchling-authentication-api-openapi.yml, benchling-v3-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: /api/v2
- url: /api/v3
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: Endpoints to help authenticate with the rest of the API resources.
  name: Authentication
paths:
  /token:
    post:
      description: Generate a token
      operationId: generateToken
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenCreate'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
          description: Generated token
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthBadRequestError'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthUnauthorizedError'
          description: Unauthorized
      security:
      - basicClientIdSecretAuth: []
      summary: Generate a token for usage with authenticating via OAuth2 in subsequent API calls.
      tags:
      - Authentication
    servers:
    - url: /api/v2
  /oauth/token:
    servers:
    - url: ''
    post:
      description: 'Generate a token for usage with authenticating via OAuth2 in subsequent API calls.


        Supports the following grant types:

        - `client_credentials` — exchange client ID and secret for an access token.

        - `authorization_code` — exchange an authorization code (from the OAuth2 authorize flow) for an access token and refresh token. Requires `code`, `redirect_uri`, and optionally `code_verifier` (for PKCE) and `state`.

        - `refresh_token` — exchange a refresh token for a new access token and refresh token.


        **Note:** This endpoint is available at the absolute URL `/oauth/token` (not relative to the versioned API base path).'
      operationId: generateToken
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                client_id:
                  description: ID of client to request token for. Leave off if client ID and secret are being supplied through Authorization header.
                  type: string
                client_secret:
                  description: Leave off if client ID and secret are being supplied through Authorization header.
                  type: string
                code:
                  description: Authorization code received from the authorize endpoint. Required when grant_type is authorization_code.
                  type: string
                code_verifier:
                  description: PKCE code verifier. Required when grant_type is authorization_code and a code_challenge was sent in the authorization request.
                  type: string
                grant_type:
                  enum:
                  - client_credentials
                  - authorization_code
                  - refresh_token
                  example: client_credentials
                  type: string
                redirect_uri:
                  description: Redirect URI that was used in the authorization request. Required when grant_type is authorization_code.
                  type: string
                refresh_token:
                  description: Refresh token to exchange for a new access token. Required when grant_type is refresh_token.
                  type: string
                state:
                  description: Optional state parameter for the authorization_code grant type.
                  type: string
              required:
              - grant_type
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  access_token:
                    example: eyJ...
                    type: string
                  expires_in:
                    description: Number of seconds that the access token is valid for
                    example: 900
                    type: integer
                  refresh_token:
                    description: Refresh token. Returned when grant_type is authorization_code or refresh_token.
                    example: eyJ...
                    type: string
                  refresh_token_expires_in:
                    description: Number of seconds that the refresh token is valid for. Returned when a refresh_token is included in the response.
                    example: 2592000
                    type: integer
                  token_type:
                    enum:
                    - Bearer
                    example: Bearer
                    type: string
                required:
                - access_token
                - token_type
                - expires_in
                type: object
          description: Generated token
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      security:
      - basicClientIdSecretAuth: []
      summary: Generate a token
      tags:
      - Authentication
components:
  schemas:
    TokenCreate:
      properties:
        client_id:
          description: 'ID of client to request token for. Leave off if client ID and secret are being supplied through Authorization header.

            '
          type: string
        client_secret:
          description: 'Leave off if client ID and secret are being supplied through Authorization header.

            '
          type: string
        grant_type:
          enum:
          - client_credentials
          example: client_credentials
          type: string
      required:
      - grant_type
      type: object
    OAuthUnauthorizedError:
      properties:
        error:
          allOf:
          - $ref: '#/components/schemas/BaseError'
          - properties:
              type:
                enum:
                - invalid_client
                type: string
      type: object
    TokenResponse:
      properties:
        access_token:
          example: eyJ...
          type: string
        expires_in:
          description: Number of seconds that token is valid for
          example: 900
          type: integer
        token_type:
          enum:
          - Bearer
          example: Bearer
          type: string
      type: object
    OAuthBadRequestError:
      properties:
        error:
          allOf:
          - $ref: '#/components/schemas/BaseError'
          - properties:
              type:
                enum:
                - invalid_request
                - invalid_grant
                - unauthorized_client
                - unsupported_grant_type
                type: string
      type: object
    BaseError:
      properties:
        message:
          type: string
        type:
          type: string
        userMessage:
          type: string
      type: object
  securitySchemes:
    basicApiKeyAuth:
      description: Use issued API key for standard access to the API
      scheme: basic
      type: http
    basicClientIdSecretAuth:
      description: Auth used as part of client credentials OAuth flow prior to receiving a bearer token.
      scheme: basic
      type: http
    oAuth:
      description: OAuth2 Client Credentials flow intended for service access
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /api/v2/token
      type: oauth2
externalDocs:
  description: Additional API Documentation
  url: https://docs.benchling.com
x-refined-from:
- benchling-authentication-api-openapi.yml
- benchling-v3-openapi.yaml