Fieldguide requests API

Endpoints used to interact with Fieldguide Requests

Operations 11

GET /v1/requests/{uuid}/controls List Controls that belong to the specified Request #
GET /v1/engagements/{uuid}/requests List Requests that belong to the specified Engagement #
GET /v1/sheet-rows/{uuid}/requests List Requests that belong to the specified Sheet Row #
GET /v1/requests/{uuid} Fetch the specified Request #
PATCH /v1/requests/{uuid} Update the specified Request #
GET /v1/requests/{uuid}/sheet-rows List Sheet Rows that belong to the specified Request #
GET /v1/requests/{uuid}/files Fetch the Files for the specified Request #
POST /v1/requests/{uuid}/files Upload a File to the specified Request #
GET /v1/requests/{uuid}/comments Fetch the Comments for the specified Request #
POST /v1/requests/{uuid}/comments Post a Comment on a Request #
POST /v1/requests/comments Post Comments on multiple Requests #

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/fieldguide-requests-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

fieldguide-requests-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fieldguide Requests API
  description: An API for interacting with the [Fieldguide](https://fieldguide.io) platform
  version: v1
  contact: {}
servers:
- url: https://api.fieldguide.io
  description: Fieldguide API
security:
- bearer: []
tags:
- name: requests
  description: Endpoints used to interact with Fieldguide Requests
paths:
  /v1/requests/{uuid}/controls:
    get:
      operationId: list_controls_by_request_v1
      parameters:
      - name: uuid
        required: true
        in: path
        description: The UUID of the request to retrieve controls for
        schema:
          format: uuid
          type: string
      - name: page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 1
      - name: per_page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 50
          minimum: 1
          maximum: 200
      - name: sort_order
        required: false
        in: query
        description: Sort order for paginated results. Use `desc` to reverse the default ascending order.
        schema:
          type: string
          default: asc
          enum:
          - asc
          - desc
      responses:
        '200':
          description: The Controls for the Request
          content:
            application/json:
              schema:
                allOf:
                - properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/ControlRead'
                - properties:
                    _links:
                      type: object
                      required:
                      - self
                      - first
                      - last
                      properties:
                        self:
                          type: object
                          description: The URL for the current page being fetched
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=2&per_page=50
                        first:
                          type: object
                          description: The URL for the first page of the set
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=1&per_page=50
                        last:
                          type: object
                          description: The URL for the last page of the set
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=10&per_page=50
                        previous:
                          type: object
                          description: The URL for the previous page in the set, if there is one
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=1&per_page=50
                        next:
                          type: object
                          description: The URL for the next page in the set, if there is one
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=3&per_page=50
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (requires scopes `controls:read`)
        '404':
          description: Resource not found
        '429':
          description: Too many requests
      summary: List Controls that belong to the specified Request
      tags:
      - requests
      x-required-scopes:
      - controls:read
  /v1/engagements/{uuid}/requests:
    get:
      operationId: list_requests_by_engagement_v1
      parameters:
      - name: uuid
        required: true
        in: path
        description: The UUID of the engagement to retrieve requests for
        schema:
          format: uuid
          type: string
      - name: statuses
        required: false
        in: query
        description: Filter Requests by status. Repeat the query parameter for multiple statuses.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RequestStatus'
      - name: client_owner_user_uuids
        required: false
        in: query
        description: Filter Requests by the UUID of their Client Owner Users. Repeat the query parameter for multiple UUIDs.
        schema:
          type: array
          items:
            type: string
            format: uuid
      - name: due_date_before
        required: false
        in: query
        description: Filter Requests to those with a due date before this date. Uses strict before semantics and excludes Requests with no due date.
        schema:
          format: date
          example: '2024-05-01'
          type: string
      - name: page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 1
      - name: per_page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 50
          minimum: 1
          maximum: 200
      - name: sort_order
        required: false
        in: query
        description: Sort order for paginated results. Use `desc` to reverse the default ascending order.
        schema:
          type: string
          default: asc
          enum:
          - asc
          - desc
      responses:
        '200':
          description: The Requests for the Engagement
          content:
            application/json:
              schema:
                allOf:
                - properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/RequestRead'
                - properties:
                    _links:
                      type: object
                      required:
                      - self
                      - first
                      - last
                      properties:
                        self:
                          type: object
                          description: The URL for the current page being fetched
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=2&per_page=50
                        first:
                          type: object
                          description: The URL for the first page of the set
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=1&per_page=50
                        last:
                          type: object
                          description: The URL for the last page of the set
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=10&per_page=50
                        previous:
                          type: object
                          description: The URL for the previous page in the set, if there is one
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=1&per_page=50
                        next:
                          type: object
                          description: The URL for the next page in the set, if there is one
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=3&per_page=50
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (requires scopes `requests:read`)
        '404':
          description: Resource not found
        '429':
          description: Too many requests
      summary: List Requests that belong to the specified Engagement
      tags:
      - requests
      x-required-scopes:
      - requests:read
  /v1/sheet-rows/{uuid}/requests:
    get:
      operationId: list_requests_by_sheet_row_v1
      parameters:
      - name: uuid
        required: true
        in: path
        description: The UUID of the Sheet Row to retrieve requests for
        schema:
          format: uuid
          type: string
      - name: page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 1
      - name: per_page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 50
          minimum: 1
          maximum: 200
      - name: sort_order
        required: false
        in: query
        description: Sort order for paginated results. Use `desc` to reverse the default ascending order.
        schema:
          type: string
          default: asc
          enum:
          - asc
          - desc
      responses:
        '200':
          description: The Requests for the Sheet Row
          content:
            application/json:
              schema:
                allOf:
                - properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/RequestRead'
                - properties:
                    _links:
                      type: object
                      required:
                      - self
                      - first
                      - last
                      properties:
                        self:
                          type: object
                          description: The URL for the current page being fetched
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=2&per_page=50
                        first:
                          type: object
                          description: The URL for the first page of the set
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=1&per_page=50
                        last:
                          type: object
                          description: The URL for the last page of the set
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=10&per_page=50
                        previous:
                          type: object
                          description: The URL for the previous page in the set, if there is one
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=1&per_page=50
                        next:
                          type: object
                          description: The URL for the next page in the set, if there is one
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=3&per_page=50
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (requires scopes `requests:read`)
        '404':
          description: Resource not found
        '429':
          description: Too many requests
      summary: List Requests that belong to the specified Sheet Row
      tags:
      - requests
      x-required-scopes:
      - requests:read
  /v1/requests/{uuid}:
    get:
      operationId: get_request_v1
      parameters:
      - name: uuid
        required: true
        in: path
        description: The UUID of the Request to retrieve
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: The Request data
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/RequestRead'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (requires scopes `requests:read`)
        '404':
          description: Resource not found
        '429':
          description: Too many requests
      summary: Fetch the specified Request
      tags:
      - requests
      x-required-scopes:
      - requests:read
    patch:
      operationId: update_request_v1
      parameters:
      - name: uuid
        required: true
        in: path
        description: The UUID of the request to update
        schema:
          format: uuid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestUpdate'
      responses:
        '200':
          description: The updated Request data
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/RequestRead'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (requires scopes `requests:write`)
        '404':
          description: Resource not found
        '429':
          description: Too many requests
      summary: Update the specified Request
      tags:
      - requests
      x-required-scopes:
      - requests:write
  /v1/requests/{uuid}/sheet-rows:
    get:
      operationId: list_sheet_rows_by_request_v1
      parameters:
      - name: uuid
        required: true
        in: path
        description: The UUID of the Request for which to get Sheet Rows
        schema:
          format: uuid
          type: string
      - name: page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 1
      - name: per_page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 50
          minimum: 1
          maximum: 200
      - name: sort_order
        required: false
        in: query
        description: Sort order for paginated results. Use `desc` to reverse the default ascending order.
        schema:
          type: string
          default: asc
          enum:
          - asc
          - desc
      responses:
        '200':
          description: The Sheet Rows to which the Request is linked
          content:
            application/json:
              schema:
                allOf:
                - properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/SheetRowRead'
                - properties:
                    _links:
                      type: object
                      required:
                      - self
                      - first
                      - last
                      properties:
                        self:
                          type: object
                          description: The URL for the current page being fetched
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=2&per_page=50
                        first:
                          type: object
                          description: The URL for the first page of the set
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=1&per_page=50
                        last:
                          type: object
                          description: The URL for the last page of the set
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=10&per_page=50
                        previous:
                          type: object
                          description: The URL for the previous page in the set, if there is one
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=1&per_page=50
                        next:
                          type: object
                          description: The URL for the next page in the set, if there is one
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=3&per_page=50
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (requires scopes `sheets:read`)
        '404':
          description: Resource not found
        '429':
          description: Too many requests
      summary: List Sheet Rows that belong to the specified Request
      tags:
      - requests
      x-required-scopes:
      - sheets:read
  /v1/requests/{uuid}/files:
    get:
      operationId: list_request_files_v1
      parameters:
      - name: uuid
        required: true
        in: path
        description: The UUID of the Request to list Files for
        schema:
          format: uuid
          type: string
      - name: page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 1
      - name: per_page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 50
          minimum: 1
          maximum: 200
      - name: sort_order
        required: false
        in: query
        description: Sort order for paginated results. Use `desc` to reverse the default ascending order.
        schema:
          type: string
          default: asc
          enum:
          - asc
          - desc
      responses:
        '200':
          description: The Files for the specified Request
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/FileRead'
        '401':
          description: Unauthorized
        '403':
          description: 'Forbidden


            Forbidden (requires scopes `requests.files:read`)'
        '404':
          description: Resource not found
      summary: Fetch the Files for the specified Request
      tags:
      - requests
      x-required-scopes:
      - requests.files:read
    post:
      operationId: upload_request_file_v1
      parameters:
      - name: uuid
        required: true
        in: path
        description: The UUID of the request to upload the file to
        schema:
          format: uuid
          type: string
      requestBody:
        required: true
        description: File to upload to the Request
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileCreate'
      responses:
        '200':
          description: The UUID of the file that was attached to the Request
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/FileUploadRead'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (requires scopes `requests.files:write`)
        '404':
          description: Resource not found
        '429':
          description: Too many requests
      summary: Upload a File to the specified Request
      tags:
      - requests
      x-required-scopes:
      - requests.files:write
  /v1/requests/{uuid}/comments:
    get:
      operationId: list_comments_by_request_v1
      parameters:
      - name: uuid
        required: true
        in: path
        description: The UUID of the request to get comments for
        schema:
          format: uuid
          type: string
      - name: page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 1
      - name: per_page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 50
          minimum: 1
          maximum: 200
      - name: sort_order
        required: false
        in: query
        description: Sort order for paginated results. Use `desc` to reverse the default ascending order.
        schema:
          type: string
          default: asc
          enum:
          - asc
          - desc
      responses:
        '200':
          description: The Request comments
          content:
            application/json:
              schema:
                allOf:
                - properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/CommentRead'
                - properties:
                    _links:
                      type: object
                      required:
                      - self
                      - first
                      - last
                      properties:
                        self:
                          type: object
                          description: The URL for the current page being fetched
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=2&per_page=50
                        first:
                          type: object
                          description: The URL for the first page of the set
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=1&per_page=50
                        last:
                          type: object
                          description: The URL for the last page of the set
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=10&per_page=50
                        previous:
                          type: object
                          description: The URL for the previous page in the set, if there is one
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=1&per_page=50
                        next:
                          type: object
                          description: The URL for the next page in the set, if there is one
                          properties:
                            href:
                              type: string
                              example: https://api.fieldguide.io/v1/example?page=3&per_page=50
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (requires scopes `comments:read`)
        '404':
          description: Resource not found
        '429':
          description: Too many requests
      summary: Fetch the Comments for the specified Request
      tags:
      - requests
      x-required-scopes:
      - comments:read
    post:
      operationId: create_request_comment_v1
      parameters:
      - name: uuid
        required: true
        in: path
        description: The UUID of the request to post the comment
        schema:
          format: uuid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentCreate'
      responses:
        '201':
          description: The newly created Comment
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/CommentRead'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (requires scopes `comments:write`)
        '429':
          description: Too many requests
      summary: Post a Comment on a Request
      tags:
      - requests
      x-required-scopes:
      - comments:write
  /v1/requests/comments:
    post:
      operationId: create_request_comments_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestCommentBulkCreate'
      responses:
        '201':
          description: The newly created Comments
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CommentRead'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (requires scopes `comments:write`)
        '429':
          description: Too many requests
      summary: Post Comments on multiple Requests
      tags:
      - requests
      x-required-scopes:
      - comments:write
components:
  schemas:
    ControlReadLinks:
      type: object
      properties:
        fieldguide:
          description: A URL the user can visit to view the Controls within the Fieldguide web application
          example:
            href: https://app.fieldguide.io/controls?client=2&id=09f7eeab-5318-4aff-a2bc-98b21dbe8b60&open=true
            title: View the Control in Fieldguide
            type: text/html
          allOf:
          - $ref: '#/components/schemas/HalLink'
      required:
      - fieldguide
    RequestStatus:
      type: string
      enum:
      - Open
      - Update Requested
      - Complete
      - Ready For Review
      - Draft
      description: The request's current status in the evidence-collection workflow.
    CommentRead:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          example: 4d50d252-be0c-4d69-b77a-5bbdfef83f54
        content:
          type: string
          example: <p>The comment text in HTML format</p>Employees hired in 2023
        author_user_uuid:
          type: string
          format: uuid
          example: 4d50d252-be0c-4d69-b77a-5bbdfef83f54
        created_at:
          format: date-time
          type: string
          example: '2023-01-01T12:30:00.000Z'
        updated_at:
          format: date-time
          type: string
          example: '2023-01-01T12:30:00.000Z'
        _links:
          $ref: '#/components/schemas/CommentReadLinks'
      required:
      - uuid
      - content
      - author_user_uuid
      - created_at
      - updated_at
      - _links
    FileRead:
      type: object
      properties:
        name:
          type: string
          example: Board of Directors.docx
        size:
          type: number
          example: 137437
        mime_type:
          type: string
          example: application/vnd.openxmlformats-officedocument.wordprocessingml.document
        url:
          type:
          - string
          - 'null'
          format: uri
          example: https://example.com/document.docx
        url_expiration:
          type:
          - string
          - 'null'
          format: date-time
          example: '2023-01-01T12:30:00.000Z'
        uuid:
          type: string
          format: uuid
          example: 91aeda5e-4a3c-4090-90b1-cbf09d4c1ba1
        created_at:
          type: string
          format: date-time
          example: '2023-01-01T12:30:00.000Z'
        updated_at:
          type:
          - string
          - 'null'
          format: date-time
          example: '2023-01-01T12:30:00.000Z'
      required:
      - name
      - size
      - mime_type
      - url
      - url_expiration
      - uuid
      - created_at
      - updated_at
    CommentCreate:
      type: object
      properties:
        content:
          type: string
          example: <p>The comment text in HTML format</p>
          minLength: 1
        mentioned_user_uuids:
          type: array
          items:
            type: string
            format: uuid
            example: edbf4962-20eb-499e-a7fa-eaff50c81630
          description: User UUIDs to mention and notify. Plain-text @Name text does not create mention notifications.
      required:
      - content
    RequestCommentBulkCreate:
      type: object
      properties:
        comments:
          minItems: 1
          maxItems: 50
          type: array
          items:
            $ref: '#/components/schemas/RequestCommentBulkCreateItem'
      required:
      - comments
    RequestRead:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          example: 4d50d252-be0c-4d69-b77a-5bbdfef83f54
        title:
          type: string
          example: Employees hired in 2023
        description:
          type: string
          example: Please provide a list of employees hired this calendar year along with full HR profiles
        status:
          description: The request's current status in the evidence-collection workflow.
          allOf:
          - $ref: '#/components/schemas/RequestStatus'
        identifier:
          type: string
          description: An external identifier that can be used by integrated systems
          example: REQ-1234
        client_company_uuid:
          type: string
          format: uuid
          example: 60d593b6-1c59-4f30-bf9c-56901af906a7
        status_label:
          type: string
          example: Waiting for Specification
          description: If the status is "Draft", this can be a custom label. Otherwise, it will be the same value as the "status" property.
        created_at:
          format: date-time
          type: string
          example: '2023-01-01T12:30:00.000Z'
        due_date:
          type:
          - string
          - 'null'
          format: date
          example: '2024-05-01'
        client_owner_user_uuids:
          type: array
          items:
            type: string
            format: uuid
            example: edbf4962-20eb-499e-a7fa-eaff50c81630
        tags:
          type: array
          items:
            type: string
            example: tag-name
        engagement_uuids:
          type: array
          items:
            type: string
            format: uuid
            example: d51b4959-a6b0-4b8a-a251-8b5f7be7765e
        _links:
          $ref: '#/components/schemas/RequestReadLinks'
      required:
      - uuid
      - title
      - description
      - status
      - identifier
      - client_company_uuid
      - status_label
      - created_at
    

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