CarbonFarm Authentication API

All data within the platform is private by default. The public role can be configured to expose data without authentication, or you can pass an access token to the API to access private data.

Operations 7

POST /auth/login Retrieve a Temporary Access Token #
POST /auth/refresh Refresh Token #
POST /auth/logout Log Out #
POST /auth/password/request Request a Password Reset #
POST /auth/password/reset Reset a Password #
GET /auth/oauth List OAuth Providers #
GET /auth/oauth/{provider} Authenticated using an OAuth provider #

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/carbonfarm-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

carbonfarm-authentication-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dynamic API Specification Authentication API
  description: This is a dynamically generated API specification for all endpoints existing on the current project.
  version: 10.10.7
servers:
- url: cms.int.carbonfarm.app
  description: Your current Directus instance.
tags:
- name: Authentication
  description: All data within the platform is private by default. The public role can be configured to expose data without authentication, or you can pass an access token to the API to access private data.
paths:
  /auth/login:
    post:
      summary: Retrieve a Temporary Access Token
      description: Retrieve a Temporary Access Token
      tags:
      - Authentication
      operationId: login
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              - password
              properties:
                email:
                  type: string
                  example: admin@example.com
                  description: Email address of the user you're retrieving the access token for.
                password:
                  type: string
                  description: Password of the user.
                  format: password
                  example: password
                mode:
                  type: string
                  enum:
                  - json
                  - cookie
                  - session
                  default: json
                  description: Whether to retrieve the refresh token in the JSON response, or in a httpOnly cookie.
                otp:
                  type: string
                  description: The user's one-time-password (if MFA is enabled).
      responses:
        '200':
          description: Successful authentification
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      access_token:
                        type: string
                        example: eyJhbGciOiJI...
                      expires:
                        type: integer
                        example: 900
                      refresh_token:
                        type: string
                        example: yuOJkjdPXMd...
  /auth/refresh:
    post:
      summary: Refresh Token
      description: Refresh a Temporary Access Token.
      tags:
      - Authentication
      operationId: refresh
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                refresh_token:
                  type: string
                  example: eyJ0eXAiOiJKV...
                  description: JWT access token you want to refresh. This token can't be expired.
                mode:
                  type: string
                  enum:
                  - json
                  - cookie
                  - session
                  default: json
                  description: Whether to submit and retrieve the refresh token in the JSON response, or in a httpOnly cookie.
      responses:
        '200':
          description: Successful request
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      access_token:
                        type: string
                        example: eyJhbGciOiJI...
                      expires:
                        type: integer
                        example: 900
                      refresh_token:
                        type: string
                        example: Gy-caJMpmGTA...
        '401':
          $ref: '#/components/responses/UnauthorizedError'
  /auth/logout:
    post:
      summary: Log Out
      description: Log Out
      tags:
      - Authentication
      operationId: logout
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                refresh_token:
                  type: string
                  example: eyJ0eXAiOiJKV...
                  description: The refresh token to invalidate. If you have the refresh token in a cookie through /auth/login, you don't have to submit it here.
                mode:
                  type: string
                  enum:
                  - json
                  - cookie
                  - session
                  description: Whether the refresh token is submitted in the JSON response, or in a httpOnly cookie.
      responses:
        '200':
          description: Request successful
  /auth/password/request:
    post:
      tags:
      - Authentication
      operationId: passwordRequest
      summary: Request a Password Reset
      description: Request a reset password email to be send.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              properties:
                email:
                  type: string
                  example: admin@example.com
                  description: Email address of the user you're requesting a reset for.
      responses:
        '401':
          $ref: '#/components/responses/UnauthorizedError'
  /auth/password/reset:
    post:
      tags:
      - Authentication
      operationId: passwordReset
      summary: Reset a Password
      description: The request a password reset endpoint sends an email with a link to the admin app which in turn uses this endpoint to allow the user to reset their password.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - token
              - password
              properties:
                token:
                  type: string
                  example: eyJ0eXAiOiJKV1Qi...
                  description: One-time use JWT token that is used to verify the user.
                password:
                  type: string
                  example: password
                  format: password
                  description: New password for the user.
      responses:
        '401':
          $ref: '#/components/responses/UnauthorizedError'
  /auth/oauth:
    get:
      tags:
      - Authentication
      operationId: oauth
      summary: List OAuth Providers
      description: List configured OAuth providers.
      responses:
        '200':
          description: Successful request
          content:
            application/json:
              schema:
                type: object
                properties:
                  public:
                    type: boolean
                  data:
                    type: array
                    example:
                    - github
                    - facebook
                    items:
                      type: string
        '401':
          $ref: '#/components/responses/UnauthorizedError'
  /auth/oauth/{provider}:
    get:
      summary: Authenticated using an OAuth provider
      description: Start OAuth flow using the specified provider
      tags:
      - Authentication
      operationId: oauthProvider
      parameters:
      - name: provider
        in: path
        description: Key of the activated OAuth provider.
        required: true
        schema:
          type: string
      - name: redirect
        in: query
        required: false
        description: Where to redirect on successful login.<br/>If set the authentication details are set inside cookies otherwise a JSON is returned.
        schema:
          type: string
      responses:
        '200':
          description: Successful request
          content:
            application/json:
              schema:
                type: object
                properties:
                  public:
                    type: boolean
                  data:
                    type: object
                    properties:
                      token:
                        type: string
        '401':
          $ref: '#/components/responses/UnauthorizedError'
components:
  responses:
    UnauthorizedError:
      description: 'Error: Unauthorized request'
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  code:
                    type: integer
                    format: int64
                  message:
                    type: string
  securitySchemes:
    KeyAuth:
      type: apiKey
      in: query
      name: access_token
    Auth:
      type: apiKey
      in: header
      name: Authorization