Knak OAuth2 API

Endpoints that need to be implemented to support OAuth2 — the token and authorize endpoints a CUSTOMER exposes so Knak can authenticate against their Custom DAM or Custom Sync Location service. Not a Knak-hosted API; the base URL is the placeholder host Knak publishes in its specifications.

Operations 3

POST /v1/oauth/token Provide an Access Token
GET /oauth2/authorize OAuth2 Authorization
POST /oauth2/token OAuth2 Token

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/knak-oauth2-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 email required.

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

OpenAPI Specification

knak-oauth2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Knak O Auth2 API
  version: V1
  x-logo:
    url: https://s3.amazonaws.com/assets.knak.io/img/Knak-Logo-Medium.png
  description: 'Operations tagged OAuth2 across 2 of this provider''s published API definitions: knak-custom-sync-location-openapi-original.yml, knak-dam-openapi-original.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://yourService.com/your-sync-location-api
- url: https://yourService.com/yourDamApi
tags:
- name: OAuth2
  description: Endpoints that need to be implemented to support OAuth2
paths:
  /v1/oauth/token:
    post:
      tags:
      - OAuth2
      summary: Provide an Access Token
      description: If using an Oauth2 configured custom sync location integration Knak will call this endpoint to get an access token for your service. This is used to authenticate requests from Knak to your service.
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                grant_type:
                  type: string
                  description: The grant type. This should be `authorization_code`.
                  example: authorization_code
                code:
                  type: string
                  description: The authorization code.
                  example: '123456'
                redirect_uri:
                  type: string
                  description: The redirect URI.
                  example: https://yourService.com/oauth/callback
                client_id:
                  type: string
                  description: The client ID.
                  example: your-client-id
                client_secret:
                  type: string
                  description: The client secret.
                  example: your-client-secret
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  access_token:
                    type: string
                    description: The access token.
                    example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
                  token_type:
                    type: string
                    description: The token type.
                    example: Bearer
                  expires_in:
                    type: integer
                    description: The number of seconds until the token expires.
                    example: 3600
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: The error message.
                    example: invalid_request
                  error_description:
                    type: string
                    description: A description of the error.
                    example: The request is missing a required parameter.
        401:
          description: Unauthorized
    servers:
    - url: https://yourService.com/your-sync-location-api
  /oauth2/authorize:
    get:
      tags:
      - OAuth2
      summary: OAuth2 Authorization
      description: <p> <a href='https://tools.ietf.org/html/rfc6749#section-3.1'>OAuth2 Authorize</a> endpoint. Will need to be configured in Knak. </p>
      parameters:
      - name: response_type
        in: query
        required: true
        schema:
          type: string
        description: The expected response type. This field should be `code`
        example: code
      - name: client_id
        in: query
        required: true
        schema:
          type: string
        description: The client ID (will need to be configured in Knak)
        example: '1948194'
      - name: redirect_uri
        in: query
        required: true
        schema:
          type: string
        description: The URI that expected authorization code should be sent to.
        example: https://enterprise.knak.io/account/integrations/custom-dam/authorize
      - name: state
        in: query
        required: true
        schema:
          type: string
        description: State
        example: za81js910s
      - name: scope
        in: query
        required: false
        schema:
          type: string
        description: 'Optional: if your application requires a set of scopes, they can be configured in Knak'
        example: read:assets
      responses:
        200:
          description: success
    servers:
    - url: https://yourService.com/yourDamApi
  /oauth2/token:
    post:
      tags:
      - OAuth2
      summary: OAuth2 Token
      description: "<p>\n<a href='https://tools.ietf.org/html/rfc6749#section-3.2'>OAuth2 Token</a>\nendpoint. Please note that this authorization url is configured in Knak.\nThe required parameters depend on the grant type requested:\n</p>\n\n<p>Authorization Code:</p>\n<ul>\n  <li>grant_type: authorization_code</li>\n  <li>client_id</li>\n  <li>client_secret</li>\n  <li>code</li>\n  <li>redirect_uri</li>\n</ul>\n\n<p>Refresh Token</p>\n<ul>\n  <li>grant_type: refresh_token</li>\n  <li>client_id </li>\n  <li>client_secret </li>\n  <li>refresh_token </li>\n</ul>\n"
      parameters:
      - name: tokenRequest
        in: body
        schema:
          $ref: '#/components/schemas/OAuth2TokenRequest'
      responses:
        200:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuth2TokenResponse'
    servers:
    - url: https://yourService.com/yourDamApi
components:
  schemas:
    OAuth2TokenResponse:
      type: object
      properties:
        access_token:
          type: string
          description: The member's assigned access token
          example: wj1ds92jdowk132
        refresh_token:
          type: string
          description: 'The member''s assigned refresh token '
          example: ai298dj2od01kde
        expires_in:
          type: string
          description: The number of seconds in which the access token is valid
          example: '7200'
        token_type:
          type: string
          description: The type of access token
          example: ai298dj2od01kde
    OAuth2TokenRequest:
      type: object
      required:
      - grant_type
      properties:
        grant_type:
          type: string
          description: The expected OAuth2 grant type. This field should be `authorization_code` or `refresh_token`
          example: authorization_code
        code:
          type: string
          description: 'The authorization code granted by the application. Used with grant type: authorization_code'
          example: 1as314rdfv291si2
        client_id:
          type: string
          description: The client ID
          example: '1948194'
        client_secret:
          type: string
          description: The client secret
          example: '1948194'
        redirect_uri:
          type: string
          description: 'The URI that expected authorization code was sent to. Used with grant type: authorization_code'
          example: https://enterprise.knak.io/account/integrations/custom-dam/authorize
        refresh_token:
          type: string
          description: 'The refresh token for the member that needs its token to be refreshed. Used with grant type: refresh_token'
          example: 'null'
x-refined-from:
- knak-custom-sync-location-openapi-original.yml
- knak-dam-openapi-original.yml