Receive Clio matter events (internal)

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://docs.usehearsay.com/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "integrations MCP server": {
    "url": "https://docs.usehearsay.com/mcp"
  }
}

Close
POST /legal/clio/webhook/matters

Called by Clio when a matter is created, updated or deleted. Deliveries are signed with the subscription secret and rejected with 401 when the signature is missing or does not match. The registration handshake, which carries an X-Hook-Secret header, is answered by echoing that header. Processing errors are logged and still answered 200, so Clio keeps the subscription.

application/json

Body Required

  • data object Required

    Object with the data

    Hide data attributes Show data attributes object
    • webhook_id number Required

      Webhook ID

    • id number Required

      Record id

    • etag string Required

      Etag of the record

  • meta object Required

    Metadata of the webhook event

    Hide meta attributes Show meta attributes object
    • event string Required

      Event type (created, updated, deleted)

    • model string

      Model name (matter, document, etc)

    • webhook_id number Required

      Webhook ID

Responses

  • 200 application/json
    Hide response attributes Show response attributes object
    • statusCode number Required
    • timestamp string(date-time) Required
POST /legal/clio/webhook/matters
curl \
 --request POST 'http://api.example.com/legal/clio/webhook/matters' \
 --header "Content-Type: application/json" \
 --data '{
  "data": {
    "webhook_id": 42.0,
    "id": 42.0,
    "etag": "string"
  },
  "meta": {
    "event": "string",
    "model": "string",
    "webhook_id": 42.0
  }
}'
Request examples
{
  "data": {
    "webhook_id": 42.0,
    "id": 42.0,
    "etag": "string"
  },
  "meta": {
    "event": "string",
    "model": "string",
    "webhook_id": 42.0
  }
}
Response examples (200)
{
  "statusCode": 200,
  "timestamp": "2026-01-15T10:15:00.000Z"
}