Fieldguide webhooks API

Endpoints used to interact with Fieldguide Webhooks

Operations 4

GET /v1/webhooks List available Fieldguide Webhook subscriptions for the current User #
POST /v1/webhooks Create a new Webhook #
DELETE /v1/webhooks/{uuid} Delete the specified Webhook #
PATCH /v1/webhooks/{uuid} Update the specified Webhook #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fieldguide-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fieldguide-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fieldguide Webhooks API
  description: An API for interacting with the Fieldguide platform
  version: v1
  contact: {}
servers:
- url: https://api.fieldguide.io
  description: Fieldguide API
security:
- bearer: []
tags:
- name: Webhooks
  description: Endpoints used to interact with Fieldguide Webhooks
paths:
  /v1/webhooks:
    get:
      operationId: list_webhooks_v1
      parameters:
      - name: page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 1
      - name: per_page
        required: false
        in: query
        schema:
          type:
          - number
          - 'null'
          default: 50
          minimum: 1
          maximum: 200
      - name: sort_order
        required: false
        in: query
        description: Sort order for paginated results. Use `desc` to reverse the default ascending order.
        schema:
          type: string
          default: asc
          enum:
          - asc
          - desc
      responses:
        '200':
          description: The Webhooks accessible by the user
          content:
            application/json:
              schema:
                allOf:
                - properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/WebhookRead'
                - 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
      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, 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:
                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
      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
      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:
                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
      summary: Update the specified Webhook
      tags:
      - Webhooks
      x-required-scopes:
      - webhooks:write
components:
  schemas:
    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
          - 'null'
          description: One or more resources to fire webhooks for. Available resources include comments, companies, engagements, 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
    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
          - 'null'
          description: One or more resources to fire webhooks for. Available resources include comments, companies, engagements, 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
    WebhookObjectType:
      type: string
      enum:
      - comments
      - companies
      - engagements
      - requests
      - users
    WebhookUpdate:
      type: object
      properties:
        description:
          type: string
          example: Company XYZ Integration
        scopes:
          type:
          - array
          - 'null'
          description: One or more resources to fire webhooks for. Available resources include comments, companies, engagements, requests, users. If `null`, webhooks will fire for all resources.
          example:
          - requests
          - users
          items:
            $ref: '#/components/schemas/WebhookResource'
    WebhookAction:
      type: string
      enum:
      - created
      - updated
      - deleted
    WebhookCreate:
      type: object
      properties:
        description:
          type: string
          example: Company XYZ Integration
        scopes:
          type:
          - array
          - 'null'
          description: One or more resources to fire webhooks for. Available resources include comments, companies, engagements, 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
    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
    WebhookResource:
      type: string
      enum:
      - comments
      - companies
      - engagements
      - requests
      - users
      description: One or more resources to fire webhooks for. Available resources include comments, companies, engagements, requests, users. If `null`, webhooks will fire for all resources.
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
externalDocs:
  description: Fieldguide API Documentation
  url: https://fieldguide.io/developers