API-Fiddle Sharing API

Share projects with other users.

OpenAPI Specification

api-fiddle-sharing-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: API-Fiddle API Fiddle Export Sharing 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: Sharing
  description: Share projects with other users.
paths:
  /projects/{projectId}/sharing:
    get:
      operationId: listSharing
      summary: API-Fiddle List sharing settings
      description: Retrieves the sharing configuration for a project.
      tags:
      - Sharing
      parameters:
      - $ref: '#/components/parameters/projectId'
      responses:
        '200':
          description: The sharing settings for the project.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/SharingEntry'
    post:
      operationId: shareProject
      summary: API-Fiddle Share a project
      description: Shares a project with another user or generates a public link.
      tags:
      - Sharing
      parameters:
      - $ref: '#/components/parameters/projectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SharingInput'
      responses:
        '201':
          description: The sharing entry created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharingEntry'
  /projects/{projectId}/sharing/{sharingId}:
    delete:
      operationId: removeSharing
      summary: API-Fiddle Remove sharing
      description: Revokes sharing access for a specific entry.
      tags:
      - Sharing
      parameters:
      - $ref: '#/components/parameters/projectId'
      - name: sharingId
        in: path
        required: true
        description: The unique identifier of the sharing entry.
        schema:
          type: string
      responses:
        '204':
          description: Sharing entry removed successfully.
components:
  schemas:
    SharingInput:
      type: object
      properties:
        type:
          type: string
          enum:
          - user
          - link
        email:
          type: string
          format: email
          description: Email of the user to share with. Required when type is user.
        role:
          type: string
          enum:
          - viewer
          - editor
          - admin
      required:
      - type
      - role
    SharingEntry:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the sharing entry.
        projectId:
          type: string
          description: Identifier of the shared project.
        type:
          type: string
          enum:
          - user
          - link
          description: Type of sharing.
        email:
          type: string
          format: email
          description: Email of the user the project is shared with.
        role:
          type: string
          enum:
          - viewer
          - editor
          - admin
          description: Role granted to the recipient.
        createdAt:
          type: string
          format: date-time
  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