API-Fiddle Projects API

Manage API design projects.

OpenAPI Specification

api-fiddle-projects-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: API-Fiddle API Fiddle Export Projects API
  description: The API Fiddle API provides programmatic access to the API Fiddle design platform, enabling management of projects, specifications, workspaces, sharing, and export capabilities. It allows developers to automate API design workflows, collaborate on OpenAPI specifications, and integrate API Fiddle into their development pipelines.
  version: 1.0.0
  contact:
    name: API Fiddle
    url: https://api-fiddle.com/
servers:
- url: https://api.api-fiddle.com/v1
  description: Production
security:
- bearerAuth: []
tags:
- name: Projects
  description: Manage API design projects.
paths:
  /projects:
    get:
      operationId: listProjects
      summary: API-Fiddle List projects
      description: Retrieves a paginated list of projects accessible to the authenticated user.
      tags:
      - Projects
      parameters:
      - name: limit
        in: query
        description: Maximum number of projects to return.
        schema:
          type: integer
          default: 20
      - name: offset
        in: query
        description: Number of projects to skip for pagination.
        schema:
          type: integer
          default: 0
      responses:
        '200':
          description: A list of projects.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Project'
                  total:
                    type: integer
                  limit:
                    type: integer
                  offset:
                    type: integer
    post:
      operationId: createProject
      summary: API-Fiddle Create a project
      description: Creates a new API design project.
      tags:
      - Projects
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectInput'
      responses:
        '201':
          description: The newly created project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
  /projects/{projectId}:
    get:
      operationId: getProject
      summary: API-Fiddle Get a project
      description: Retrieves a single project by its identifier.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/projectId'
      responses:
        '200':
          description: The requested project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '404':
          description: Project not found.
    put:
      operationId: updateProject
      summary: API-Fiddle Update a project
      description: Updates an existing project.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/projectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectInput'
      responses:
        '200':
          description: The updated project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
    delete:
      operationId: deleteProject
      summary: API-Fiddle Delete a project
      description: Deletes a project and all associated specifications.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/projectId'
      responses:
        '204':
          description: Project deleted successfully.
components:
  schemas:
    Project:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the project.
        name:
          type: string
          description: Name of the project.
        description:
          type: string
          description: Description of the project.
        workspaceId:
          type: string
          description: Identifier of the workspace this project belongs to.
        visibility:
          type: string
          enum:
          - private
          - public
          - shared
          description: Visibility level of the project.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the project was created.
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the project was last updated.
    ProjectInput:
      type: object
      properties:
        name:
          type: string
          description: Name of the project.
        description:
          type: string
          description: Description of the project.
        workspaceId:
          type: string
          description: Identifier of the workspace to place the project in.
        visibility:
          type: string
          enum:
          - private
          - public
          - shared
      required:
      - name
  parameters:
    projectId:
      name: projectId
      in: path
      required: true
      description: The unique identifier of the project.
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT