Zeplin Flows API

The Flows API from Zeplin — 7 operation(s) for flows.

OpenAPI Specification

zeplin-flows-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Zeplin Authorization Flows API
  description: Access your resources in Zeplin
  version: 1.38.0
  contact:
    name: Zeplin
    url: https://zeplin.io
    email: support@zeplin.io
servers:
- url: https://api.zeplin.dev
security:
- PersonalAccessToken: []
- OAuth2: []
tags:
- name: Flows
paths:
  /v1/projects/{project_id}/flow_boards:
    get:
      tags:
      - Flows
      summary: Get project flow boards
      description: List all flow boards in a project.
      operationId: GetProjectFlowBoards
      parameters:
      - $ref: '#/components/parameters/project_id'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlowBoard'
              examples:
                Boards:
                  value:
                  - $ref: '#/components/examples/flowBoard/value'
        '404':
          $ref: '#/components/responses/projectNotFound'
        '422':
          $ref: '#/components/responses/projectArchived'
  /v1/projects/{project_id}/flow_boards/{flow_board_id}:
    get:
      tags:
      - Flows
      summary: Get a single project flow board
      description: Get flow board details related to a project
      operationId: GetProjectFlowBoard
      parameters:
      - $ref: '#/components/parameters/project_id'
      - $ref: '#/components/parameters/flow_board_id'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowBoard'
              examples:
                Board:
                  $ref: '#/components/examples/flowBoard'
        '404':
          $ref: '#/components/responses/projectOrFlowBoardNotFound'
        '422':
          $ref: '#/components/responses/projectArchived'
  /v1/projects/{project_id}/flow_boards/{flow_board_id}/groups:
    get:
      tags:
      - Flows
      summary: Get project flow board groups
      description: List all flow board groups in a project.
      operationId: GetProjectFlowBoardGroups
      parameters:
      - $ref: '#/components/parameters/project_id'
      - $ref: '#/components/parameters/flow_board_id'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlowBoardGroup'
              examples:
                Board Group:
                  value:
                  - $ref: '#/components/examples/flowBoardGroup/value'
        '404':
          $ref: '#/components/responses/projectOrFlowBoardNotFound'
        '422':
          $ref: '#/components/responses/projectArchived'
  /v1/projects/{project_id}/flow_boards/{flow_board_id}/connectors:
    get:
      tags:
      - Flows
      summary: Get project flow board connectors
      description: List all connectors of the flow board in a project
      operationId: GetProjectFlowBoardConnectors
      parameters:
      - $ref: '#/components/parameters/project_id'
      - $ref: '#/components/parameters/flow_board_id'
      - $ref: '#/components/parameters/starting_node_id'
      - $ref: '#/components/parameters/ending_node_id'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlowBoardConnector'
              examples:
                Board Connectors:
                  value:
                  - $ref: '#/components/examples/flowBoardConnector/value'
        '404':
          $ref: '#/components/responses/projectNotFound'
        '422':
          $ref: '#/components/responses/projectArchived'
  /v1/projects/{project_id}/flow_boards/{flow_board_id}/connectors/{connector_id}:
    get:
      tags:
      - Flows
      summary: Get a single project flow board connector
      description: Get details of the project flow board connector
      operationId: GetProjectFlowBoardConnector
      parameters:
      - $ref: '#/components/parameters/project_id'
      - $ref: '#/components/parameters/flow_board_id'
      - $ref: '#/components/parameters/connector_id'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowBoardConnector'
              examples:
                response:
                  $ref: '#/components/examples/flowBoardConnector'
        '404':
          $ref: '#/components/responses/projectOrFlowBoardConnectorNotFound'
        '422':
          $ref: '#/components/responses/projectArchived'
  /v1/projects/{project_id}/flow_boards/{flow_board_id}/nodes:
    get:
      tags:
      - Flows
      summary: Get project flow board nodes
      description: List all nodes of the flow board in a project
      operationId: GetProjectFlowBoardNodes
      parameters:
      - $ref: '#/components/parameters/project_id'
      - $ref: '#/components/parameters/flow_board_id'
      - $ref: '#/components/parameters/group_id'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlowBoardNode'
              examples:
                Board Nodes:
                  value:
                  - $ref: '#/components/examples/flowBoardNode/value'
        '404':
          $ref: '#/components/responses/projectNotFound'
        '422':
          $ref: '#/components/responses/projectArchived'
  /v1/projects/{project_id}/flow_boards/{flow_board_id}/nodes/{node_id}:
    get:
      tags:
      - Flows
      summary: Get a single project flow board node
      description: Get details of the project flow board node
      operationId: GetProjectFlowBoardNode
      parameters:
      - $ref: '#/components/parameters/project_id'
      - $ref: '#/components/parameters/flow_board_id'
      - $ref: '#/components/parameters/node_id'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowBoardNode'
              examples:
                response:
                  $ref: '#/components/examples/flowBoardNode'
        '404':
          $ref: '#/components/responses/projectOrFlowBoardNodeNotFound'
        '422':
          $ref: '#/components/responses/projectArchived'
components:
  schemas:
    ScreenAnnotationNoteTypeEnum:
      title: Note Types
      type: string
      enum:
      - Behavior
      - Requirement
      - Animation
      - Accessibility
      - API
      - Tracking
      description: Type of the annotation note
    FlowBoardConnector:
      title: Flow Board Connector
      type: object
      required:
      - id
      - type
      - start
      - end
      properties:
        id:
          type: string
          description: The unique id of the connector
        type:
          type: string
          enum:
          - SolidLine
          - DashedLine
        start:
          $ref: '#/components/schemas/FlowBoardConnection'
        end:
          $ref: '#/components/schemas/FlowBoardConnection'
        label:
          $ref: '#/components/schemas/FlowBoardConnectorLabel'
        color:
          type: string
          enum:
          - yellow
          - orange
          - peach
          - green
          - turquoise
          description: Color for the connector
      example:
        $ref: '#/components/examples/flowBoardConnector'
    FlowBoardVariantGroupNode:
      title: Flow Board Variant Group Node
      type: object
      required:
      - id
      - type
      - position
      - variant_group
      - default_variant
      properties:
        id:
          type: string
          description: The unique id of the variant group node
        type:
          type: string
          enum:
          - VariantGroupNode
        position:
          $ref: '#/components/schemas/FlowBoardPosition'
        variant_group:
          $ref: '#/components/schemas/EntityReference'
        default_variant:
          $ref: '#/components/schemas/EntityReference'
      example:
        $ref: '#/components/examples/flowBoardVariantGroupNode'
    FlowBoardNode:
      title: Flow Board Node
      discriminator:
        propertyName: type
        mapping:
          ScreenNode: '#/components/schemas/FlowBoardScreenNode'
          TextLabelNode: '#/components/schemas/FlowBoardTextNode'
          VariantGroupNode: '#/components/schemas/FlowBoardVariantGroupNode'
          ShapeNode: '#/components/schemas/FlowBoardShapeNode'
          AnnotationNode: '#/components/schemas/FlowBoardAnnotationNode'
      oneOf:
      - $ref: '#/components/schemas/FlowBoardScreenNode'
      - $ref: '#/components/schemas/FlowBoardTextNode'
      - $ref: '#/components/schemas/FlowBoardVariantGroupNode'
      - $ref: '#/components/schemas/FlowBoardShapeNode'
      - $ref: '#/components/schemas/FlowBoardAnnotationNode'
      x-examples:
        Board Screen Node:
          $ref: '#/components/examples/flowBoardScreenNode'
        Board Text Node:
          $ref: '#/components/examples/flowBoardTextNode'
        Board Variant Group Node:
          $ref: '#/components/examples/flowBoardVariantGroupNode'
        Board Shape Node:
          $ref: '#/components/examples/flowBoardShapeNode'
        Board Annotation Node:
          $ref: '#/components/examples/flowBoardAnnotationNode'
    EntityReference:
      title: Object Reference
      type: object
      required:
      - id
      properties:
        id:
          type: string
          description: Id of the entity
      example:
        $ref: '#/components/examples/entityReference'
    ColorData:
      title: Color Data
      type: object
      required:
      - r
      - g
      - b
      - a
      properties:
        source_id:
          type: string
          description: Color's identifier in the design tool
        r:
          type: integer
          description: Red component of the color
        g:
          type: integer
          description: Green component of the color
        b:
          type: integer
          description: Blue component of the color
        a:
          type: number
          description: Alpha component of the color
      example:
        $ref: '#/components/examples/colorData'
    FlowBoardGroup:
      title: Flow Board Group
      type: object
      required:
      - id
      - created
      - name
      - color
      properties:
        id:
          type: string
          description: Identifier of the flow board group
        created:
          type: integer
          format: timestamp
          description: The unix timestamp when the color was created
        name:
          type: string
          description: Name of the flow board
        color:
          $ref: '#/components/schemas/ColorData'
      example:
        $ref: '#/components/examples/flowBoardGroup'
    ErrorResponse:
      title: Error Response
      type: object
      required:
      - message
      properties:
        message:
          type: string
          description: A user readable descriptive message for the error
        detail:
          type: string
          description: A detailed message describing the error
        code:
          type: string
          description: The unique code for the error
      example:
        $ref: '#/components/examples/error'
    FlowBoardPosition:
      title: Flow Board Position
      type: object
      required:
      - x
      - y
      properties:
        x:
          type: number
        y:
          type: number
      example:
        $ref: '#/components/examples/flowBoardPosition'
    FlowBoardScreenNode:
      title: Flow Board Screen Node
      type: object
      required:
      - id
      - type
      - position
      - screen
      properties:
        id:
          type: string
          description: The unique id of the screen node
        type:
          type: string
          enum:
          - ScreenNode
        position:
          $ref: '#/components/schemas/FlowBoardPosition'
        screen:
          $ref: '#/components/schemas/EntityReference'
      example:
        $ref: '#/components/examples/flowBoardScreenNode'
    FlowBoard:
      title: Flow Board
      type: object
      required:
      - id
      - name
      - number_of_connectors
      - number_of_nodes
      - number_of_groups
      properties:
        id:
          type: string
          description: Identifier of the board
        name:
          type: string
          description: Name of the board
        number_of_connectors:
          type: integer
          description: Number of connectors in the board
        number_of_nodes:
          type: integer
          description: Number of nodes in the board
        number_of_groups:
          type: integer
          description: Number of groups in the board
      example:
        $ref: '#/components/examples/flowBoard'
    FlowBoardAnnotationNode:
      title: Flow Board Annotation Node
      type: object
      required:
      - id
      - type
      - position
      - width
      - height
      - color
      - font_size
      - font_type
      - text
      properties:
        id:
          type: string
          description: The unique id of the screen node
        type:
          type: string
          enum:
          - AnnotationNode
        position:
          $ref: '#/components/schemas/FlowBoardPosition'
        width:
          type: number
        height:
          type: number
        color:
          $ref: '#/components/schemas/FlowBoardNodeColor'
        font_size:
          type: string
          enum:
          - small
          - medium
          - large
          - xlarge
        font_type:
          type: string
          enum:
          - simple
          - book-style
          - technical
          - handwritten
        text:
          type: string
          description: The text content of the annotation
        note_type:
          $ref: '#/components/schemas/ScreenAnnotationNoteType'
      example:
        $ref: '#/components/examples/flowBoardAnnotationNode'
    FlowBoardConnection:
      title: Flow Board Connection
      type: object
      required:
      - node
      properties:
        node:
          $ref: '#/components/schemas/EntityReference'
        style:
          type: string
          enum:
          - arrow
          - point
        layer_source_id:
          type: string
          description: Layer's identifier in the design tool
        connection_position:
          $ref: '#/components/schemas/FlowBoardConnectionPosition'
      example:
        $ref: '#/components/examples/flowBoardConnection'
    FlowBoardNodeColor:
      title: Flow Board Node Color
      type: object
      required:
      - r
      - g
      - b
      - a
      properties:
        r:
          type: integer
          description: Red component of the color
        g:
          type: integer
          description: Green component of the color
        b:
          type: integer
          description: Blue component of the color
        a:
          type: number
          description: Alpha component of the color
      example:
        $ref: '#/components/examples/flowBoardNodeColor'
    FlowBoardTextNode:
      title: Flow Board Text Node
      type: object
      required:
      - id
      - type
      - position
      - text
      - width
      properties:
        id:
          type: string
          description: The unique id of the text node
        type:
          type: string
          enum:
          - TextLabelNode
        position:
          $ref: '#/components/schemas/FlowBoardPosition'
        text:
          type: string
        width:
          type: number
      example:
        $ref: '#/components/examples/flowBoardTextNode'
    FlowBoardConnectorLabel:
      title: Flow Board Connector Label
      type: object
      required:
      - text
      properties:
        text:
          type: string
          description: Text for the connector label
        position:
          type: number
          description: Percentage based position of the connector label
        width:
          type: number
          description: Width of the connector label
      example:
        $ref: '#/components/examples/flowBoardConnectorLabel'
    FlowBoardShapeNode:
      title: Flow Board Shape Node
      type: object
      required:
      - id
      - type
      - shape_type
      - position
      - text
      - width
      - height
      - color
      properties:
        id:
          type: string
          description: The unique id of the shape node
        type:
          type: string
          enum:
          - ShapeNode
        shape_type:
          type: string
          enum:
          - rectangle
          - pill
          - diamond
        position:
          $ref: '#/components/schemas/FlowBoardPosition'
        text:
          type: string
        width:
          type: number
        height:
          type: number
        color:
          $ref: '#/components/schemas/FlowBoardNodeColor'
      example:
        $ref: '#/components/examples/flowBoardShapeNode'
    FlowBoardConnectionPosition:
      title: Flow Board Connection Position
      type: object
      required:
      - dot_index
      - side
      properties:
        dot_index:
          type: number
        side:
          type: string
          enum:
          - left
          - right
          - bottom
          - top
      example:
        $ref: '#/components/examples/flowBoardConnectionPosition'
    ScreenAnnotationColor:
      title: Screen Annotation Color
      type: object
      required:
      - r
      - g
      - b
      - a
      properties:
        name:
          type: string
          description: Name of the color
        r:
          type: integer
          description: Red component of the color
        g:
          type: integer
          description: Green component of the color
        b:
          type: integer
          description: Blue component of the color
        a:
          type: number
          description: Alpha component of the color
      example:
        $ref: '#/components/examples/screenAnnotationColor'
    ScreenAnnotationNoteType:
      title: Screen Annotation Note Type
      type: object
      required:
      - id
      - name
      - color
      properties:
        id:
          type: string
          description: The unique id of the annotation
        name:
          $ref: '#/components/schemas/ScreenAnnotationNoteTypeEnum'
          description: Name of the note type
        color:
          $ref: '#/components/schemas/ScreenAnnotationColor'
          description: Color of the note type
  examples:
    screenAnnotationNoteType:
      value:
        id: 6436877c182345f62e94ab8e
        name: Requirements
        color:
          $ref: '#/components/examples/screenAnnotationColor/value'
    flowBoardGroup:
      summary: Flow Board Group
      value:
        id: 5dbad85a76ea51c1f35b6f69
        created: 1517184000
        name: example board group name
        color:
          $ref: '#/components/examples/colorData/value'
    flowBoardNodeColor:
      summary: Flow Board Node Color
      value:
        r: 255
        g: 255
        b: 0
        a: 1
    colorData:
      summary: Color Data
      value:
        source_id: 0BEBFEB3-A107-4D1D-A3B0-77D1FBD35F01
        r: 143
        g: 152
        b: 5
        a: 1
    flowBoardAnnotationNode:
      summary: Flow Board Annotation Node
      value:
        id: 610cd30ff252160033aa5ab9
        type: AnnotationNode
        text: Example Annotation
        width: 100
        height: 100
        color:
          $ref: '#/components/examples/flowBoardNodeColor/value'
        position:
          x: 23
          y: 45
        font_size: small
        font_type: simple
        note_type:
          $ref: '#/components/examples/screenAnnotationNoteType/value'
    flowBoard:
      summary: Flow Board
      value:
        id: 5dbad85a76ea51c1f35b6f69
        name: Example Flow Board Name
        number_of_connectors: 5
        number_of_nodes: 4
        number_of_groups: 1
    screenAnnotationColor:
      summary: Screen Annotation Color
      value:
        name: yellow
        r: 254
        g: 207
        b: 51
        a: 1
    flowBoardShapeNode:
      summary: Flow Board Shape Node
      value:
        id: 610cd30ff252160033aa5ab9
        type: ShapeNode
        shape_type: rectangle
        text: Login
        width: 100
        height: 100
        color:
          $ref: '#/components/examples/flowBoardNodeColor/value'
        position:
          x: 23
          y: 45
    flowBoardPosition:
      summary: Flow Board Position
      value:
        x: 23
        y: 45
    error:
      summary: Error
      value:
        message: Project is not found
    flowBoardScreenNode:
      summary: Flow Board Screen Node
      value:
        id: 610cd30ff252160033aa5ab9
        type: ScreenNode
        screen:
          id: 60019c81b51d170c91de7623
        position:
          $ref: '#/components/examples/flowBoardPosition/value'
    flowBoardVariantGroupNode:
      summary: Flow Board Variant Group Node
      value:
        id: 610cd30ff252160033aa5ab9
        type: VariantGroupNode
        variant_group:
          id: 60019c81b51d170c91de7623
        default_variant:
          id: 60a36e45217f0d329834774e
        position:
          x: 23
          y: 45
    flowBoardNode:
      summary: Flow Board Node
      value:
        id: 610cd30ff252160033aa5ab9
        type: ScreenNode
        screen:
          id: 60019c81b51d170c91de7623
        position:
          $ref: '#/components/examples/flowBoardPosition/value'
    flowBoardConnector:
      summary: Flow Board Connector
      value:
        id: 610cd30ff252160033aa5ab9
        type: SolidLine
        start:
          node:
            id: 60019c81b51d170c91de7623
          node_position:
            x: 23
            y: 45
        end:
          node:
            id: 5d9caaecb4a3fa9bc9718686
          node_position:
            x: 46
            y: 90
          label:
            text: If sucessful
            position: 0.5
            width: 50
            color: orange
    flowBoardConnectionPosition:
      summary: Flow Board Connection Position
      value:
        dot_index: 10
        side: left
    flowBoardTextNode:
      summary: Flow Board Text Node
      value:
        id: 610cd30ff252160033aa5ab9
        type: TextLabelNode
        text: Authentication check
        width: 10
        position:
          x: 23
          y: 45
    flowBoardConnectorLabel:
      summary: Flow Board Connector Label
      value:
        text: If sucessful
        position: 0.5
        width: 50
    entityReference:
      summary: Object Reference
      value:
        id: 5dbad85a76ea51c1f35b6f69
    flowBoardConnection:
      summary: Flow Board Connection
      value:
        node:
          id: 60019c81b51d170c91de7623
        style: arrow
        board_connector_position:
          dotIndex: 23
          side: left
  parameters:
    ending_node_id:
      name: ending_node_id
      in: query
      description: Ending node id
      required: false
      schema:
        type: string
        pattern: /^[0-9a-f]{24}$/i
    flow_board_id:
      name: flow_board_id
      in: path
      description: Flow Board id
      required: true
      schema:
        type: string
        pattern: /^[0-9a-f]{24}$/i
    node_id:
      name: node_id
      in: path
      description: Board node id
      required: true
      schema:
        type: string
        pattern: /^[0-9a-f]{24}$/i
    limit:
      name: limit
      in: query
      description: Pagination limit
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 30
    offset:
      name: offset
      in: query
      description: Pagination offset
      required: false
      schema:
        type: integer
        minimum: 0
        default: 0
    project_id:
      name: project_id
      in: path
      description: Project id
      required: true
      schema:
        type: string
        pattern: /^[0-9a-f]{24}$/i
    connector_id:
      name: connector_id
      in: path
      description: Board connector id
      required: true
      schema:
        type: string
        pattern: /^[0-9a-f]{24}$/i
    starting_node_id:
      name: starting_node_id
      in: query
      description: Starting node id
      required: false
      schema:
        type: string
        pattern: /^[0-9a-f]{24}$/i
    group_id:
      name: group_id
      in: query
      description: Group id
      required: false
      schema:
        type: string
        pattern: /^[0-9a-f]{24}$/i
  responses:
    projectNotFound:
      description: Project not found response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Project not found response:
              value:
                message: Project not found
    projectOrFlowBoardConnectorNotFound:
      description: Project or flow board connector not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Project not found:
              value:
                message: Project not found
            Flow Board connector not found:
              value:
                message: Flow Board connector not found
    projectOrFlowBoardNotFound:
      description: Project or flow board not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Project not found:
              value:
                message: Project not found
            Flow Board not found:
              value:
                message: Flow Board not found
    projectOrFlowBoardNodeNotFound:
      description: Project or flow board node not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Project not found:
              value:
                message: Project not found
            Flow Board node not found:
              value:
                message: Flow Board node not found
    projectArchived:
      description: Project archived response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Project archived response:
              value:
                message: Project is archived
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /v1/oauth/authorize
          tokenUrl: /v1/oauth/token
          refreshUrl: /v1/oauth/token
          scopes: {}
    PersonalAccessToken:
      type: http
      scheme: bearer
      bearerFormat: JWT