30MHz Authorization API

The authorization API from 30MHz — 15 operation(s) for authorization.

Operations 19

GET /authorization/device/jwks Get public key for a device access token validation #
POST /authorization/license/oauth/token Provides an access token for a license service #
POST /authorization/role-assignment/assignee/{assignee}/role/{role}/license/{licenseId} Assign a role on a license to a user, if the role already exists it will be a… #
DELETE /authorization/role-assignment/assignee/{assignee}/role/{role}/license/{licenseId} Unassign a role on an license from a user #
POST /authorization/role-assignment/assignee/{assignee}/role/{role}/organization/{organizationId} Assign a role on an organization to a user, if the role already exists it will… #
DELETE /authorization/role-assignment/assignee/{assignee}/role/{role}/organization/{organizationId} Unassign a role on an organization from a user #
POST /authorization/role-assignment/assignee/{assignee}/role/{role}/device/{deviceId} Assign a role on a device to a user, if the role already exists it will be a… #
DELETE /authorization/role-assignment/assignee/{assignee}/role/{role}/device/{deviceId} Unassign a role on a device from a user #
POST /authorization/role-assignment/assignee/{assignee}/role/{role}/organization/{organizationId}/site/{siteId} Assign a role on a site to a user, if the role already exists it will be a no-op #
DELETE /authorization/role-assignment/assignee/{assignee}/role/{role}/organization/{organizationId}/site/{siteId} Unassign a role on a site from a user #
GET /authorization/check/device/{deviceId} Check whether the user is authorized to perform a certain action on a device #
GET /authorization/check/organization/{organizationId} Check whether the user is authorized to perform a certain action on an… #
GET /authorization/check/organization/{organizationId}/site/{siteId} Check whether the user is authorized to perform a certain action on a site #
GET /authorization/device/{deviceId}/access-token Get access token for a specific device #
GET /authorization/role-assignment Get all the role assignments of the current user #
GET /authorization/role-assignment/assignee/{assignee}/organization/{organizationId} Get role assignments of a user on an organization #
GET /authorization/role-assignment/assignee/{assignee}/license/{licenseId} Get role assignments of a user under a license #
GET /authorization/role-assignment/organization/{organizationId} Get role assignments on an organization #
GET /authorization/scopes Get scopes for a specific 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/30mhz-authorization-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

30mhz-authorization-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '2.0'
  title: ZENSIE Authorization API
servers:
- url: https://api.30mhz.com/api
tags:
- name: Authorization
paths:
  /authorization/device/jwks:
    get:
      tags:
      - Authorization
      summary: Get public key for a device access token validation
      description: ''
      operationId: getDevicePublicKey
      security:
      - Bearer: []
      responses:
        '200':
          description: Device access token public key
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
            application/zensie-v2+json:
              schema:
                type: object
                additionalProperties:
                  type: object
            application/jwk-set+json; charset=UTF-8:
              schema:
                type: object
                additionalProperties:
                  type: object
        '401':
          description: Unauthenticated request
        '500':
          description: Error when retrieving device access token public key
  /authorization/license/oauth/token:
    post:
      tags:
      - Authorization
      summary: Provides an access token for a license service
      description: ''
      operationId: getAccessToken
      security:
      - Bearer: []
      responses:
        '200':
          description: Returns the access token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
            application/zensie-v2+json:
              schema:
                $ref: '#/components/schemas/AccessToken'
        '401':
          description: Unauthenticated request
        '500':
          description: Failed to assign the role
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LicenseAccessTokenRequest'
  /authorization/role-assignment/assignee/{assignee}/role/{role}/license/{licenseId}:
    post:
      tags:
      - Authorization
      summary: Assign a role on a license to a user, if the role already exists it will be a…
      description: ''
      operationId: assignRoleOnLicense
      parameters:
      - name: assignee
        in: path
        required: true
        schema:
          type: string
      - name: role
        in: path
        required: true
        schema:
          type: string
      - name: licenseId
        in: path
        required: true
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '200':
          description: Created role assignment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
            application/zensie-v2+json:
              schema:
                $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
        '401':
          description: Unauthenticated request
        '500':
          description: Failed to assign the role
      requestBody:
        content:
          application/json:
            schema:
              type: object
    delete:
      tags:
      - Authorization
      summary: Unassign a role on an license from a user
      description: ''
      operationId: unassignRoleOnLicense
      parameters:
      - name: assignee
        in: path
        required: true
        schema:
          type: string
      - name: role
        in: path
        required: true
        schema:
          type: string
      - name: licenseId
        in: path
        required: true
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '204':
          description: Deleted role assignment
        '401':
          description: Unauthenticated request
        '500':
          description: Failed to unassign the role
      requestBody:
        content:
          application/json:
            schema:
              type: object
  /authorization/role-assignment/assignee/{assignee}/role/{role}/organization/{organizationId}:
    post:
      tags:
      - Authorization
      summary: Assign a role on an organization to a user, if the role already exists it will…
      description: ''
      operationId: assignRoleOnOrganization
      parameters:
      - name: assignee
        in: path
        required: true
        schema:
          type: string
      - name: role
        in: path
        required: true
        schema:
          type: string
      - name: organizationId
        in: path
        required: true
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '200':
          description: Created role assignment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
            application/zensie-v2+json:
              schema:
                $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
        '401':
          description: Unauthenticated request
        '500':
          description: Failed to assign the role
      requestBody:
        content:
          application/json:
            schema:
              type: object
    delete:
      tags:
      - Authorization
      summary: Unassign a role on an organization from a user
      description: ''
      operationId: unassignRoleOnOrganization
      parameters:
      - name: assignee
        in: path
        required: true
        schema:
          type: string
      - name: role
        in: path
        required: true
        schema:
          type: string
      - name: organizationId
        in: path
        required: true
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '204':
          description: Deleted role assignment
        '401':
          description: Unauthenticated request
        '500':
          description: Failed to unassign the role
      requestBody:
        content:
          application/json:
            schema:
              type: object
  /authorization/role-assignment/assignee/{assignee}/role/{role}/device/{deviceId}:
    post:
      tags:
      - Authorization
      summary: Assign a role on a device to a user, if the role already exists it will be a…
      description: ''
      operationId: assignRoleOnDevice
      parameters:
      - name: assignee
        in: path
        required: true
        schema:
          type: string
      - name: role
        in: path
        required: true
        schema:
          type: string
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '200':
          description: Created role assignment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
            application/zensie-v2+json:
              schema:
                $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
        '401':
          description: Unauthenticated request
        '500':
          description: Failed to assign the role
      requestBody:
        content:
          application/json:
            schema:
              type: object
    delete:
      tags:
      - Authorization
      summary: Unassign a role on a device from a user
      description: ''
      operationId: unassignRoleOnDevice
      parameters:
      - name: assignee
        in: path
        required: true
        schema:
          type: string
      - name: role
        in: path
        required: true
        schema:
          type: string
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '204':
          description: Deleted role assignment
        '401':
          description: Unauthenticated request
        '500':
          description: Failed to unassign the role
      requestBody:
        content:
          application/json:
            schema:
              type: object
  /authorization/role-assignment/assignee/{assignee}/role/{role}/organization/{organizationId}/site/{siteId}:
    post:
      tags:
      - Authorization
      summary: Assign a role on a site to a user, if the role already exists it will be a no-op
      description: ''
      operationId: assignRoleOnSite
      parameters:
      - name: assignee
        in: path
        required: true
        schema:
          type: string
      - name: role
        in: path
        required: true
        schema:
          type: string
      - name: organizationId
        in: path
        required: true
        schema:
          type: string
      - name: siteId
        in: path
        required: true
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '200':
          description: Created role assignment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
            application/zensie-v2+json:
              schema:
                $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
        '401':
          description: Unauthenticated request
        '500':
          description: Failed to assign the role
      requestBody:
        content:
          application/json:
            schema:
              type: object
    delete:
      tags:
      - Authorization
      summary: Unassign a role on a site from a user
      description: ''
      operationId: unassignRoleOnSite
      parameters:
      - name: assignee
        in: path
        required: true
        schema:
          type: string
      - name: role
        in: path
        required: true
        schema:
          type: string
      - name: organizationId
        in: path
        required: true
        schema:
          type: string
      - name: siteId
        in: path
        required: true
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '204':
          description: Deleted role assignment
        '401':
          description: Unauthenticated request
        '500':
          description: Failed to unassign the role
      requestBody:
        content:
          application/json:
            schema:
              type: object
  /authorization/check/device/{deviceId}:
    get:
      tags:
      - Authorization
      summary: Check whether the user is authorized to perform a certain action on a device
      description: ''
      operationId: checkUserAuthorizationOnDevice
      parameters:
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
      - name: action
        in: query
        required: false
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '200':
          description: True if the user is authorized, otherwise false
          content:
            application/json:
              schema:
                type: boolean
            application/zensie-v2+json:
              schema:
                type: boolean
        '401':
          description: Unauthenticated request
        '500':
          description: Error when verifying the users permissions
  /authorization/check/organization/{organizationId}:
    get:
      tags:
      - Authorization
      summary: Check whether the user is authorized to perform a certain action on an…
      description: ''
      operationId: checkUserAuthorizationOnOrganization
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          type: string
      - name: action
        in: query
        required: false
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '200':
          description: True if the user is authorized, otherwise false
          content:
            application/json:
              schema:
                type: boolean
            application/zensie-v2+json:
              schema:
                type: boolean
        '401':
          description: Unauthenticated request
        '500':
          description: Error when verifying the users permissions
  /authorization/check/organization/{organizationId}/site/{siteId}:
    get:
      tags:
      - Authorization
      summary: Check whether the user is authorized to perform a certain action on a site
      description: ''
      operationId: checkUserAuthorizationOnSite
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          type: string
      - name: siteId
        in: path
        required: true
        schema:
          type: string
      - name: action
        in: query
        required: false
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '200':
          description: True if the user is authorized, otherwise false
          content:
            application/json:
              schema:
                type: boolean
            application/zensie-v2+json:
              schema:
                type: boolean
        '401':
          description: Unauthenticated request
        '500':
          description: Error when verifying the users permissions
  /authorization/device/{deviceId}/access-token:
    get:
      tags:
      - Authorization
      summary: Get access token for a specific device
      description: ''
      operationId: getDeviceAccessToken
      parameters:
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
      - name: expirationDuration
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 604800
          maximum: 2678400
          minimum: 0
      security:
      - Bearer: []
      responses:
        '200':
          description: Device access token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
            application/zensie-v2+json:
              schema:
                $ref: '#/components/schemas/AccessToken'
            application/jwt:
              schema:
                $ref: '#/components/schemas/AccessToken'
        '401':
          description: Unauthenticated request
        '500':
          description: Error when retrieving device access token
  /authorization/role-assignment:
    get:
      tags:
      - Authorization
      summary: Get all the role assignments of the current user
      description: ''
      operationId: getRoleAssignments
      security:
      - Bearer: []
      responses:
        '200':
          description: List of role assignments
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
            application/zensie-v2+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
        '401':
          description: Unauthenticated request
        '500':
          description: Error when reading the role assignments
  /authorization/role-assignment/assignee/{assignee}/organization/{organizationId}:
    get:
      tags:
      - Authorization
      summary: Get role assignments of a user on an organization
      description: ''
      operationId: getRoleAssignmentsOfUserOnOrganization
      parameters:
      - name: assignee
        in: path
        required: true
        schema:
          type: string
      - name: organizationId
        in: path
        required: true
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '200':
          description: List of role assignments
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
            application/zensie-v2+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
        '401':
          description: Unauthenticated request
        '403':
          description: Forbidden to read role assignments on this organization
        '500':
          description: Error when reading the role assignments
  /authorization/role-assignment/assignee/{assignee}/license/{licenseId}:
    get:
      tags:
      - Authorization
      summary: Get role assignments of a user under a license
      description: ''
      operationId: getRoleAssignmentsOfUserUnderLicense
      parameters:
      - name: assignee
        in: path
        required: true
        schema:
          type: string
      - name: licenseId
        in: path
        required: true
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '200':
          description: List of role assignments
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
            application/zensie-v2+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
        '401':
          description: Unauthenticated request
        '403':
          description: Forbidden to read role assignments under this license
        '500':
          description: Error when reading the role assignments
  /authorization/role-assignment/organization/{organizationId}:
    get:
      tags:
      - Authorization
      summary: Get role assignments on an organization
      description: ''
      operationId: getRoleAssignmentsOnOrganization
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '200':
          description: List of role assignments
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
            application/zensie-v2+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Assignment_of_a_role_on_a_resource_for_a_user'
        '401':
          description: Unauthenticated request
        '403':
          description: Forbidden to read role assignments on this organization
        '500':
          description: Error when reading the role assignments
  /authorization/scopes:
    get:
      tags:
      - Authorization
      summary: Get scopes for a specific user
      description: ''
      operationId: getScopesAndClaims
      parameters:
      - name: userEmail
        in: query
        required: true
        schema:
          type: string
      - name: requiredScopes
        in: query
        required: false
        schema:
          type: string
      security:
      - Bearer: []
      responses:
        '200':
          description: List of scopes for the user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScopesAndClaims'
            application/zensie-v2+json:
              schema:
                $ref: '#/components/schemas/ScopesAndClaims'
        '401':
          description: Unauthenticated request
        '500':
          description: Error when retrieving user scopes
components:
  schemas:
    ScopesAndClaims:
      type: object
      properties:
        claims:
          type: array
          items:
            type: string
        scopes:
          type: array
          items:
            type: string
    Assignment_of_a_role_on_a_resource_for_a_user:
      type: object
      properties:
        assignee:
          type: string
          description: Email of the assignee
        resourceId:
          type: string
          description: Id of the resource on which the role is assigned
        resourceType:
          type: string
          description: Type of the resource on which the role is assigned
        role:
          type: string
          description: Assigned role
    AccessToken:
      type: object
      required:
      - accessToken
      - expiresIn
      - type
      properties:
        accessToken:
          type: string
          description: An access token used to make authorized requests on certain resources
        expiresIn:
          type: integer
          format: int64
          description: Number of seconds in which it expires
        type:
          type: string
          description: Type of the access token
      description: An access token used to grant authorization on certain API operations
    LicenseAccessTokenRequest:
      type: object
      required:
      - audience
      - clientSecret
      - licenseId
      properties:
        audience:
          type: string
          description: The intended consumer of the token, usually this is https://api.cropspace.com/api
        clientSecret:
          type: string
          description: The client secret of the machine-to-machine service
        licenseId:
          type: string
          description: Unique identifier for the license.
      description: Request used by licenses to get an access token for authorization on certain API operations
  securitySchemes:
    Bearer:
      description: ''
      type: apiKey
      name: Authorization
      in: header