Revyl Modules API

The Modules API from Revyl — 8 operation(s) for modules.

Operations 8

POST /api/v1/modules/create Create Module #
DELETE /api/v1/modules/delete/{module_id} Delete Module #
GET /api/v1/modules/list List Modules #
PUT /api/v1/modules/update/{module_id} Update Module #
GET /api/v1/modules/{module_id} Get Module #
POST /api/v1/modules/{module_id}/restore Restore Module Version #
GET /api/v1/modules/{module_id}/tests Get Module Usage #
GET /api/v1/modules/{module_id}/versions Get Module Versions #

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/revyl:revyl-modules-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

revyl-modules-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Revyl API
  title: Revyl Modules API
  version: 1.0.0
servers:
- description: Production
  url: https://backend.revyl.ai
tags:
- name: Modules
paths:
  /api/v1/modules/create:
    post:
      description: Create a new module from blocks
      operationId: create_module_api_v1_modules_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateModuleRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleSingleResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - HTTPBearer: []
      summary: Create Module
      tags:
      - Modules
  /api/v1/modules/delete/{module_id}:
    delete:
      description: Delete a module
      operationId: delete_module_api_v1_modules_delete__module_id__delete
      parameters:
      - in: path
        name: module_id
        required: true
        schema:
          format: uuid
          title: Module Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteModuleResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - HTTPBearer: []
      summary: Delete Module
      tags:
      - Modules
  /api/v1/modules/list:
    get:
      description: List all modules for the user's organization
      operationId: list_modules_api_v1_modules_list_get
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModulesListResponse'
          description: Successful Response
      security:
      - HTTPBearer: []
      summary: List Modules
      tags:
      - Modules
  /api/v1/modules/update/{module_id}:
    put:
      description: Update an existing module
      operationId: update_module_api_v1_modules_update__module_id__put
      parameters:
      - in: path
        name: module_id
        required: true
        schema:
          format: uuid
          title: Module Id
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateModuleRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleSingleResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - HTTPBearer: []
      summary: Update Module
      tags:
      - Modules
  /api/v1/modules/{module_id}:
    get:
      description: Get a specific module by ID
      operationId: get_module_api_v1_modules__module_id__get
      parameters:
      - in: path
        name: module_id
        required: true
        schema:
          format: uuid
          title: Module Id
          type: string
      - in: query
        name: org_id
        required: false
        schema:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Org Id
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleSingleResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - HTTPBearer: []
      summary: Get Module
      tags:
      - Modules
  /api/v1/modules/{module_id}/restore:
    post:
      description: Restore a module to a previous version
      operationId: restore_module_version_api_v1_modules__module_id__restore_post
      parameters:
      - in: path
        name: module_id
        required: true
        schema:
          format: uuid
          title: Module Id
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModuleRestoreVersionRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleRestoreVersionResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - HTTPBearer: []
      summary: Restore Module Version
      tags:
      - Modules
  /api/v1/modules/{module_id}/tests:
    get:
      description: Get all tests that use a specific module
      operationId: get_module_usage_api_v1_modules__module_id__tests_get
      parameters:
      - in: path
        name: module_id
        required: true
        schema:
          format: uuid
          title: Module Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleUsageResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - HTTPBearer: []
      summary: Get Module Usage
      tags:
      - Modules
  /api/v1/modules/{module_id}/versions:
    get:
      description: Get version history for a module
      operationId: get_module_versions_api_v1_modules__module_id__versions_get
      parameters:
      - in: path
        name: module_id
        required: true
        schema:
          format: uuid
          title: Module Id
          type: string
      - in: query
        name: limit
        required: false
        schema:
          default: 20
          maximum: 100
          minimum: 1
          title: Limit
          type: integer
      - in: query
        name: offset
        required: false
        schema:
          default: 0
          minimum: 0
          title: Offset
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleVersionListResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - HTTPBearer: []
      summary: Get Module Versions
      tags:
      - Modules
components:
  schemas:
    UpdateModuleRequest:
      description: Request model for updating an existing module
      properties:
        blocks:
          anyOf:
          - items:
              $ref: '#/components/schemas/ModuleBlock'
            type: array
          - type: 'null'
          description: New blocks array
          title: Blocks
        description:
          anyOf:
          - type: string
          - type: 'null'
          description: New description
          title: Description
        expected_version:
          anyOf:
          - type: integer
          - type: 'null'
          description: Expected version for optimistic locking
          title: Expected Version
        name:
          anyOf:
          - minLength: 1
            type: string
          - type: 'null'
          description: New name
          title: Name
      title: UpdateModuleRequest
      type: object
    DeleteModuleResponse:
      description: Response model for delete operations
      properties:
        message:
          title: Message
          type: string
      required:
      - message
      title: DeleteModuleResponse
      type: object
    ModuleResponse:
      description: Response model for a single module
      properties:
        blocks:
          items: {}
          title: Blocks
          type: array
        created_at:
          title: Created At
          type: string
        created_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Created By
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        id:
          title: Id
          type: string
        last_modified_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Modified By
        last_modified_by_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Modified By Email
        name:
          title: Name
          type: string
        org_id:
          title: Org Id
          type: string
        updated_at:
          title: Updated At
          type: string
        version:
          default: 1
          title: Version
          type: integer
      required:
      - id
      - org_id
      - name
      - blocks
      - created_at
      - updated_at
      title: ModuleResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    ModuleUsageResponse:
      description: Response model for module usage lookup
      properties:
        tests:
          items:
            $ref: '#/components/schemas/ModuleUsageTestItem'
          title: Tests
          type: array
        total:
          title: Total
          type: integer
      required:
      - tests
      - total
      title: ModuleUsageResponse
      type: object
    ModuleRestoreVersionRequest:
      description: Request to restore a module to a previous version
      properties:
        version:
          description: Version number to restore
          title: Version
          type: integer
      required:
      - version
      title: ModuleRestoreVersionRequest
      type: object
    ModulesListResponse:
      description: Response model for listing modules
      properties:
        message:
          title: Message
          type: string
        result:
          items:
            $ref: '#/components/schemas/ModuleResponse'
          title: Result
          type: array
      required:
      - message
      - result
      title: ModulesListResponse
      type: object
    ModuleVersionInfo:
      description: A single version history entry
      properties:
        blocks:
          items: {}
          title: Blocks
          type: array
        created_at:
          title: Created At
          type: string
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        id:
          title: Id
          type: string
        modified_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Modified By
        modified_by_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Modified By Email
        module_id:
          title: Module Id
          type: string
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        version:
          title: Version
          type: integer
      required:
      - id
      - module_id
      - version
      - blocks
      - created_at
      title: ModuleVersionInfo
      type: object
    ModuleUsageTestItem:
      description: A test that uses a specific module
      properties:
        id:
          title: Id
          type: string
        name:
          title: Name
          type: string
      required:
      - id
      - name
      title: ModuleUsageTestItem
      type: object
    ModuleVersionListResponse:
      description: Response for listing module versions
      properties:
        total:
          title: Total
          type: integer
        versions:
          items:
            $ref: '#/components/schemas/ModuleVersionInfo'
          title: Versions
          type: array
      required:
      - versions
      - total
      title: ModuleVersionListResponse
      type: object
    ModuleRestoreVersionResponse:
      description: Response after restoring a module version
      properties:
        message:
          title: Message
          type: string
        new_version:
          title: New Version
          type: integer
        restored_from:
          title: Restored From
          type: integer
        result:
          $ref: '#/components/schemas/ModuleResponse'
      required:
      - message
      - result
      - new_version
      - restored_from
      title: ModuleRestoreVersionResponse
      type: object
    ModuleSingleResponse:
      description: Response model for single module operations
      properties:
        message:
          title: Message
          type: string
        result:
          $ref: '#/components/schemas/ModuleResponse'
      required:
      - message
      - result
      title: ModuleSingleResponse
      type: object
    CreateModuleRequest:
      description: Request model for creating a new module
      properties:
        blocks:
          description: Array of block objects
          items:
            $ref: '#/components/schemas/ModuleBlock'
          title: Blocks
          type: array
        description:
          anyOf:
          - type: string
          - type: 'null'
          description: Optional description
          title: Description
        name:
          description: Name of the module
          minLength: 1
          title: Name
          type: string
      required:
      - name
      - blocks
      title: CreateModuleRequest
      type: object
    ModuleBlock:
      description: 'Individual block within a module - matches FrontendBlock structure.


        The id field is auto-generated if not provided, so blocks from any client

        (frontend, CLI, direct API) are always stored with valid IDs.'
      properties:
        children:
          anyOf:
          - items:
              $ref: '#/components/schemas/ModuleBlock'
            type: array
          - type: 'null'
          title: Children
        condition:
          anyOf:
          - type: string
          - type: 'null'
          title: Condition
        elseChildren:
          anyOf:
          - items:
              $ref: '#/components/schemas/ModuleBlock'
            type: array
          - type: 'null'
          title: Elsechildren
        file:
          anyOf:
          - type: string
          - type: 'null'
          title: File
        file_uri:
          anyOf:
          - type: string
          - type: 'null'
          title: File Uri
        id:
          anyOf:
          - type: string
          - type: 'null'
          description: Block ID (auto-generated if not provided)
          title: Id
        module:
          anyOf:
          - type: string
          - type: 'null'
          title: Module
        module_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Module Id
        script:
          anyOf:
          - type: string
          - type: 'null'
          title: Script
        script_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Script Id
        step_description:
          anyOf:
          - type: string
          - type: 'null'
          title: Step Description
        step_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Step Type
        thenChildren:
          anyOf:
          - items:
              $ref: '#/components/schemas/ModuleBlock'
            type: array
          - type: 'null'
          title: Thenchildren
        type:
          title: Type
          type: string
        variable_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Variable Name
        variable_scope:
          anyOf:
          - type: string
          - type: 'null'
          title: Variable Scope
      required:
      - type
      title: ModuleBlock
      type: object
    ValidationError:
      properties:
        ctx:
          title: Context
          type: object
        input:
          title: Input
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
      - loc
      - msg
      - type
      title: ValidationError
      type: object
  securitySchemes:
    HTTPBearer:
      scheme: bearer
      type: http