Fixflo API v2

The Fixflo v2 REST API, described by a publicly downloadable OpenAPI 3.0 document on the Fixflo Stoplight developer portal. It exposes the repairs and maintenance domain — issues and issue drafts, properties, blocks and estates, agencies, agents, brands and teams, landlords, leaseholders, tenants and customers, contractors and contractor networks, assets and warranties, cost codes, service programmes, service agreements and service events, jobs, custom field configuration and webhook subscriptions. Authentication is a bearer token issued inside a Fixflo account (documented as OAuth2-aligned but deliberately not a full OAuth2 implementation), and a separate OpenID Connect discovery document is served anonymously at api.fixflo.com. Production calls are made against the customer's own subdomain (https://[subdomain].fixflo.com/api/v2); the published server is the shared sandbox. Rate limiting is documented as not below 500 requests per minute, returning HTTP 429. Use of the API requires the signed Fixflo Application Developer and API Licence Agreement.

Documentation

Specifications

SDKs

Other Resources

OpenAPI Specification

fixflo-api-v2-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: '2.0'
  title: Fixflo
  description: Fixflo api docs
  termsOfService: 'https://fixflostore.blob.core.windows.net/live-assets/SystemApplicationDeveloperAndAPILicenseAgreement.pdf'
  contact:
    email: support@fixflo.com
    name: Support
  license:
    url: 'https://fixflostore.blob.core.windows.net/live-assets/SystemApplicationDeveloperAndAPILicenseAgreement.pdf'
    name: Fixflo API licence agreement
servers:
  - url: 'https://api-sandbox.fixflo.com/api/v2'
    description: live sandbox
  - url: 'https://plus.dev.fixflo.com/api/v2'
    description: dev
tags:
  - name: Agent
  - name: Agency
  - name: Asset
  - name: Block
  - name: Cost code
  - name: Brand
  - name: Contractor
  - name: Estate
  - name: FaultTree
  - name: Issue
  - name: Issue draft
  - name: Landlord
  - name: Leaseholder
  - name: Property
  - name: Service programme definition
  - name: Team
  - name: Tenant
  - name: Warranty
  - name: Webhook
  - name: Contractor networks
  - name: Customer
  - name: Service Event
  - name: Service Programme
  - name: Service Agreement
  - name: CustomFieldConfiguration
paths:
  /Agent:
    parameters: []
    post:
      summary: Agent
      operationId: post-agent
      tags:
        - Agent
      description: |-
        Saves (create or update) agent record

        If the Id has a value and the agent entity exists the agent will be updated. If the ExternalagentRef value is set this value must be unique for the given agency. If the Id has a value = null or "" an attempt to create a new agent will be made.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignedAgent'
          application/xml:
            schema:
              $ref: '#/components/schemas/AssignedAgent'
        description: ''
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/AssignedAgent'
    get:
      summary: Agent
      operationId: get-agent
      tags:
        - Agent
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignedAgent'
            application/xml:
              schema:
                type: object
                properties:
                  '':
                    type: string
      parameters:
        - schema:
            type: string
          in: query
          name: EmailAddress
          description: Agent email address
        - schema:
            type: string
          in: query
          name: ExternalAgentRef
          description: External ref
        - schema:
            type: string
          in: query
          name: AgentId
          description: Fixflo agent id
      description: Gets agent record
  '/Agent/{Id}/Brand':
    parameters:
      - schema:
          type: string
        name: Id
        in: path
        required: true
        description: The Fixflo id of the agent to be updated
    post:
      summary: Agent / brand
      tags:
        - Agent
      operationId: post-Agent-Id-Brand
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/AssignedAgent'
      description: Update agent brand
      parameters:
        - schema:
            type: string
          in: query
          name: Id
          description: Id of agent
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Brand'
        description: |
          if this is set to null the agent will fall back to the default behaviour
  /Agents:
    get:
      summary: Agents
      tags:
        - Agent
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PrevNextPager'
                  - type: object
                    properties:
                      Items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AssignedAgent'
              examples: {}
        '201':
          description: Created
      operationId: get-Agents
      description: Find agents by keyword
      parameters:
        - schema:
            type: string
          in: query
          name: keyword
          description: keywords to search
        - schema:
            type: integer
          in: query
          name: pg
          description: page to return
      x-internal: false
  /Block:
    get:
      summary: Block
      tags:
        - Block
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Block'
      operationId: get-Block
      parameters:
        - schema:
            type: number
          in: query
          name: Id
          description: The block id
        - schema:
            type: string
          in: query
          name: ExternalBlockRef
          description: External block reference
      description: Get block by id or external reference
    post:
      summary: Block
      tags:
        - Block
      operationId: post-Block
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/Block'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Block'
          application/xml:
            schema:
              $ref: '#/components/schemas/Block'
        description: ''
      parameters: []
      description: Saves a block
    parameters: []
  /Blocks:
    get:
      summary: Blocks
      tags:
        - Block
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PrevNextPager'
                  - type: object
                    properties:
                      Items:
                        type: array
                        items:
                          $ref: '#/components/schemas/Block'
      operationId: get-blocks
      description: Find blocks
      parameters:
        - schema:
            type: string
          in: query
          name: UpdatedSince
          description: Updated since
        - schema:
            type: string
          in: query
          name: keyword
          description: Keyword
        - schema:
            type: integer
          in: query
          name: pg
          description: page
      x-internal: false
    parameters: []
  '/Block/{Id}/Tags':
    parameters:
      - schema:
          type: string
        name: Id
        in: path
        required: true
        description: Id of Block
    get:
      summary: Block / tags
      tags:
        - Block
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tag'
            application/xml:
              schema:
                $ref: '#/components/schemas/Tag'
      operationId: get-Block-Id-Tags
      description: Returns tags associated with given property id
    post:
      summary: Block / tags
      tags:
        - Block
      operationId: post-block-Id-Tags
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/Tag'
      description: Will replace all tags at the given block with the new given tags
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
  '/Block/{Id}/Brand':
    parameters:
      - schema:
          type: string
        name: Id
        in: path
        required: true
    get:
      summary: Block / brand
      tags:
        - Block
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Brand'
      operationId: get-Block-id-Brand
      description: gets the current brand by id
      x-stoplight:
        id: y6vp2kyxgzxo8
    post:
      summary: Block / brand
      operationId: post-Block-id-Brand
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/Brand'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Brand'
            examples: {}
      description: sets a brand on the current block
      tags:
        - Block
      x-stoplight:
        id: rn646ghb7nite
  /CostCode:
    get:
      summary: Cost code
      description: Get cost code
      tags:
        - Cost code
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CostCode'
      operationId: get-costcode
      parameters:
        - schema:
            type: string
          in: query
          name: CostCode
        - schema:
            type: string
          in: query
          name: BlockId
        - schema:
            type: string
          in: query
          name: ExternalBlockRef
    parameters: []
    post:
      description: Create/update cost code
      tags:
        - Cost code
      operationId: post-CostCode
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/CostCode'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CostCode'
      summary: Cost code
  /CostCodes:
    get:
      summary: Cost codes
      description: Finds cost codes
      tags:
        - Cost code
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PrevNextPager'
                  - type: object
                    properties:
                      Items:
                        type: array
                        items:
                          $ref: '#/components/schemas/CostCode'
      operationId: get-costcodes
      parameters:
        - schema:
            type: number
          in: query
          name: BlockId
          description: block Id
        - schema:
            type: string
          in: query
          name: ExternalBlockRef
          description: external block ref
        - schema:
            type: boolean
          in: query
          name: isDeleted
          description: is deleted
        - schema:
            type: integer
          in: query
          name: pg
          description: pg
        - schema:
            type: string
          in: query
          name: Keyword
          description: keyword
        - schema:
            type: number
          in: query
          name: EstateId
          description: estate id
        - schema:
            type: string
          in: query
          name: ExternalEstateRef
          description: external estate ref
    parameters: []
  '/Brand/{BrandId}':
    get:
      summary: Brand
      tags:
        - Brand
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Brand'
      operationId: get-brand
      description: Gets brand by id
      parameters: []
    parameters:
      - schema:
          type: string
          format: uuid
        name: BrandId
        in: path
        description: The brand id (guid)
        required: true
  /Brands:
    get:
      summary: Brands
      description: Returns list of brands
      tags:
        - Brand
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PrevNextPager'
                  - x-stoplight:
                      id: q5spckbkmed9w
                    properties:
                      Items:
                        type: array
                        x-stoplight:
                          id: 3svdfocmsue55
                        items:
                          $ref: '#/components/schemas/Issue'
                type: object
              examples: {}
      operationId: get-brands
      parameters:
        - schema:
            type: integer
          in: query
          name: pg
          description: page number to return
        - schema:
            type: integer
          in: query
          name: pgsz
          description: page size to return
    parameters: []
  '/Contractor/{id}':
    get:
      summary: Contractor
      description: Gets contractor
      tags:
        - Contractor
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contractor'
      operationId: get-contractor
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contractor'
        description: ''
      parameters:
        - schema:
            type: string
          in: query
          name: EmailAddress
        - schema:
            type: string
          in: query
          name: ExternalRef
      x-stoplight:
        id: jqwhlysfjxgmj
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
  /Contractor:
    parameters: []
    post:
      summary: Contractor
      tags:
        - Contractor
      operationId: post-Contractor
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/Contractor'
      description: |-
        Creates or updates a contractor. 

        If the Id of the contractor object is null or empty an attempt to create a new record will be attempted.  

        If the Id of the contractor object is not null or empty it must match an exiting contractor.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contractor'
      x-stoplight:
        id: ijxek19eh99pr
  '/Contractor/{Id}/Brand':
    parameters:
      - schema:
          type: string
        name: Id
        in: path
        required: true
    post:
      summary: Contractor brand
      tags:
        - Contractor
      operationId: post-Contractor-Id-Brand
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Envelope'
                - type: object
                  properties:
                    Entity:
                      $ref: '#/components/schemas/Brand'
      description: 'This endpoint sets the contractor brand. '
  /Contractors:
    get:
      summary: Contractors
      description: Find contractors
      tags:
        - Contractor
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PrevNextPager'
                  - type: object
                    properties:
                      Items:
                        type: array
                        items:
                          $ref: '#/components/schemas/Contractor'
      operationId: get-contractors
      parameters:
        - schema:
            type: string
          in: query
          name: UpdatedSince
          description: Filters on items that have been updated since this date time. (UTC date/time)
        - schema:
            type: string
          in: query
          name: Keyword
          description: Keyword to search with
        - schema:
            type: integer
          in: query
          name: Pg
          description: Page number to return
    parameters: []
  /Contractor/Services:
    get:
      summary: Contractor / services
      tags:
        - Contractor
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ContractorService'
      operationId: get-contractor-services
      description: Get the list of contractor services. There are no paramters for this request
    parameters: []
  '/Estate/{id}':
    get:
      summary: Estate
      tags:
        - Estate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Estate'
      operationId: get-estate
      parameters:
        - schema:
            type: string
          in: query
          name: ExternalEstateRef
      description: Gets an estate by id or external reference (your ref)
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
  /Estate:
    post:
      summary: Estate
      tags:
        - Estate
      operationId: post-estate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/Estate'
              examples:
                example-1:
                  value:
                    HttpStatusCode: 0
                    HttpStatusCodeDesc: string
                    Errors:
                      - string
                    Messages:
                      - string
                    Entity:
                      id: 0
                      Name: string
                      ExternalEstateRef: string
                      AssignedAgent:
                        Id: 0
                        ExternalRef: string
                        EmailAddress: string
                        DisplayName: string
                        ContactNo: string
                        IsDeleted: true
                        Brand:
                          Id: 38a5a5bb-dc30-49a2-b175-1de0d1488c43
                          Name: string
                        UpdateDate: '2019-08-24T14:15:22Z'
                      IsDeleted: true
                      UpdateDate: '2019-08-24T14:15:22Z'
      description: Create or update an estate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Estate'
        description: ''
  /Estates:
    get:
      summary: Estates
      tags:
        - Estate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PrevNextPager'
                  - type: object
                    properties:
                      Items:
                        type: array
                        items:
                          $ref: '#/components/schemas/Estate'
      operationId: get-estates
      parameters:
        - schema:
            type: string
          in: query
          name: Keyword
          description: Keyword to search with
        - schema:
            type: string
            format: date-time
          in: query
          name: UpdatedSince
          description: Filters on items that have been updated since this date time. (UTC date/time)
        - schema:
            type: integer
          in: query
          name: Pg
          description: pg
      description: Find estates by keyword or other parameters
    parameters: []
  '/FaultTree/Walk/{id}':
    get:
      summary: Fault tree walk
      tags:
        - FaultTree
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FaultTreeBranch'
      operationId: get-faulttree-walk
      description: Fault tree branches or leaves
    parameters:
      - schema:
          type: integer
        name: id
        in: path
        required: true
  '/Issue/{Id}':
    get:
      summary: Issue
      description: Get issue details
      tags:
        - Issue
      operationId: get-Issue
      responses:
        '200':
          description: OK
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Issue'
    parameters:
      - schema:
          type: string
        name: Id
        in: path
        required: true
  /Issue/:
    post:
      summary: Issue
      tags:
        - Issue
      operationId: post-Issue
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/Issue'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Issue'
      description: |
        Currently this endpoint is only used for updating the AssignedAgent on an issue. Use null to unassign the issue. if the user cannot be found an error will be returned. GET https://[custom domain].fixflo.com/api/v2/Issue
    parameters: []
  '/Issue/{Id}/ExternalRef':
    post:
      summary: Issue / externalref
      tags:
        - Issue
      operationId: post-Issue-externalref
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/Issue'
      requestBody:
        content:
          application/json:
            schema:
              type: string
      description: |
        This endpoint is used to POST an external ref to an Issue associated with given Issue Id.
        External Ref must be unique per agency.
        Will overwrite current value if one exists.
    parameters:
      - schema:
          type: string
        name: Id
        in: path
        required: true
        description: Id associated with required Issue
  /Issues:
    get:
      summary: Issues
      tags:
        - Issue
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PrevNextPager'
                  - type: object
                    properties:
                      Items:
                        type: array
                        x-stoplight:
                          id: 6z38z7awmy6ua
                        items:
                          type: string
      operationId: get-issues
      description: "Find pages of issues. Optionally date periods may be selected. The issues are returned in created date/time order. For use cases see (downloading and importing issues)[#Downloading-and-importing-issues]\r\n\r\nThe GET url for each issue is returned rather than the whole issue object"
      parameters:
        - schema:
            type: string
          in: query
          name: CreatedSince
          description: Filters issues that have been created since the specified date time.(UTC date/time)
        - schema:
            type: string
          in: query
          name: CreatedBefore
          description: Filters issues that have been created before the specified date time.(UTC date/time)
        - schema:
            type: string
          in: query
          name: Status
          description: Filters on the issue status. Click here to see accepted values. If using the nuget package this is an enum.
        - schema:
            type: string
          in: query
          name: HasExternalPropertyRef
          description: Filters issues that are tied to properties that have an external reference
        - schema:
            type: string
            format: date-time
          in: query
          name: ClosedSince
          description: Filters issues that have been closed since the specified date time.(UTC date/time)
        - schema:
            type: string
            format: date-time
          in: query
          name: ClosedBefore
          description: Filters issues that have been closed before the specified date time.(UTC date/time)
        - schema:
            type: string
            format: date-time
          in: query
          name: JobCreatedSince
          description: Filters issues that have had a job created since the specified date time.(UTC date/time)
        - schema:
            type: string
            format: date-time
          in: query
          name: JobCreatedBefore
          description: Filters issues that have had a job created before the specified date time.(UTC date/time)
        - schema:
            type: string
            format: date-time
          in: query
          name: UpdatedSince
          description: Filters issues that have had a status change since the specified date time.(UTC date/time)
        - schema:
            type: string
            format: date-time
          in: query
          name: UpdatedBefore
          description: Filters issues that have had a status change before the specified date time.(UTC date/time)
        - schema:
            type: integer
          in: query
          name: page
          description: The page number to return
    parameters: []
  '/Issue/{Id}/Report':
    parameters:
      - schema:
          type: string
        name: Id
        in: path
        required: true
        description: Issue id
    get:
      summary: Issue / report
      tags:
        - Issue
      responses:
        '200':
          description: OK
          headers: {}
      operationId: get-issue-id-report
      description: Downloads issue report as PDF document. Please see note on downloading binary data.
  /Issues/JobAwarded:
    get:
      summary: Issue / job awarded
      tags:
        - Issue
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PrevNextPager'
                  - type: object
                    properties:
                      Items:
                        type: array
                        items:
                          type: string
      operationId: get-issues-jobawarded
      description: Endpoint for listing issues with a status of JobAwarded.
      parameters:
        - schema:
            type: string
          in: query
          name: Page
          description: Page
    parameters: []
  /IssueDraft/Commit:
    post:
      summary: Commits an IssueDraft
      description: 'Converts an IssueDraft object to a live, newly reported issue'
      tags:
        - Issue draft
      operationId: post-IssueDraft-Commit
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/IssueDraft'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueDraft'
  /Issues/JobCompleted:
    get:
      summary: Issue / job completed
      tags:
        - Issue
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PrevNextPager'
                  - type: object
                    properties:
                      Items:
                        type: array
                        items:
                          type: string
      operationId: get-issues-jobcompleted
      description: |
        Endpoint for listing issues with a status of JobCompleted.
      parameters:
        - schema:
            type: string
          in: query
          name: Page
          description: Page
    parameters: []
  /Issues/Closed:
    get:
      summary: Issues / closed
      tags:
        - Issue
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PrevNextPager'
                  - type: object
                    properties:
                      Items:
                        type: array
                        items:
                          type: string
      operationId: get-issues-closed
      description: Endpoint for listing issues with a status of Closed.
    parameters: []
  /IssueDraft:
    get:
      summary: Issue draft
      description: Get issue draft
      tags:
        - Issue draft
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueDraft'
      operationId: get-issuedraft
      parameters:
        - schema:
            type: string
          in: query
          name: Id
          description: Unique id of IssueDraft. Guid
    post:
      summary: Issue draft
      description: Create/update issue draft
      tags:
        - Issue draft
      operationId: post-IssueDraft
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      Entity:
                        $ref: '#/components/schemas/IssueDraft'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueDraft'
    parameters: []
  '/Issu

# --- truncated at 32 KB (207 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fixflo/refs/heads/main/openapi/fixflo-api-v2-openapi.yml