Certifaction Organization API

Manage your organization, users, and roles.

Operations 4

GET /organization Get your organization #
POST /organization/{id}/user Invite user
DELETE /organization/{id}/user Remove a user from an organization
POST /organization/{organization_id}/role Change the role of a user

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/certifaction-organization-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

certifaction-organization-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: '{{ .ProductName }} Admin Organization API'
  description: '{{ .ProductName }} Admin API is used to manage users, roles and teamspaces.


    ## Setup requirements


    Authentication is required to perform some operations. Please refer to the [Authentication](https://developers.certifaction.com/en/references/authentication) section to obtain an API Key or token.

    '
  version: ''
servers:
- url: '{{ .APIServerURL }}'
security:
- api_key: []
tags:
- name: Organization
  description: Manage your organization, users, and roles.
paths:
  /organization:
    get:
      tags:
      - Organization
      summary: Get your organization
      operationId: getOrganization
      responses:
        '200':
          description: Organization details fetched successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/organization'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
  /organization/{id}/user:
    post:
      tags:
      - Organization
      summary: Invite user
      description: A user could be invited multiple times, assuming he didn't accept the invite yet. An email is sent out for each invitation
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the organization to which you want to invite the user
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/organization_user_invite'
      responses:
        '200':
          description: Invited
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '409':
          $ref: '#/components/responses/conflict'
        '500':
          $ref: '#/components/responses/internal_server_error'
    delete:
      tags:
      - Organization
      summary: Remove a user from an organization
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the organization
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              anyOf:
              - properties:
                  user_uid:
                    type: string
                    description: The UID of the user to remove
                required:
                - user_uid
              - properties:
                  invite_email:
                    description: The email of the invited user to remove
                    type: string
                required:
                - invite_email
      responses:
        '200':
          description: User removed successfully
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '409':
          $ref: '#/components/responses/conflict'
        '500':
          $ref: '#/components/responses/internal_server_error'
  /organization/{organization_id}/role:
    post:
      tags:
      - Organization
      summary: Change the role of a user
      description: Change a user's role in an organization, using either user UID or invite email.
      parameters:
      - name: organization_id
        in: path
        required: true
        description: The ID of the organization
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/organization_role_assign'
      responses:
        '200':
          description: Role updated successfully
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '409':
          $ref: '#/components/responses/conflict'
        '500':
          $ref: '#/components/responses/internal_server_error'
components:
  responses:
    internal_server_error:
      description: An error occurred on the server
    not_found:
      description: The requested resource was not found.
    unauthorized:
      description: You are not authorized to carry out the operation. Check that your API key is correct.
    forbidden:
      description: You do not have permission to carry out the operation. For example you might not have the required role.
    conflict:
      description: Conflict detected in the request. For example, a user might have already been joined an organization.
    bad_request:
      description: The request is not properly formed. For example, the content could not be read.
  requestBodies:
    organization_user_invite:
      content:
        application/json:
          schema:
            type: object
            properties:
              email:
                type: string
              role_id:
                type: string
              send_email:
                type: boolean
                description: Whether to send an email invitation. Default is true if not specified.
    organization_role_assign:
      content:
        application/json:
          schema:
            type: object
            properties:
              user_uid:
                type: string
                description: Either user_uid OR invite_email have to be set, depending if the user already joined or not
              invite_email:
                type: string
              role_id:
                type: string
  schemas:
    organization_user:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/user'
        role:
          type: string
          deprecated: true
        status:
          type: string
        invite_email:
          type: string
          format: email
          nullable: true
        organization:
          type: boolean
        is_admin:
          type: boolean
        roles:
          type: array
          items:
            $ref: '#/components/schemas/organization_role'
        teamspaces:
          type: array
          items:
            $ref: '#/components/schemas/team_space_description'
          nullable: true
    organization_role:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        default:
          type: boolean
        admin:
          type: boolean
    organization:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
          minLength: 2
          maxLength: 80
        name_verified:
          type: boolean
        email:
          type: string
          format: email
          nullable: true
        organization_users:
          type: array
          items:
            $ref: '#/components/schemas/organization_user'
        quota:
          type: integer
          nullable: true
        legacy_credits:
          type: boolean
        roles:
          type: array
          items:
            $ref: '#/components/schemas/organization_role'
    user:
      type: object
      properties:
        id:
          type: integer
        uid:
          type: string
        email:
          type: string
        name:
          type: string
        permissions:
          type: array
          items:
            type: string
        quota:
          type: integer
        subscription_type:
          type: string
        theme:
          type: object
          properties:
            name:
              type: string
          required:
          - name
        name_verified:
          type: boolean
    team_space_description:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
  securitySchemes:
    api_key:
      name: Authorization
      in: header
      type: apiKey