{"openapi":"3.0.0","paths":{"/v1/scopes":{"get":{"operationId":"list_scopes_v1","parameters":[],"responses":{"200":{"description":"Available Scopes for the Fieldguide API","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ScopeRead"}}}}}}},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"security":[{}],"summary":"List available Scopes for the Fieldguide API","tags":["api"]}},"/v1/token":{"get":{"description":"`auth_method` distinguishes the response shape: `api_token` for API Tokens, `oauth` for OAuth access tokens, and `web` for Fieldguide web sessions. OAuth access tokens and web sessions share `type: jwt`.","operationId":"get_current_token_v1","parameters":[],"responses":{"200":{"description":"Metadata about the current authentication token","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"discriminator":{"propertyName":"auth_method","mapping":{"api_token":"#/components/schemas/ApiTokenRead","oauth":"#/components/schemas/OAuthTokenRead","web":"#/components/schemas/JwtTokenRead"}},"oneOf":[{"$ref":"#/components/schemas/ApiTokenRead"},{"$ref":"#/components/schemas/OAuthTokenRead"},{"$ref":"#/components/schemas/JwtTokenRead"}]}}},"examples":{"api_token":{"summary":"API Token","value":{"data":{"type":"api","auth_method":"api_token","uuid":"821e8d9e-d2a8-480f-9187-5a685d3d0d71","name":"Acme Integration","user_uuid":"9416468f-f94c-408c-bf42-13635ab68dfa","scopes":["engagements:read","requests:read"],"provisioned_for":"fieldguide","created_at":"2026-11-02T14:25:11.000Z","expires_at":"2027-11-02T14:25:11.000Z"},"_links":{}}},"oauth_access_token":{"summary":"OAuth Access Token","value":{"data":{"type":"jwt","auth_method":"oauth","user_uuid":"9416468f-f94c-408c-bf42-13635ab68dfa","scopes":["engagements:read","requests:read"],"connection_uuid":"018f4f54-9ad2-7b1d-93b3-1b830f0a4d38","application_uuid":"754ecf63-5bdf-4782-8d48-61ec083373b9","application_name":"Acme Integration","created_at":"2026-11-02T14:25:11.000Z","expires_at":"2026-11-02T14:40:11.000Z"},"_links":{}}}}}}},"401":{"description":"Unauthorized"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Get metadata about the current authentication token","tags":["api"]}},"/v1/companies":{"get":{"operationId":"list_companies_v1","parameters":[{"name":"type","required":false,"in":"query","description":"Filter to show companies of a specific type","schema":{"$ref":"#/components/schemas/CompanyType"}},{"name":"uuids","required":false,"in":"query","description":"Filter Companies by UUID. Repeat the query parameter for multiple UUIDs.","schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 Companies accessible by the user","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CompanyRead"}}}},{"type":"object","required":["_links"],"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 `companies:read`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List available Companies","tags":["companies"],"x-required-scopes":["companies:read"]},"post":{"operationId":"create_company_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyCreate"}}}},"responses":{"201":{"description":"The newly created Company","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CompanyRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires permission `['insert', 'companies']`)\n\nForbidden (requires scopes `companies:write`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Create a new Company","tags":["companies"],"x-required-scopes":["companies:write"]}},"/v1/companies/{uuid}":{"get":{"operationId":"get_company_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Company to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Company data","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CompanyRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `companies:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch the specified Company","tags":["companies"],"x-required-scopes":["companies:read"]},"patch":{"operationId":"update_company_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Company to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyUpdate"}}}},"responses":{"200":{"description":"The updated Company","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CompanyRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires permission `['update', 'companies']`)\n\nForbidden (requires scopes `companies:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Update the specified Company","tags":["companies"],"x-required-scopes":["companies:write"]}},"/v1/companies/{uuid}/engagements":{"get":{"operationId":"list_engagements_by_company_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Company to retrieve engagements from","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 Engagements for the specified Company","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementRead"}}}},{"type":"object","required":["_links"],"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 `engagements:read`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Get engagements for a given company","tags":["companies","engagements"],"x-required-scopes":["engagements:read"]}},"/v1/engagements":{"get":{"operationId":"list_engagements_v1","parameters":[{"name":"templates","required":false,"in":"query","description":"Filter to include, exclude, or only show template engagements","schema":{"$ref":"#/components/schemas/TemplatesQuery"}},{"name":"uuids","required":false,"in":"query","description":"Filter Engagements by UUID. Repeat the query parameter for multiple UUIDs.","schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"engagement_lead_user_uuid","required":false,"in":"query","description":"Filter Engagements by the UUID of their Engagement Lead User.","schema":{"format":"uuid","type":"string"}},{"name":"client_owner_user_uuid","required":false,"in":"query","description":"Filter Engagements by the UUID of their Client Owner User.","schema":{"format":"uuid","type":"string"}},{"name":"statuses","required":false,"in":"query","description":"Filter Engagements by status. Repeat the query parameter for multiple statuses.","schema":{"type":"array","items":{"$ref":"#/components/schemas/EngagementsQueryStatusLabel"}}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 Engagements accessible by the user","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementRead"}}}},{"type":"object","required":["_links"],"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 `engagements:read`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List available Engagements","tags":["engagements"],"x-required-scopes":["engagements:read"]}},"/v1/engagement-templates/{uuid}/versions":{"get":{"operationId":"list_versions_by_engagement_template_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of any Engagement Template in the version family — its working draft or any saved version","schema":{"format":"uuid","type":"string"}},{"name":"availability","required":false,"in":"query","description":"Filter to versions available in the given destinations. Repeat the query parameter to require several at once, which returns only versions available in all of them.","schema":{"type":"array","items":{"$ref":"#/components/schemas/TemplateVersionAvailability"}}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 Engagement Template's saved versions and its working draft","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementTemplateVersionRead"}}}},{"type":"object","required":["_links"],"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 `engagements:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List the version family of the specified Engagement Template","tags":["engagements"],"x-required-scopes":["engagements:read"]}},"/v1/engagements/{uuid}":{"get":{"operationId":"get_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Engagement details","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch the specified Engagement","tags":["engagements"],"x-required-scopes":["engagements:read"]},"patch":{"operationId":"update_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementUpdate"}}}},"responses":{"200":{"description":"The updated Engagement data","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Update the specified Engagement","tags":["engagements"],"x-required-scopes":["engagements:write"]}},"/v1/engagements/from-template":{"post":{"description":"Creates a new Engagement based on an existing template Engagement. The request is accepted for asynchronous processing; the response returns the new Engagement's UUID and the Job UUID used to poll its provisioning status.","operationId":"create_engagement_from_template_v1","parameters":[],"requestBody":{"required":true,"description":"Engagement creation from template options","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementCreateFromTemplate"}}}},"responses":{"202":{"headers":{"Location":{"description":"The URI to check the status of the provisioning Job","schema":{"type":"string","example":"https://api.fieldguide.io/v1/jobs/f2c75e84-6b42-452d-b52f-3bf1854432d6"},"required":true},"Retry-After":{"description":"A date-time estimate of when the provisioning Job will complete","schema":{"type":"string","format":"date-time","example":"2025-04-04T12:30:00.000Z"},"required":true}},"description":"The Engagement creation has been accepted for processing","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementUuidRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires permission `['insert', 'engagements']`)\n\nForbidden (requires scopes `engagements:write`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Create a new Engagement from a template","tags":["engagements"],"x-required-scopes":["engagements:write"]}},"/v1/engagements/{uuid}/export":{"post":{"description":"Begins a long-running process that will generate an Engagement binder as a zip file.\n\nUse the Job ID that this endpoint returns with the appropriate [jobs endpoint](#/jobs/get_job_v1) to check its status and get its result.","operationId":"export_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to export","schema":{"format":"uuid","type":"string"}}],"responses":{"202":{"headers":{"Location":{"description":"The URI to check the status of the job","schema":{"type":"string","example":"https://api.fieldguide.io/v1/jobs/f2c75e84-6b42-452d-b52f-3bf1854432d6"}},"Retry-After":{"description":"A date-time estimate of when the job will complete (if the job is still running)","schema":{"type":"string","format":"date-time","example":"2025-04-04T12:30:00.000Z"},"required":false}},"description":"The Job UUID for the Engagement binder export","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/JobSubmittedRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Export an Engagement binder","tags":["engagements"],"x-required-scopes":["engagements:read"]}},"/v1/engagements/exports/{uuid}":{"get":{"description":"Returns the download URL and metadata for a completed Engagement binder export. Call this once the export Job returned by the export endpoint has finished.","operationId":"get_engagement_export_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Job","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The exported Engagement binder file metadata and download URL","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementExportRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch a generated Engagement binder report","tags":["engagements"],"x-required-scopes":["engagements:read"]}},"/v1/engagements/{uuid}/users":{"get":{"operationId":"list_engagement_users_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to retrieve Users for","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 users on the Engagement Team for the specified Engagement","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementUserRead"}}}},{"type":"object","required":["_links"],"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 `engagements:read`, `users:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List the Engagement Team on an Engagement","tags":["engagements","users"],"x-required-scopes":["engagements:read","users:read"]},"patch":{"operationId":"add_engagement_users_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to add Users to","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EngagementUserCreate"}}}}},"responses":{"204":{"description":"No content. The Users were added to the Engagement Team successfully."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Add Users to an Engagement Team","tags":["engagements","users"],"x-required-scopes":["engagements:write"]},"delete":{"operationId":"remove_engagement_users_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to delete Users from","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EngagementUserDelete"}}}}},"responses":{"204":{"description":"No content. The Users were removed from the Engagement Team successfully."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Remove Users from an Engagement Team","tags":["engagements","users"],"x-required-scopes":["engagements:write"]}},"/v1/jobs/{uuid}":{"get":{"operationId":"get_job_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"UUID of the Job","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"headers":{"Location":{"description":"The URI to check the status of the job (if the job is still running)","schema":{"type":"string","example":"https://api.fieldguide.io/v1/jobs/f2c75e84-6b42-452d-b52f-3bf1854432d6"},"required":false},"Retry-After":{"description":"A date-time estimate of when the job will complete (if the job is still running)","schema":{"type":"string","format":"date-time","example":"2025-04-04T12:30:00.000Z"},"required":false}},"description":"Returns the status of a job if it is still running or has failed","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/JobRead"}}},"examples":{"running":{"summary":"Job Running","value":{"data":{"status":"Running"}}},"failed":{"summary":"Job Failed","value":{"data":{"status":"Failed","reason":"Failed to process data due to invalid format"}}}}}}},"302":{"headers":{"Location":{"description":"The URI to check the status of the job","schema":{"type":"string","example":"https://api.fieldguide.io/v1/insights/teams/time-tracking/exports/f2c75e84-6b42-452d-b52f-3bf1854432d6"},"required":true}},"description":"Returns the status of a job if it has finished and redirects to the appropriate endpoint to get the result resource","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/JobRead"}}},"examples":{"finished":{"summary":"Job Finished","value":{"data":{"status":"Finished"}}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Return the status of an asynchronous Job","tags":["jobs"]}},"/v1/users":{"get":{"operationId":"list_users_v1","parameters":[{"name":"uuids","required":false,"in":"query","description":"Filter Users by UUID. Repeat the query parameter for multiple UUIDs.","schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 Users accessible by the user","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserRead"}}}},{"type":"object","required":["_links"],"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 `users:read`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List available Users","tags":["users"],"x-required-scopes":["users:read"]}},"/v1/users/me":{"get":{"operationId":"get_current_user_v1","parameters":[],"responses":{"200":{"description":"Identifying information about the current user","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/UserRead"}}}}}},"401":{"description":"Unauthorized"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch the authenticated User","tags":["users"]}},"/v1/users/{uuid}":{"get":{"operationId":"get_user_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the user to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Identifying information about the requested user","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/UserRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `users:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch the specified User","tags":["users"],"x-required-scopes":["users:read"]}},"/v1/companies/{uuid}/users":{"get":{"operationId":"list_company_users_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Company to retrieve Users for","schema":{"format":"uuid","type":"string"}},{"name":"email","required":false,"in":"query","description":"Filter Users by email address (case-insensitive, partial match)","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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":"Users for the specified Company","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserRead"}}}},{"type":"object","required":["_links"],"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"}}}}}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `users:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Users that belong to the specified Company","tags":["users","companies"],"x-required-scopes":["users:read"]}},"/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","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ControlRead"}}}},{"type":"object","required":["_links"],"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","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Controls that belong to the specified Request","tags":["controls","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","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RequestRead"}}}},{"type":"object","required":["_links"],"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","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Requests that belong to the specified Engagement","tags":["requests","engagements"],"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","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RequestRead"}}}},{"type":"object","required":["_links"],"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","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Requests that belong to the specified Sheet Row","tags":["sheet-rows","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":{"type":"object","required":["data"],"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","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"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":{"type":"object","required":["data"],"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","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Update the specified Request","tags":["requests"],"x-required-scopes":["requests:write"]}},"/v1/engagements/{uuid}/sheets":{"get":{"operationId":"list_sheets_by_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement for which to get Sheets","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 Sheets to which the Engagement is linked","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SheetRead"}}}},{"type":"object","required":["_links"],"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 `engagements:read`, `sheets:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Sheets that belong to the specified Engagement","tags":["sheets","engagements"],"x-required-scopes":["engagements:read","sheets:read"]}},"/v1/sheets/{uuid}/export":{"post":{"operationId":"export_sheet_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Sheet to export","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The exported Sheet file metadata and download URL","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ExportedFileRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `sheets:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Export a Sheet","tags":["sheets"],"x-required-scopes":["sheets:read"]}},"/v1/sheets/{uuid}/columns":{"get":{"operationId":"list_sheet_columns_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Sheet for which to get Sheet Columns","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 Columns contained within the specified Sheet","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SheetColumnRead"}}}},{"type":"object","required":["_links"],"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","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Sheet Columns that belong to the specified Sheet","tags":["sheet-columns"],"x-required-scopes":["sheets:read"]}},"/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","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SheetRowRead"}}}},{"type":"object","required":["_links"],"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","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Sheet Rows that belong to the specified Request","tags":["requests","sheet-rows"],"x-required-scopes":["sheets:read"]}},"/v1/sheets/{uuid}/sheet-rows":{"get":{"operationId":"list_sheet_rows_by_sheet_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Sheet for which to get Sheet Rows","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 Sheet is linked","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SheetRowRead"}}}},{"type":"object","required":["_links"],"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","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Sheet Rows that belong to the specified Sheet","tags":["sheets","sheet-rows"],"x-required-scopes":["sheets:read"]}},"/v1/sheet-rows/{uuid}/cells":{"get":{"operationId":"list_sheet_row_cells_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Sheet Row for which to get cell values","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The cells of the Sheet Row","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SheetRowCellRead"}}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `sheets:read`)"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable Entity (the Sheet Row contains more than 1000 columns)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Get the cells of a Sheet Row","tags":["sheet-rows"],"x-required-scopes":["sheets:read"]},"patch":{"operationId":"update_sheet_row_cells_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Sheet Row for which to update cell values","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SheetRowCellUpdate"}}}}},"responses":{"204":{"description":"No content. The updates were made successfully."},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `sheets:write`)"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable Entity"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Updates the cells of a Sheet Row","tags":["sheet-rows"],"x-required-scopes":["sheets:write"]}},"/v1/files/{uuid}":{"delete":{"operationId":"delete_file_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the file to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No content. The file was deleted successfully."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `requests.files:write` for request files, `engagements.files:write` for engagement files)"},"404":{"description":"Resource not found"},"409":{"description":"You must remove all sign offs before deleting this file."},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Delete the specified File","tags":["files"]},"get":{"operationId":"get_file_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the File to get details for","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The File details","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FileRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Get details for a specific File","tags":["files"],"x-required-scopes":["files:read"]}},"/v1/files/{uuid}/context":{"get":{"operationId":"get_file_context_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the File","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The File context","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FileContextRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Get context for a specific File","tags":["files"],"x-required-scopes":["files:read"]}},"/v1/engagements/{uuid}/folders":{"get":{"operationId":"list_engagement_folders_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement for which to get Folders","schema":{"format":"uuid","type":"string"}},{"name":"parent_folder_uuid","required":false,"in":"query","description":"An optional UUID of the parent folder","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 list of Engagement Folders","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementFolderRead"}}}},{"type":"object","required":["_links"],"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 `engagements.files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Folders that belong to the specified Engagement","tags":["engagements","files"],"x-required-scopes":["engagements.files:read"]},"post":{"operationId":"create_engagement_folder_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement in which to create a Folder","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementFolderCreate"}}}},"responses":{"201":{"description":"The newly created Engagement Folder","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementFolderRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `engagements.files:write`)"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable Entity"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Create a Folder in the specified Engagement","tags":["engagements","files"],"x-required-scopes":["engagements.files:write"]}},"/v1/engagements/{engagement_uuid}/folders/{folder_uuid}":{"get":{"operationId":"get_engagement_folder_v1","parameters":[{"name":"engagement_uuid","required":true,"in":"path","description":"The UUID of the Engagement from which to get a Folder","schema":{"format":"uuid","type":"string"}},{"name":"folder_uuid","required":true,"in":"path","description":"The UUID of the folder to fetch","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Engagement Folder with the specified UUID","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementFolderRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements.files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch a Folder by Engagement and Folder UUIDs","tags":["engagements","files"],"x-required-scopes":["engagements.files:read"]}},"/v1/engagements/{engagement_uuid}/files/{file_uuid}":{"get":{"operationId":"get_engagement_file_v1","parameters":[{"name":"engagement_uuid","required":true,"in":"path","description":"The UUID of the Engagement from which to get a File","schema":{"format":"uuid","type":"string"}},{"name":"file_uuid","required":true,"in":"path","description":"The UUID of the File to fetch","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Engagement File with the specified UUID","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementFileRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements.files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch a File by Engagement and File UUIDs","tags":["engagements","files"],"x-required-scopes":["engagements.files:read"]}},"/v1/engagements/{uuid}/files":{"get":{"operationId":"list_engagement_files_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement for which to get Files","schema":{"format":"uuid","type":"string"}},{"name":"folder_uuid","required":false,"in":"query","description":"An optional UUID of the Folder to filter Files by","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 list of Engagement Files","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementFileRead"}}}},{"type":"object","required":["_links"],"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 `engagements.files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Files that belong to the specified Engagement","tags":["engagements","files"],"x-required-scopes":["engagements.files:read"]},"post":{"operationId":"upload_engagement_file_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to upload the File to","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"description":"The File to upload","content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/EngagementFileCreate"}}}},"responses":{"200":{"description":"The UUID of the File that was attached to the Engagement","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementFileRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `engagements.files:write`)"},"404":{"description":"Resource not found"},"413":{"description":"The uploaded file exceeds the 150 MB limit"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Upload a File to the specified Engagement","tags":["engagements","files"],"x-required-scopes":["engagements.files:write"]}},"/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","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FileRead"}}}},{"type":"object","required":["_links"],"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"}}}}}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `requests.files:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch the Files for the specified Request","tags":["requests","files"],"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":{"type":"object","required":["data"],"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"},"413":{"description":"The uploaded file exceeds the 150 MB limit"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Upload a File to the specified Request","tags":["requests","files"],"x-required-scopes":["requests.files:write"]}},"/v1/forms/{uuid}":{"get":{"operationId":"get_form_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the attached Form to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The visible active Form attached to an Engagement or Engagement Template","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/EngagementFormRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `forms:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Get the specified Engagement Form","tags":["forms"],"x-required-scopes":["forms:read"]}},"/v1/form-templates/{uuid}":{"get":{"operationId":"get_form_template_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Form Template to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The visible active settings-level Form Template","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FormTemplateRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `forms:read`)\n\nForbidden for client user credentials; a firm user credential is required (requires scopes `forms:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Get the specified Form Template","tags":["forms"],"x-required-scopes":["forms:read"]}},"/v1/form-templates/{uuid}/fields":{"get":{"description":"Lists active Fields for a visible settings-level Form Template. This operation is available only to firm user credentials. Results default to deterministic creation order; `sort_by=sequence` uses Fieldguide display order.","operationId":"list_fields_by_form_template_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Form Template whose Fields to retrieve","schema":{"format":"uuid","type":"string"}},{"name":"types","required":false,"in":"query","description":"Filter Fields by type. Repeat the query parameter for multiple types.","schema":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldType"}}},{"name":"sort_by","required":false,"in":"query","description":"Field used to sort Fields. Results are sorted by creation time unless `sequence` is requested. Sequence order matches Fieldguide, with null sequences first in ascending order and last in descending order.","schema":{"$ref":"#/components/schemas/FormFieldSortBy"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 active Fields for the visible Form Template","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldRead"}}}},{"type":"object","required":["_links"],"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\n\nForbidden (requires scopes `forms:read`)\n\nForbidden for client user credentials; a firm user credential is required (requires scopes `forms:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Fields for the specified Form Template","tags":["forms"],"x-required-scopes":["forms:read"]}},"/v1/form-templates":{"get":{"description":"Lists settings-level Form Templates. This operation is available only to firm user credentials.","operationId":"list_form_templates_v1","parameters":[{"name":"uuids","required":false,"in":"query","description":"Filter Form Templates by UUID. Repeat the query parameter for multiple UUIDs.","schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 active settings-level Form Templates visible to the firm","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FormTemplateRead"}}}},{"type":"object","required":["_links"],"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\n\nForbidden (requires scopes `forms:read`)\n\nForbidden for client user credentials; a firm user credential is required (requires scopes `forms:read`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List visible Form Templates","tags":["forms"],"x-required-scopes":["forms:read"]}},"/v1/forms/{uuid}/values":{"patch":{"description":"Atomically sets or clears a partial batch of standard Form Values. Omitted Fields remain unchanged. Formatted-text input is canonicalized. By default, unresolved tracked changes reject the batch; callers can explicitly discard them with tracked_changes_policy DISCARD.","operationId":"update_values_by_form_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the attached Form whose Values to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormValuesUpdate"}}}},"responses":{"200":{"description":"The canonical committed Values in request order","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FormValueUpdateRead"}}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `forms:write`)\n\nForbidden for client user credentials; a firm user credential is required (requires scopes `forms:write`)"},"404":{"description":"Resource not found"},"409":{"description":"A targeted formatted-text Value has unresolved track-change suggestions"},"413":{"description":"The request body exceeds 10 MiB after content-encoding decompression"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Update Values for the specified Form","tags":["forms"],"x-required-scopes":["forms:write"]}},"/v1/forms/{uuid}/fields":{"get":{"description":"Returns every active Field with its current stored Value. Unanswered and cleared Fields have a null Value; formatted-text HTML is returned unchanged.","operationId":"list_fields_by_form_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the attached Form whose Fields to retrieve","schema":{"format":"uuid","type":"string"}},{"name":"types","required":false,"in":"query","description":"Filter Fields by type. Repeat the query parameter for multiple types.","schema":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldType"}}},{"name":"sort_by","required":false,"in":"query","description":"Field used to sort Fields. Results are sorted by creation time unless `sequence` is requested. Sequence order matches Fieldguide, with null sequences first in ascending order and last in descending order.","schema":{"$ref":"#/components/schemas/FormFieldSortBy"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 active Fields and current Values visible for the Form","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementFormFieldRead"}}}},{"type":"object","required":["_links"],"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\n\nForbidden (requires scopes `forms:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Fields and current Values for the specified Form","tags":["forms"],"x-required-scopes":["forms:read"]}},"/v1/engagements/{uuid}/forms":{"get":{"operationId":"list_forms_by_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement or Engagement Template to retrieve Forms for","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 visible active Forms attached to the Engagement or Engagement Template","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngagementFormRead"}}}},{"type":"object","required":["_links"],"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\n\nForbidden (requires scopes `forms:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Forms attached to the specified Engagement or Engagement Template","tags":["forms","engagements"],"x-required-scopes":["forms:read"]}},"/v1/insights/teams/time-tracking/exports/{uuid}":{"get":{"operationId":"get_time_tracking_export_v1","parameters":[{"name":"uuid","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The exported Time Tracking Insights file metadata and download URL","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/TimeTrackingFileRead"}}}}}},"204":{"description":"No Time Tracking Insights available\n\nNo Content (the requested timeframe did not generate any results)"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `insights:read`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch a generated Insights Time Tracking report","tags":["insights"],"x-required-scopes":["insights:read"]}},"/v1/insights/teams/time-tracking/export":{"post":{"description":"Begins a long-running process that will generate an Insights Time Tracking report in CSV format.\n\nUse the Job ID that this endpoint returns with the appropriate [jobs endpoint](#/jobs/get_job_v1) to check its status and get its result.","operationId":"export_time_tracking_report_v1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeTrackingFileCreate"}}}},"responses":{"202":{"headers":{"Location":{"description":"The URI to check the status of the job","schema":{"type":"string","example":"https://api.fieldguide.io/v1/jobs/f2c75e84-6b42-452d-b52f-3bf1854432d6"}},"Retry-After":{"description":"A date-time estimate of when the job will complete (if the job is still running)","schema":{"type":"string","format":"date-time","example":"2025-04-04T12:30:00.000Z"},"required":false}},"description":"The Job UUID for the time tracking export","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/JobSubmittedRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `insights:read`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Export an Insights Time Tracking report","tags":["insights"],"x-required-scopes":["insights:read"]}},"/v1/milestones":{"get":{"operationId":"list_milestones_v1","parameters":[{"name":"associated_engagement_status","required":false,"in":"query","description":"Filter by the optional Engagement lifecycle phase associated with each Milestone. This is not the Engagement's current status and does not determine Milestone completion.","schema":{"$ref":"#/components/schemas/MilestoneAssociatedEngagementStatus"}},{"name":"client_can_view","required":false,"in":"query","description":"Filter Milestones by client visibility.","schema":{"type":"boolean"}},{"name":"is_completed","required":false,"in":"query","description":"Filter by completion state. A completed Milestone has a non-null `completed_at` value.","schema":{"type":"boolean"}},{"name":"is_overdue","required":false,"in":"query","description":"Filter by overdue state using today's UTC date. `true` requires a due date before today; `false` includes due dates today or later and Milestones without a due date.","schema":{"type":"boolean"}},{"name":"engagement_uuids","required":false,"in":"query","description":"Filter Milestones by Engagement UUID. Repeat the query parameter for multiple UUIDs.","schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 visible Milestones","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MilestoneRead"}}}},{"type":"object","required":["_links"],"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\n\nForbidden (requires scopes `milestones:read`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List visible Milestones","tags":["milestones"],"x-required-scopes":["milestones:read"]}},"/v1/milestones/{uuid}":{"get":{"operationId":"get_milestone_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Milestone to retrieve","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The visible Milestone","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/MilestoneRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `milestones:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch the specified Milestone","tags":["milestones"],"x-required-scopes":["milestones:read"]},"patch":{"operationId":"update_milestone_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Milestone to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/MilestoneUpdate"}],"minProperties":1}}}},"responses":{"200":{"description":"The updated Milestone","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/MilestoneRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `milestones:write`)"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable Entity"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Update the specified Milestone","tags":["milestones"],"x-required-scopes":["milestones:write"]},"delete":{"operationId":"delete_milestone_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Milestone to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No content. The Milestone was deleted successfully."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `milestones:write`)"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable Entity"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Delete the specified Milestone","tags":["milestones"],"x-required-scopes":["milestones:write"]}},"/v1/engagements/{uuid}/milestones":{"post":{"operationId":"create_engagement_milestone_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to create a Milestone for","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MilestoneCreate"}}}},"responses":{"201":{"description":"The newly created Milestone","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/MilestoneRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden\n\nForbidden (requires scopes `milestones:write`)"},"404":{"description":"Resource not found"},"422":{"description":"Unprocessable Entity"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Create a Milestone for the specified Engagement","tags":["milestones","engagements"],"x-required-scopes":["milestones:write"]},"get":{"operationId":"list_milestones_by_engagement_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Engagement to retrieve Milestones for","schema":{"format":"uuid","type":"string"}},{"name":"associated_engagement_status","required":false,"in":"query","description":"Filter by the optional Engagement lifecycle phase associated with each Milestone. This is not the Engagement's current status and does not determine Milestone completion.","schema":{"$ref":"#/components/schemas/MilestoneAssociatedEngagementStatus"}},{"name":"client_can_view","required":false,"in":"query","description":"Filter Milestones by client visibility.","schema":{"type":"boolean"}},{"name":"is_completed","required":false,"in":"query","description":"Filter by completion state. A completed Milestone has a non-null `completed_at` value.","schema":{"type":"boolean"}},{"name":"sort_by","required":false,"in":"query","description":"Field used to sort Milestones. Results are sorted by creation time unless `sequence` is requested.","schema":{"$ref":"#/components/schemas/MilestoneSortBy"}},{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 visible Milestones for the Engagement","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MilestoneRead"}}}},{"type":"object","required":["_links"],"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\n\nForbidden (requires scopes `milestones:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List Milestones that belong to the specified Engagement","tags":["milestones","engagements"],"x-required-scopes":["milestones:read"]}},"/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","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CommentRead"}}}},{"type":"object","required":["_links"],"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","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch the Comments for the specified Request","tags":["comments","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":{"type":"object","required":["data"],"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","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Post a Comment on a Request","tags":["comments","requests"],"x-required-scopes":["comments:write"]}},"/v1/comments/{uuid}":{"get":{"operationId":"get_comment_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Comment","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Comment","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CommentRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `comments:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch the Comment","tags":["comments"],"x-required-scopes":["comments:read"]}},"/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","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Post Comments on multiple Requests","tags":["comments","requests"],"x-required-scopes":["comments:write"]}},"/v1/comments/{uuid}/context":{"get":{"operationId":"get_comment_context_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Comment","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"The Comment context","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CommentContextRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `comments:read`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Fetch the Comment context","tags":["comments"],"x-required-scopes":["comments:read"]}},"/v1/webhooks":{"get":{"operationId":"list_webhooks_v1","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number","default":1,"nullable":true}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number","default":50,"nullable":true,"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 Webhooks accessible by the user","content":{"application/json":{"schema":{"type":"object","allOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookRead"}}}},{"type":"object","required":["_links"],"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"}}}}}}}]}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `webhooks:read`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"List available Fieldguide Webhook subscriptions for the current User","tags":["webhooks"],"x-required-scopes":["webhooks:read"]},"post":{"callbacks":{"onObjectAction":{"{$request.body#/url}":{"post":{"parameters":[{"name":"X-FG-Signature","in":"header","description":"HMAC-SHA256 hex-encoded signature hash of the request body with the webhook {$response.body#/secret}. Your server implementation should hash + encode the request body and compare the resulting signature with this header value to verify the webhook was sent from Fieldguide. See [webhooks.fyi](https://webhooks.fyi/security/hmac) for additional context.","required":true,"schema":{"type":"string"}},{"name":"X-FG-Attempt","in":"header","description":"Denotes if this is the original notification (`1`) or a retry (`2+`)","required":true,"schema":{"type":"number"}}],"requestBody":{"required":true,"description":"Webhook event payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookPayload"}}}},"security":[],"responses":{"200":{"description":"Your server implementation should return a 2xx status code if the webhook was received successfully"}}}}}},"description":"Note: Webhooks on a development domain (mockable.io, ngrok-free.app, ngrok-free.dev, on.aws, onrender.com, run.app, webhook.site) are automatically deleted when delivery returns a 404, 410, or 501 response. They are also deleted after retries are exhausted on a persistent connection error (timeout, DNS failure, connection refused, or a recognized persistent TLS certificate failure).","operationId":"create_webhook_v1","parameters":[],"requestBody":{"required":true,"description":"Input for Webhook to be created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreate"}}}},"responses":{"201":{"description":"The newly created Webhook","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/WebhookReadWithSecret"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `webhooks:write`)"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Create a new Webhook","tags":["webhooks"],"x-required-scopes":["webhooks:write"]}},"/v1/webhooks/{uuid}":{"delete":{"operationId":"delete_webhook_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Webhook to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"No content. The Webhook was deleted successfully."},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `webhooks:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Delete the specified Webhook","tags":["webhooks"],"x-required-scopes":["webhooks:write"]},"patch":{"operationId":"update_webhook_v1","parameters":[{"name":"uuid","required":true,"in":"path","description":"The UUID of the Webhook to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"description":"Input for Webhook to be updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookUpdate"}}}},"responses":{"200":{"description":"The updated Webhook","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/WebhookRead"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden (requires scopes `webhooks:write`)"},"404":{"description":"Resource not found"},"429":{"description":"Too many requests","headers":{"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}}}},"summary":"Update the specified Webhook","tags":["webhooks"],"x-required-scopes":["webhooks:write"]}},"/v1/oauth/token":{"post":{"summary":"Refresh an Integration OAuth token","description":"Exchanges the current rotating refresh token using a public client ID. Only refresh_token grants and the three documented form fields are accepted. This OAuth endpoint uses flat responses, not the REST data envelope. No client secret or Authorization header is accepted. Refresh credentials must never be logged or retained. Identity verifies current connection authority and the User rollout gate before releasing credentials.","tags":["api"],"security":[{}],"x-mcp-exclude":true,"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","additionalProperties":false,"required":["grant_type","client_id","refresh_token"],"properties":{"grant_type":{"type":"string","enum":["refresh_token"]},"client_id":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$","description":"Public Auth0 client ID"},"refresh_token":{"type":"string","minLength":1,"maxLength":8192,"writeOnly":true,"description":"Current rotating refresh token"}}}}}},"responses":{"200":{"description":"Rotated credentials","headers":{"Cache-Control":{"required":true,"schema":{"type":"string","enum":["no-store"]}},"Pragma":{"required":true,"schema":{"type":"string","enum":["no-cache"]}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["access_token","token_type","expires_in","refresh_token","scope"],"properties":{"access_token":{"type":"string","description":"Access token"},"token_type":{"type":"string","enum":["Bearer"]},"expires_in":{"type":"integer","enum":[900],"description":"Access token lifetime in seconds"},"refresh_token":{"type":"string","description":"New rotating refresh token; replaces the submitted token"},"scope":{"type":"string","description":"Space-delimited granted scopes"}}}}}},"400":{"description":"Invalid request or credentials","headers":{"Cache-Control":{"required":true,"schema":{"type":"string","enum":["no-store"]}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":false,"properties":{"error":{"type":"string","enum":["invalid_request","invalid_grant","unsupported_grant_type","unauthorized_client","temporarily_unavailable","server_error"]}}}}}},"429":{"description":"Too many requests","headers":{"Cache-Control":{"required":true,"schema":{"type":"string","enum":["no-store"]}},"Retry-After":{"description":"The number of seconds to wait before retrying the request","required":true,"schema":{"type":"integer","minimum":1,"example":60}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":false,"properties":{"error":{"type":"string","enum":["invalid_request","invalid_grant","unsupported_grant_type","unauthorized_client","temporarily_unavailable","server_error"]}}}}}},"502":{"description":"Identity exchange failed","headers":{"Cache-Control":{"required":true,"schema":{"type":"string","enum":["no-store"]}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":false,"properties":{"error":{"type":"string","enum":["invalid_request","invalid_grant","unsupported_grant_type","unauthorized_client","temporarily_unavailable","server_error"]}}}}}},"503":{"description":"Exchange temporarily unavailable","headers":{"Cache-Control":{"required":true,"schema":{"type":"string","enum":["no-store"]}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":false,"properties":{"error":{"type":"string","enum":["invalid_request","invalid_grant","unsupported_grant_type","unauthorized_client","temporarily_unavailable","server_error"]}}}}}}},"operationId":"refresh_oauth_token_v1"}}},"info":{"title":"Fieldguide API","description":"An API for interacting with the [Fieldguide](https://fieldguide.com) platform","version":"v1","contact":{}},"tags":[{"name":"api","description":"Endpoints used to interact with the Fieldguide API platform"},{"name":"comments","description":"Endpoints used to interact with Fieldguide Comments"},{"name":"companies","description":"Endpoints used to interact with Fieldguide Companies"},{"name":"controls","description":"Endpoints used to interact with Fieldguide Controls"},{"name":"engagements","description":"Endpoints used to interact with Fieldguide Engagements"},{"name":"files","description":"Endpoints used to interact with Fieldguide Files"},{"name":"forms","description":"Endpoints used to interact with Fieldguide Forms"},{"name":"insights","description":"Endpoints used to interact with Fieldguide Insights"},{"name":"jobs","description":"Endpoints used to interact with long-running processes (Jobs) in the Fieldguide API"},{"name":"milestones","description":"Endpoints used to interact with Fieldguide Milestones"},{"name":"requests","description":"Endpoints used to interact with Fieldguide Requests"},{"name":"sheet-columns","description":"Endpoints used to interact with Fieldguide Sheet Columns"},{"name":"sheet-rows","description":"Endpoints used to interact with Fieldguide Sheet Rows"},{"name":"sheets","description":"Endpoints used to interact with Fieldguide Sheets"},{"name":"users","description":"Endpoints used to interact with Fieldguide Users"},{"name":"webhooks","description":"Endpoints used to interact with Fieldguide Webhooks"}],"servers":[{"url":"https://api.fieldguide.io","description":"Fieldguide API"}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"ScopeRead":{"type":"object","properties":{"scope":{"type":"string","example":"engagements:read","description":"Expected values include: `comments:read`, `comments:write`, `companies:read`, `companies:write`, `controls:read`, `engagements:read`, `engagements:write`, `engagements.files:read`, `engagements.files:write`, `files:read`, `forms:read`, `forms:write`, `insights:read`, `milestones:read`, `milestones:write`, `requests:read`, `requests:write`, `requests.files:read`, `requests.files:write`, `users:read`, `webhooks:read`, `webhooks:write`, `sheets:read`, `sheets:write`. This list is not exhaustive; additional values can be added over time."},"resource":{"allOf":[{"$ref":"#/components/schemas/ApiResource"}],"description":"The API resource this scope grants access to. Expected values include: `comments`, `companies`, `controls`, `engagements`, `requests`, `users`, `webhooks`, `files`, `forms`, `sheets`, `sheet-columns`, `sheet-rows`, `insights`, `jobs`, `milestones`, `folders`. This list is not exhaustive; additional values can be added over time."},"description":{"type":"string","example":"Can read engagement metadata"}},"required":["scope","resource","description"]},"ApiTokenRead":{"type":"object","properties":{"user_uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"expires_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"type":{"type":"string","enum":["api"],"example":"api"},"auth_method":{"type":"string","enum":["api_token"],"example":"api_token"},"uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71"},"name":{"type":"string","example":"Acme ABC Token"},"scopes":{"type":"array","example":["engagements:read","engagements.files:read","engagements.files:write"],"items":{"type":"string"},"description":"Expected values include: `comments:read`, `comments:write`, `companies:read`, `companies:write`, `controls:read`, `engagements:read`, `engagements:write`, `engagements.files:read`, `engagements.files:write`, `files:read`, `forms:read`, `forms:write`, `insights:read`, `milestones:read`, `milestones:write`, `requests:read`, `requests:write`, `requests.files:read`, `requests.files:write`, `users:read`, `webhooks:read`, `webhooks:write`, `sheets:read`, `sheets:write`. This list is not exhaustive; additional values can be added over time."},"provisioned_for":{"type":"string","default":"fieldguide"}},"required":["user_uuid","created_at","expires_at","type","auth_method","uuid","name","scopes","provisioned_for"]},"OAuthTokenRead":{"type":"object","properties":{"user_uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"expires_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"type":{"type":"string","enum":["jwt"],"example":"jwt"},"auth_method":{"type":"string","enum":["oauth"],"example":"oauth"},"scopes":{"type":"array","example":["engagements:read","requests:read"],"items":{"type":"string"},"minItems":1,"description":"Recognized API scopes granted to the access token. OpenID Connect and other protocol scopes are excluded. Expected values include: `comments:read`, `comments:write`, `companies:read`, `companies:write`, `controls:read`, `engagements:read`, `engagements:write`, `engagements.files:read`, `engagements.files:write`, `files:read`, `forms:read`, `forms:write`, `insights:read`, `milestones:read`, `milestones:write`, `requests:read`, `requests:write`, `requests.files:read`, `requests.files:write`, `users:read`, `webhooks:read`, `webhooks:write`, `sheets:read`, `sheets:write`. This list is not exhaustive; additional values can be added over time."},"connection_uuid":{"type":"string","format":"uuid","example":"018f4f54-9ad2-7b1d-93b3-1b830f0a4d38","description":"The User's Connection that authorized the access token."},"application_uuid":{"type":"string","format":"uuid","example":"754ecf63-5bdf-4782-8d48-61ec083373b9"},"application_name":{"type":"string","nullable":true,"example":"Acme Integration","description":"The Application's current name, or `null` when it is temporarily unavailable."}},"required":["user_uuid","created_at","expires_at","type","auth_method","scopes","connection_uuid","application_uuid","application_name"]},"JwtTokenRead":{"type":"object","properties":{"user_uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"expires_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"type":{"type":"string","enum":["jwt"],"example":"jwt"},"auth_method":{"type":"string","enum":["web"],"example":"web"},"scopes":{"type":"array","items":{"type":"string"},"nullable":true,"enum":[null],"description":"Always `null`: web sessions have no credential-level scope restriction. User permissions still apply."}},"required":["user_uuid","created_at","expires_at","type","auth_method","scopes"]},"CompanyType":{"type":"string","enum":["client","firm"],"description":"Whether the company is a Firm (the audit provider) or a Client."},"HalLink":{"type":"object","properties":{"href":{"type":"string","example":"https://example.com/resource/or/path","format":"uri"},"title":{"type":"string","description":"A human-readable title for the link","example":"A description for the link"},"type":{"type":"string","description":"The content-type","example":"text/html"}},"required":["href","type"]},"CompanyReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Company within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/clients/1/overview","title":"View this Company in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"CompanyRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"3699af0f-9b92-410d-945c-bb0bf39da904"},"name":{"type":"string","example":"Jones Group, Inc."},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"CA0001-A","nullable":true,"default":null},"type":{"description":"Whether the company is a Firm (the audit provider) or a Client.","allOf":[{"$ref":"#/components/schemas/CompanyType"}]},"require_mfa":{"type":"boolean","description":"Whether new users will have multi-factor authentication enabled","example":false},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"_links":{"$ref":"#/components/schemas/CompanyReadLinks"}},"required":["uuid","name","type","require_mfa","created_at","_links"]},"CompanyCreate":{"type":"object","properties":{"name":{"type":"string","example":"Jones Group, Inc."},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"CA0001-A"},"require_mfa":{"type":"boolean","description":"Whether new users will have multi-factor authentication enabled","example":false}},"required":["name","require_mfa"]},"CompanyUpdate":{"type":"object","properties":{"name":{"type":"string","example":"Jones Group, Inc."},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"CA0001-A","nullable":true},"require_mfa":{"type":"boolean","description":"Whether new users will have multi-factor authentication enabled","example":false}}},"EngagementStatus":{"type":"string","enum":["Pending","In Progress","Complete","Archived"],"description":"The engagement's current lifecycle status."},"EngagementReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Engagement within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/engagements/82027","title":"View this Engagement in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"EngagementRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71"},"name":{"type":"string","example":"SOC 2 - Type 1"},"status":{"description":"The engagement's current lifecycle status.","allOf":[{"$ref":"#/components/schemas/EngagementStatus"}]},"is_template":{"type":"boolean","example":false,"description":"Whether this is a reusable engagement template rather than a live engagement."},"company_uuid":{"type":"string","format":"uuid","example":"022723f4-1d6a-4c6c-9387-f63c7d66f0fc","description":"UUID of the client company this engagement is for."},"start_date":{"type":"string","format":"date","example":"2023-05-23","nullable":true,"description":"The engagement's planned start date, or null if not scheduled."},"end_date":{"type":"string","format":"date","example":"2023-07-30","nullable":true,"description":"The engagement's planned end date, or null if not scheduled."},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"report_issue_date":{"type":"string","format":"date","example":"2023-07-30","nullable":true,"description":"The date the audit report was issued, or null if not yet issued."},"engagement_lead_user_uuid":{"type":"string","format":"uuid","example":"022723f4-1d6a-4c6c-9387-f63c7d66f0fc","nullable":true,"description":"UUID of the user leading the engagement (the audit lead), or null if no engagement lead is available."},"client_owner_user_uuid":{"type":"string","format":"uuid","example":"022723f4-1d6a-4c6c-9387-f63c7d66f0fc","nullable":true,"description":"UUID of the client-side owner of the engagement, or null if unassigned."},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"E0001-A","nullable":true},"_links":{"$ref":"#/components/schemas/EngagementReadLinks"}},"required":["uuid","name","status","is_template","company_uuid","start_date","end_date","created_at","report_issue_date","engagement_lead_user_uuid","client_owner_user_uuid","_links"]},"TemplatesQuery":{"type":"string","enum":["include","exclude","only"]},"EngagementsQueryStatusLabel":{"type":"string","enum":["Pending","In Progress","Complete","Archived"]},"TemplateVersionAvailability":{"type":"string","enum":["new_engagements","existing_engagements"],"description":"Where the firm currently allows this version to be used. Creating an Engagement from a version requires `new_engagements`; pinning a version without it is rejected."},"EngagementTemplateVersionRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71","description":"The unique identifier for this member of the Engagement Template's version family."},"version_tag":{"type":"string","nullable":true,"example":"Version 2","description":"The label the firm gave this version, or null when it was saved without one."},"version_description":{"type":"string","nullable":true,"example":"Adds the updated control wording for FY25.","description":"The note the firm recorded when saving this version, or null when it was saved without one."},"is_draft":{"type":"boolean","example":false,"description":"Whether this is the template's working draft rather than a saved version."},"availability":{"type":"array","example":["new_engagements"],"description":"Where the firm currently allows this version to be used. Creating an Engagement from a version requires `new_engagements`; pinning a version without it is rejected.","items":{"$ref":"#/components/schemas/TemplateVersionAvailability"}}},"required":["uuid","version_tag","version_description","is_draft","availability"]},"EngagementStatusLabel":{"type":"string","enum":["Pending","In Progress","Complete"],"description":"The status of the Engagement"},"EngagementUpdate":{"type":"object","properties":{"engagement_lead_user_uuid":{"type":"string","format":"uuid","example":"022723f4-1d6a-4c6c-9387-f63c7d66f0fc","description":"The UUID of the firm user who is the engagement lead"},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"E0001-A","nullable":true},"status":{"description":"The status of the Engagement","allOf":[{"$ref":"#/components/schemas/EngagementStatusLabel"}]},"name":{"type":"string","description":"The name of the Engagement","example":"SOC 2 - Type 1","nullable":false}}},"JobSubmittedReadLinks":{"type":"object","properties":{"status":{"description":"An API endpoint to retrieve the status of the job","example":{"href":"https://api.fieldguide.io/v1/jobs/2d2e102e-f4af-4534-9749-4d9249eca6cc","title":"Get the status of this job","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["status"]},"EngagementUuidRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71","description":"The UUID of the Engagement being provisioned"},"job_uuid":{"type":"string","format":"uuid","example":"2d2e102e-f4af-4534-9749-4d9249eca6cc","description":"The UUID of the Engagement provisioning Job"},"_links":{"$ref":"#/components/schemas/JobSubmittedReadLinks"}},"required":["uuid","job_uuid","_links"]},"EngagementCreateFromTemplate":{"type":"object","properties":{"template_uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71"},"client_company_uuid":{"type":"string","format":"uuid","example":"022723f4-1d6a-4c6c-9387-f63c7d66f0fc"},"template_version_uuid":{"type":"string","format":"uuid","example":"d2c9b0a4-6f1e-4f2b-9a7e-7c4f2b1d8e50","description":"Which member of the template's version family to create the Engagement from, identified by its Engagement Template UUID. Must belong to the same version family as \"template_uuid\" and be available for new Engagements. The template's working draft may only be named while the family has no saved version available for new Engagements. Omit it to use the newest saved version the firm has made available, falling back to the working draft when the family has none."},"name":{"type":"string","example":"SOC 2 - Type 1"},"start_date":{"type":"string","example":"2023-07-30"},"end_date":{"type":"string","example":"2023-07-30"},"report_issue_date":{"type":"string","example":"2023-07-30"},"identifier":{"type":"string","description":"An external identifier that can be used by integrated systems","example":"E0001-A","nullable":true,"default":null}},"required":["template_uuid","client_company_uuid","name"]},"JobSubmittedRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","description":"The UUID of the job that was submitted"},"_links":{"$ref":"#/components/schemas/JobSubmittedReadLinks"}},"required":["uuid","_links"]},"EngagementExportRead":{"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","format":"uri","example":"https://example.com/document.docx","nullable":true},"url_expiration":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true}},"required":["name","size","mime_type","url","url_expiration"]},"EngagementUserRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"first_name":{"type":"string","example":"Kurt"},"last_name":{"type":"string","example":"Vonnegut"},"email":{"type":"string","format":"email","example":"kurt.vonnegut@weyland-yutani.com","description":"The user's email for deleted users will be noreply@fieldguide.io"},"company_uuid":{"type":"string","format":"uuid","example":"0a5cc6c6-2855-48f1-892e-7547fe9f8fc4"}},"required":["uuid","first_name","last_name","email","company_uuid"]},"EngagementUserCreate":{"type":"object","properties":{"uuid":{"type":"string","description":"The UUID of the user to add to the engagement","format":"uuid","example":"3699af0f-9b92-410d-945c-bb0bf39da904"}},"required":["uuid"]},"EngagementUserDelete":{"type":"object","properties":{"uuid":{"type":"string","description":"The UUID of the user to remove from the Engagement Team","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"}},"required":["uuid"]},"JobReadLinks":{"type":"object","properties":{"results":{"description":"An API endpoint to retrieve the result of the job","example":{"href":"https://api.fieldguide.io/v1/insights/teams/time-tracking/exports/9b560ead-2b64-41f2-b9ae-826bdb866f1a","title":"Get the result of this job","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]},"fieldguide":{"description":"A URL to view the result resource in the Fieldguide application","example":{"href":"https://app.fieldguide.io/engagements/82027","title":"View this Engagement in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["results"]},"JobRead":{"type":"object","properties":{"status":{"type":"string","enum":["Running","Finished","Failed"],"description":"Current status of the job"},"reason":{"type":"string","description":"Human-readable error message when job has failed"},"_links":{"$ref":"#/components/schemas/JobReadLinks"}},"required":["status"]},"UserReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the User within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/settings/admin/users/1","title":"View this User in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"UserRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"first_name":{"type":"string","example":"Kurt"},"last_name":{"type":"string","example":"Vonnegut"},"email":{"type":"string","format":"email","example":"kurt.vonnegut@weyland-yutani.com","description":"The user's email for deleted users will be noreply@fieldguide.io"},"company_uuid":{"type":"string","format":"uuid","example":"0a5cc6c6-2855-48f1-892e-7547fe9f8fc4"},"_links":{"$ref":"#/components/schemas/UserReadLinks"},"status":{"type":"string","enum":["Invited","Verified","Active","Deactivated","Deleted"],"example":"Active","description":"The user's account status (e.g. active, invited, or deactivated)."},"invite_last_resent_at":{"format":"date-time","type":"string","nullable":true,"example":"2023-01-01T12:30:00.000Z"}},"required":["uuid","first_name","last_name","email","company_uuid","_links","status","invite_last_resent_at"]},"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"]},"ControlRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"description":{"type":"string","example":"Organizational charts are in place to communicate key areas of authority, responsibility, and appropriate lines of reporting to personnel."},"key":{"type":"string","example":"FG-6"},"_links":{"$ref":"#/components/schemas/ControlReadLinks"}},"required":["uuid","description","key","_links"]},"RequestStatus":{"type":"string","enum":["Open","Update Requested","Complete","Ready For Review","Draft"],"description":"The request's current status in the evidence-collection workflow."},"RequestReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Request within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/inbox?open=true&id=47923","title":"View this Request in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"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","description":"The client Company UUID. Omitted for Engagement Templates and when the related Company is not visible to the caller."},"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","format":"date","example":"2024-05-01","nullable":true},"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","status_label","created_at","due_date","client_owner_user_uuids","tags","engagement_uuids","_links"]},"RequestUpdate":{"type":"object","properties":{"status":{"allOf":[{"$ref":"#/components/schemas/RequestStatus"}]}}},"SheetReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Sheet within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/engagements/82027/workplan/3","title":"View the Sheet in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"SheetRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"name":{"type":"string","example":"PCI DSS ROC v3.2.1 6. Findings and Observations"},"_links":{"$ref":"#/components/schemas/SheetReadLinks"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"}},"required":["uuid","name","_links","created_at"]},"ExportedFileRead":{"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","format":"uri","example":"https://example.com/document.docx","nullable":true},"url_expiration":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"uuid":{"type":"string","description":"The UUID of the File","example":"123e4567-e89b-12d3-a456-426614174000"}},"required":["name","size","mime_type","url","url_expiration","uuid"]},"SheetColumnFormat":{"type":"string","enum":["text","number","list"],"description":"The data type of values stored in this column."},"SheetColumnReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Sheet Column within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/engagements/165/workplan/183","title":"View the Sheet for this Sheet Column in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"SheetColumnRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"title":{"type":"string","example":"Example Title"},"type":{"example":"text","description":"The data type of values stored in this column.","allOf":[{"$ref":"#/components/schemas/SheetColumnFormat"}]},"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/SheetColumnReadLinks"}},"required":["uuid","title","type","created_at","updated_at","_links"]},"SheetRowRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"keys":{"type":"array","items":{"type":"string","example":"1.1.1"}},"_links":{"$ref":"#/components/schemas/SheetReadLinks"}},"required":["uuid","keys","_links"]},"SheetRowCellRead":{"type":"object","properties":{"column_uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"value":{"oneOf":[{"type":"string","nullable":true},{"type":"number","nullable":true}]}},"required":["column_uuid","value"]},"SheetRowCellUpdate":{"type":"object","properties":{"column_uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"value":{"oneOf":[{"type":"string","nullable":true},{"type":"number","nullable":true}]}},"required":["column_uuid","value"]},"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","format":"uri","example":"https://example.com/document.docx","nullable":true},"url_expiration":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"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","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true}},"required":["name","size","mime_type","url","url_expiration","uuid","created_at","updated_at"]},"FileContextRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"type":{"type":"string","enum":["engagement","request"],"example":"engagement","description":"The kind of object this file is attached to."}},"required":["uuid","type"]},"EngagementFolderReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Engagement Folder within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/engagements/123/documents?folder=abc-123","title":"View this Engagement Folder in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"EngagementFolderRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71","description":"The unique identifier for the resource"},"parent_folder_uuid":{"type":"string","format":"uuid","example":"721e8d9e-d2a8-480f-9187-5a685d3d0d71","description":"The folder that contains this one","nullable":true},"engagement_uuid":{"type":"string","format":"uuid","example":"921e8d9e-d2a8-480f-9187-5a685d3d0d71","description":"The Engagement this Folder belongs to"},"name":{"type":"string","example":"Documents","description":"The name of the Folder"},"path":{"type":"string","example":"/grandparent/parent","description":"The path to the Folder from the Engagement root"},"created_at":{"format":"date-time","type":"string","example":"2024-03-19T12:00:00Z","description":"Timestamp of when the Folder was created"},"_links":{"$ref":"#/components/schemas/EngagementFolderReadLinks"}},"required":["uuid","parent_folder_uuid","engagement_uuid","name","path","created_at","_links"]},"EngagementFolderCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"pattern":"^[^/]+$","example":"Documents","description":"The Folder name. Slashes are not allowed."},"parent_folder_uuid":{"type":"string","format":"uuid","nullable":true,"description":"Parent Folder UUID. Omit or set to null for a root Folder."}},"required":["name"],"additionalProperties":false},"EngagementFileReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Engagement File within the Fieldguide web application","example":{"href":"https://app.fieldguide.io/v1/engagements/2/documents?folder=0d7c72ee-28b3-4bc8-aea1-18bc7d9a8679&file=9b560ead-2b64-41f2-b9ae-826bdb866f1a","title":"Get the result of this job","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"EngagementFileRead":{"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","format":"uri","example":"https://example.com/document.docx","nullable":true},"url_expiration":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"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","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"engagement_uuid":{"type":"string","description":"The UUID of the Engagement this File is associated with","format":"uuid"},"folder_uuid":{"type":"string","description":"The UUID of the Folder this File is associated with, or null if it sits at the Engagement root.","format":"uuid","nullable":true},"_links":{"$ref":"#/components/schemas/EngagementFileReadLinks"}},"required":["name","size","mime_type","url","url_expiration","uuid","created_at","updated_at","engagement_uuid","folder_uuid","_links"]},"EngagementFileCreate":{"type":"object","properties":{"file":{"type":"string","format":"binary"},"folder_uuid":{"type":"string","description":"The Folder UUID of the Engagement this File is associated with","format":"uuid"}},"required":["file"]},"FileUploadRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"3e11fc6d-ecd0-4673-8a90-aa787ed391ec"}},"required":["uuid"]},"FileCreate":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]},"EngagementFormReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Form in Fieldguide.","allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"EngagementFormRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"name":{"type":"string","nullable":true,"example":"Client acceptance form"},"description":{"type":"string","nullable":true,"example":"Standard client acceptance questions"},"created_at":{"type":"string","description":"When the Form was attached to the Engagement or Engagement Template.","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","description":"When the Form's metadata was last changed.","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"_links":{"$ref":"#/components/schemas/EngagementFormReadLinks"}},"required":["uuid","name","description","created_at","updated_at","_links"]},"FormTemplateReadLinks":{"type":"object","properties":{"fieldguide":{"description":"A URL the user can visit to view the Form Template in Fieldguide.","allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["fieldguide"]},"FormTemplateRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"name":{"type":"string","example":"Client acceptance form"},"description":{"type":"string","nullable":true,"example":"Standard client acceptance questions"},"created_at":{"type":"string","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"_links":{"$ref":"#/components/schemas/FormTemplateReadLinks"}},"required":["uuid","name","description","created_at","updated_at","_links"]},"FormFieldType":{"type":"string","enum":["short_text","formatted_text","date","number","image","list"],"description":"The value type accepted by this Field."},"FormFieldTypeMetadata":{"type":"object","properties":{"options":{"description":"Current allowed values for a list Field. Submit list values exactly as one of these options.","example":["Approved","Denied"],"type":"array","items":{"type":"string"}}},"required":["options"]},"FormFieldRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"name":{"type":"string","example":"Approval status"},"type":{"description":"The value type accepted by this Field.","allOf":[{"$ref":"#/components/schemas/FormFieldType"}]},"sequence":{"type":"integer","nullable":true,"example":1,"description":"The Fieldguide display order. Null sequences appear first when sorting by sequence ascending and last when sorting descending."},"guidance":{"type":"string","nullable":true,"example":"<p>Choose the status described in the <a href=\"https://example.com/policy\">policy</a>.</p>","description":"Safe canonical HTML for Field guidance. The supported reduced CKEditor markup is paragraphs, line breaks, bold (`strong`), italic (`em`), underline (`u`), strikethrough (`s`), and links (`a` with `href`)."},"type_metadata":{"nullable":true,"description":"Validation metadata for this Field. List Fields expose their current allowed `options`; other Field types return null.","type":"object","allOf":[{"$ref":"#/components/schemas/FormFieldTypeMetadata"}]},"created_at":{"type":"string","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2026-03-10T12:30:00.000Z"}},"required":["uuid","name","type","sequence","guidance","type_metadata","created_at","updated_at"]},"FormFieldSortBy":{"type":"string","enum":["created_at","sequence"]},"FormValueUpdateRead":{"type":"object","properties":{"value":{"type":"string","description":"The Value exactly as stored. Formatted text is returned as stored HTML. This is null for image-backed Values.","nullable":true,"example":"Client acceptance response"},"file_uuid":{"type":"string","description":"The stored File UUID for an image-backed Value; otherwise null.","format":"uuid","nullable":true,"example":"7d50d252-be0c-4d69-b77a-5bbdfef83f55"},"created_at":{"type":"string","description":"When the Value was first stored.","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","description":"When the stored Value was last changed.","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"has_pending_track_changes":{"type":"boolean","description":"Whether this formatted-text Value has unresolved track-change suggestions.","nullable":false,"example":false},"field_uuid":{"type":"string","description":"The UUID of the Form Field whose Value was committed.","format":"uuid","example":"82de76c4-964b-4519-94cf-7ce6b6d409f7"}},"required":["value","file_uuid","created_at","updated_at","has_pending_track_changes","field_uuid"]},"FormValueTrackedChangesPolicy":{"type":"string","enum":["FAIL","DISCARD"],"description":"Controls unresolved tracked changes on targeted Values. Defaults to FAIL when omitted. FAIL rejects the entire batch. DISCARD rejects unresolved suggestions atomically before replacing the Values."},"FormValueUpdateItem":{"type":"object","properties":{"field_uuid":{"type":"string","description":"The UUID of the Form Field whose Value to set or clear.","format":"uuid","example":"82de76c4-964b-4519-94cf-7ce6b6d409f7"},"value":{"type":"string","description":"The opaque Value to store. Use null to clear the stable Value slot. Non-null Values may contain at most 500,000 characters under Fieldguide's native validation semantics, which count Unicode surrogate pairs and base-character-plus-FE0E/FE0F presentation sequences as one character. Formatted-text HTML is canonicalized by Fieldguide. Image Values can be cleared but cannot be assigned through this endpoint.","nullable":true,"example":"Client acceptance response"}},"required":["field_uuid","value"],"additionalProperties":false},"FormValuesUpdate":{"type":"object","properties":{"tracked_changes_policy":{"description":"Controls unresolved tracked changes on targeted Values. Defaults to FAIL when omitted. FAIL rejects the entire batch. DISCARD rejects unresolved suggestions atomically before replacing the Values.","allOf":[{"$ref":"#/components/schemas/FormValueTrackedChangesPolicy"}]},"values":{"description":"The partial batch of Form Values to set or clear. Fields omitted from the batch remain unchanged, and each Field may appear only once. The combined length of all non-null Values must not exceed 1,000,000 Unicode code points.","minItems":1,"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/FormValueUpdateItem"}}},"required":["values"],"additionalProperties":false},"FormValueRead":{"type":"object","properties":{"value":{"type":"string","description":"The Value exactly as stored. Formatted text is returned as stored HTML. This is null for image-backed Values.","nullable":true,"example":"Client acceptance response"},"file_uuid":{"type":"string","description":"The stored File UUID for an image-backed Value; otherwise null.","format":"uuid","nullable":true,"example":"7d50d252-be0c-4d69-b77a-5bbdfef83f55"},"created_at":{"type":"string","description":"When the Value was first stored.","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","description":"When the stored Value was last changed.","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"has_pending_track_changes":{"type":"boolean","description":"Whether this formatted-text Value has unresolved track-change suggestions.","nullable":false,"example":false}},"required":["value","file_uuid","created_at","updated_at","has_pending_track_changes"]},"EngagementFormFieldRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"name":{"type":"string","example":"Approval status"},"type":{"description":"The value type accepted by this Field.","allOf":[{"$ref":"#/components/schemas/FormFieldType"}]},"sequence":{"type":"integer","nullable":true,"example":1,"description":"The Fieldguide display order. Null sequences appear first when sorting by sequence ascending and last when sorting descending."},"guidance":{"type":"string","nullable":true,"example":"<p>Choose the status described in the <a href=\"https://example.com/policy\">policy</a>.</p>","description":"Safe canonical HTML for Field guidance. The supported reduced CKEditor markup is paragraphs, line breaks, bold (`strong`), italic (`em`), underline (`u`), strikethrough (`s`), and links (`a` with `href`)."},"type_metadata":{"nullable":true,"description":"Validation metadata for this Field. List Fields expose their current allowed `options`; other Field types return null.","type":"object","allOf":[{"$ref":"#/components/schemas/FormFieldTypeMetadata"}]},"created_at":{"type":"string","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"value":{"nullable":true,"description":"The current stored Value for this Field. Null when the Field is unanswered or cleared.","type":"object","allOf":[{"$ref":"#/components/schemas/FormValueRead"}]}},"required":["uuid","name","type","sequence","guidance","type_metadata","created_at","updated_at","value"]},"TimeTrackingFileRead":{"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","format":"uri","example":"https://example.com/document.docx","nullable":true},"url_expiration":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"report_data_processed_at":{"type":"string","format":"date-time","example":"2023-01-01T12:30:00.000Z","nullable":true},"record_count":{"type":"number","example":1000,"nullable":false}},"required":["name","size","mime_type","url","url_expiration","report_data_processed_at","record_count"]},"TimeTrackingFileCreate":{"type":"object","properties":{"report_start":{"type":"string","example":"2025-01-01T12:30:00.000Z"},"report_end":{"type":"string","example":"2025-01-01T12:30:00.000Z"}},"required":["report_start","report_end"]},"MilestoneAssociatedEngagementStatus":{"type":"string","enum":["Pending","In Progress","Complete","Archived"],"description":"An optional association to an Engagement lifecycle phase. It does not change the Engagement's current status or determine Milestone completion."},"MilestoneUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"example":"Planning complete"},"due_date":{"type":"string","format":"date","example":"2026-03-15","nullable":true},"sequence":{"type":"integer","minimum":0,"maximum":32767,"example":1,"description":"The Milestone's stored display sequence."},"client_can_view":{"type":"boolean","description":"Whether client users can view the Milestone."},"owner_user_uuid":{"type":"string","format":"uuid","nullable":true,"description":"UUID of the firm user assigned to own the Milestone."},"associated_engagement_status":{"nullable":true,"description":"An optional association to an Engagement lifecycle phase. It does not change the Engagement's current status or determine Milestone completion.","allOf":[{"$ref":"#/components/schemas/MilestoneAssociatedEngagementStatus"}]}},"additionalProperties":false},"MilestoneReadLinks":{"type":"object","properties":{"self":{"description":"The canonical API URL for this Milestone","example":{"href":"https://api.fieldguide.io/v1/milestones/4d50d252-be0c-4d69-b77a-5bbdfef83f54","title":"Fetch this Milestone","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]},"collection":{"description":"The visible Milestones collection for the parent Engagement","example":{"href":"https://api.fieldguide.io/v1/engagements/821e8d9e-d2a8-480f-9187-5a685d3d0d71/milestones","title":"List Milestones for this Engagement","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]},"engagement":{"description":"The canonical API URL for the parent Engagement","example":{"href":"https://api.fieldguide.io/v1/engagements/821e8d9e-d2a8-480f-9187-5a685d3d0d71","title":"Fetch the parent Engagement","type":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]},"fieldguide":{"description":"A Fieldguide Engagement dashboard link containing this Milestone's UUID","example":{"href":"https://app.fieldguide.io/engagements/82027/dashboard?milestone=4d50d252-be0c-4d69-b77a-5bbdfef83f54","title":"Open the parent Engagement in Fieldguide","type":"text/html"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["self","collection","engagement","fieldguide"]},"MilestoneRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"engagement_uuid":{"type":"string","format":"uuid","example":"821e8d9e-d2a8-480f-9187-5a685d3d0d71","description":"UUID of the Engagement that owns this Milestone."},"name":{"type":"string","example":"Planning complete"},"sequence":{"type":"integer","example":2,"description":"The Milestone's display order within its Engagement."},"associated_engagement_status":{"nullable":true,"description":"An optional association to an Engagement lifecycle phase. It does not represent the Engagement's current status or determine Milestone completion.","allOf":[{"$ref":"#/components/schemas/MilestoneAssociatedEngagementStatus"}]},"due_date":{"type":"string","format":"date","example":"2026-03-15","nullable":true},"completed_at":{"type":"string","format":"date-time","example":"2026-03-10T12:30:00.000Z","nullable":true,"description":"The authoritative completion indicator. Null means the Milestone is incomplete."},"completed_by_user_uuid":{"type":"string","format":"uuid","example":"6b242248-e2b9-4d41-8986-11b710860048","nullable":true,"description":"UUID of the user who completed the Milestone."},"owner_user_uuid":{"type":"string","format":"uuid","example":"ee196968-2a7a-48e9-97f9-d12f26a8ff94","nullable":true,"description":"UUID of the user assigned to own the Milestone."},"client_can_view":{"type":"boolean","example":true,"description":"Whether client users can view the Milestone."},"created_at":{"type":"string","format":"date-time","example":"2026-02-01T12:30:00.000Z"},"updated_at":{"type":"string","format":"date-time","example":"2026-03-10T12:30:00.000Z"},"_links":{"$ref":"#/components/schemas/MilestoneReadLinks"}},"required":["uuid","engagement_uuid","name","sequence","associated_engagement_status","due_date","completed_at","completed_by_user_uuid","owner_user_uuid","client_can_view","created_at","updated_at","_links"]},"MilestoneCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"example":"Planning complete","description":"The name of the Milestone."},"due_date":{"type":"string","format":"date","example":"2026-03-15","nullable":true},"sequence":{"type":"integer","minimum":0,"maximum":32767,"example":1,"description":"The Milestone's stored display sequence."},"client_can_view":{"type":"boolean","example":false,"description":"Whether client users can view the Milestone. Defaults to false when omitted."},"owner_user_uuid":{"type":"string","format":"uuid","nullable":true,"description":"UUID of the firm user assigned to own the Milestone."},"associated_engagement_status":{"nullable":true,"description":"An optional association to an Engagement lifecycle phase. It does not change the Engagement's current status or determine Milestone completion.","allOf":[{"$ref":"#/components/schemas/MilestoneAssociatedEngagementStatus"}]}},"required":["name","sequence"],"additionalProperties":false},"MilestoneSortBy":{"type":"string","enum":["created_at","sequence"]},"CommentReadLinks":{"type":"object","properties":{"self":{"description":"A URL the user can fetch the Comment","example":{"href":"https://api.fieldguide.io/v1/comments/5919b6e8-9ea9-4cf0-9598-3a44cad3c7f7","title":"Fetch this Comment","example":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["self"]},"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"]},"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"]},"RequestCommentBulkCreateItem":{"type":"object","properties":{"request_uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"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":["request_uuid","content"]},"RequestCommentBulkCreate":{"type":"object","properties":{"comments":{"minItems":1,"maxItems":50,"type":"array","items":{"$ref":"#/components/schemas/RequestCommentBulkCreateItem"}}},"required":["comments"]},"CommentContextReadLinks":{"type":"object","properties":{"context_object":{"description":"A URL the user can fetch the Comment's Context","example":{"href":"https://api.fieldguide.io/v1/requests/9ddae459-8b25-41ef-a30d-d4c35d5915c9","title":"Fetch the Request this comment was left on","example":"application/json"},"allOf":[{"$ref":"#/components/schemas/HalLink"}]}},"required":["context_object"]},"CommentContextRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"4d50d252-be0c-4d69-b77a-5bbdfef83f54"},"type":{"type":"string","enum":["request"],"example":"request","description":"The kind of object this comment is attached to."},"_links":{"$ref":"#/components/schemas/CommentContextReadLinks"}},"required":["uuid","type","_links"]},"WebhookResource":{"type":"string","enum":["comments","companies","engagements","milestones","requests","users"],"description":"One or more resources to fire webhooks for. Available resources include comments, companies, engagements, milestones, requests, users. If `null`, webhooks will fire for all resources."},"WebhookRead":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"d952a7a8-3f88-46d0-b4de-ec690d97105c","description":"The unique ID for the webhook, referenced as `webhook_uuid` in webhook requests"},"description":{"type":"string","description":"A human-readable description of the webhook's use","example":"Firm internal systems"},"scopes":{"type":"array","nullable":true,"description":"One or more resources to fire webhooks for. Available resources include comments, companies, engagements, milestones, requests, users. If `null`, webhooks will fire for all resources.","example":["requests","users"],"items":{"$ref":"#/components/schemas/WebhookResource"}},"url":{"type":"string","format":"uri","example":"https://company-xyz.com/my-webhook-endpoint"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"}},"required":["uuid","description","scopes","url","created_at"]},"WebhookAction":{"type":"string","enum":["created","updated","deleted"]},"WebhookObjectType":{"type":"string","enum":["comments","companies","engagements","milestones","requests","users"]},"WebhookPayload":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","description":"The unique ID for the event","example":"c7e4afd8-1b56-4621-83ad-86ec735fc23d"},"timestamp":{"format":"date-time","type":"string","description":"When the event occurred","example":"2023-01-01T12:30:00.000Z"},"action":{"allOf":[{"$ref":"#/components/schemas/WebhookAction"}]},"object_type":{"allOf":[{"$ref":"#/components/schemas/WebhookObjectType"}]},"object_uuid":{"type":"string","format":"uuid","description":"The UUID of the specific object for the event","example":"80d6783f-575d-4433-9dd8-25b81b2bad85"},"metadata":{"type":"array","description":"Array of metadata key-value pairs","example":[{"key":"company_uuid","value":"d952a7a8-3f88-46d0-b4de-ec690d97105c"},{"key":"engagement_uuid","value":"066a9ebd-07cf-458e-b506-dd66fab9cbcc"},{"key":"webhook_uuid","value":"5c8d4284-84f0-427c-be10-e350f7093a48"},{"key":"updated_property","value":"status"}],"items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}}},"required":["uuid","timestamp","action","object_type","object_uuid","metadata"]},"WebhookReadWithSecret":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","example":"d952a7a8-3f88-46d0-b4de-ec690d97105c","description":"The unique ID for the webhook, referenced as `webhook_uuid` in webhook requests"},"description":{"type":"string","description":"A human-readable description of the webhook's use","example":"Firm internal systems"},"scopes":{"type":"array","nullable":true,"description":"One or more resources to fire webhooks for. Available resources include comments, companies, engagements, milestones, requests, users. If `null`, webhooks will fire for all resources.","example":["requests","users"],"items":{"$ref":"#/components/schemas/WebhookResource"}},"url":{"type":"string","format":"uri","example":"https://company-xyz.com/my-webhook-endpoint"},"created_at":{"format":"date-time","type":"string","example":"2023-01-01T12:30:00.000Z"},"secret":{"type":"string","example":"trN7inAfsWlDy8VeqVB3","description":"A 20-character secret used for HMAC signing"}},"required":["uuid","description","scopes","url","created_at","secret"]},"WebhookCreate":{"type":"object","properties":{"description":{"type":"string","example":"Company XYZ Integration"},"scopes":{"type":"array","nullable":true,"description":"One or more resources to fire webhooks for. Available resources include comments, companies, engagements, milestones, requests, users. If `null`, webhooks will fire for all resources.","example":["requests","users"],"items":{"$ref":"#/components/schemas/WebhookResource"}},"url":{"type":"string","format":"uri","example":"https://company-xyz.com/my-webhook-endpoint"}},"required":["description","url"]},"WebhookUpdate":{"type":"object","properties":{"description":{"type":"string","example":"Company XYZ Integration"},"scopes":{"type":"array","nullable":true,"description":"One or more resources to fire webhooks for. Available resources include comments, companies, engagements, milestones, requests, users. If `null`, webhooks will fire for all resources.","example":["requests","users"],"items":{"$ref":"#/components/schemas/WebhookResource"}}}},"ApiResource":{"type":"string","description":"The API resource this scope grants access to. Expected values include: `comments`, `companies`, `controls`, `engagements`, `requests`, `users`, `webhooks`, `files`, `forms`, `sheets`, `sheet-columns`, `sheet-rows`, `insights`, `jobs`, `milestones`, `folders`. This list is not exhaustive; additional values can be added over time."}}},"security":[{"bearer":[]}],"externalDocs":{"description":"Fieldguide API Documentation","url":"https://fieldguide.com/developers"}}