Verify a certificate by id

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
GET /certificates/{certificateId}/verify

Public, no sign-in; at most 20 requests a minute. Returns the public details of a certificate: status, which side created it, collection and issue dates, custodian, device, item and message counts, date range and data hash. Returns 404 for an unknown id.

Path parameters

  • certificateId string Required

    Certificate ID (e.g., HC-2026-05-15-A1B2-1F3)

Responses

  • 200 application/json
    Hide response attributes Show response attributes object
    • data object Required
      Hide data attributes Show data attributes object
      • selectedMessageUpload object
      • certificateId string Required
      • status string Required

        Values are verified, partial, or revoked.

      • generatedBySide string Required

        Values are org or opposing_council.

      • collectionDate string | null Required
      • custodianName string | null Required
      • collectionId string | null Required
      • dataHash string | null Required
      • itemsCollected number | null Required
      • issuedAt string | null Required
      • requestingAttorney string | null Required
      • deviceName string | null Required
      • deviceModel string | null Required
      • conversationCount number | null Required
      • totalMessages number | null Required
      • dataDateRange object | null Required
      • extractionCode string | null Required
    • statusCode number Required
    • timestamp string(date-time) Required
  • 404

    Certificate not found

GET /certificates/{certificateId}/verify
curl \
 --request GET 'http://api.example.com/certificates/{certificateId}/verify' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "data": {
    "selectedMessageUpload": {
      "version": 1,
      "conversations": [
        {
          "messageSharing": {
            "sharedMessageCount": 25,
            "totalMessageCount": 480,
            "totalReportedAt": "2026-05-14T16:05:00.000Z"
          },
          "selectionCoverage": {
            "app": "message",
            "conversationId": 42,
            "mode": "selected_messages",
            "selectedMessageCount": 25,
            "eligibleMessageCount": 480,
            "includedMessageCount": 25,
            "omittedEligibleMessageCount": 455,
            "selectedNotIncludedCount": 0,
            "totalMessageCount": 480,
            "deviceConversation": "507f1f77bcf86cd799439011",
            "ingestionStatus": "completed",
            "ingestedMessageCount": 25,
            "verifiedAt": "2026-05-14T16:10:00.000Z",
            "completedAt": "2026-05-14T16:10:00.000Z",
            "failedAt": null,
            "isPartial": true,
            "coverage": "selected_messages",
            "eligibleScope": "after_date_and_incremental_filters",
            "uploadAttemptId": "3f2b8c1e-9a4d-4e7b-8c2f-1d5e6a7b8c9d",
            "deviceBackupId": "65a1b2c3d4e5f6a7b8c9d0e2",
            "reportOrder": "2026-05-14T16:00:00.000Z:65a1b2c3d4e5f6a7b8c9d0e2"
          }
        }
      ]
    },
    "certificateId": "HC-2026-05-15-A1B2-1F3",
    "status": "verified",
    "generatedBySide": "org",
    "collectionDate": "2026-05-14T16:02:00.000Z",
    "custodianName": "Jane Doe",
    "collectionId": "A1B2C3",
    "dataHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "itemsCollected": 1520,
    "issuedAt": "2026-05-15T09:30:00.000Z",
    "requestingAttorney": "John Smith",
    "deviceName": "iPhone",
    "deviceModel": "iPhone 15",
    "conversationCount": 12,
    "totalMessages": 1480,
    "dataDateRange": {
      "start": "2025-01-01",
      "end": "2026-05-14"
    },
    "extractionCode": "A1B2C3"
  },
  "statusCode": 200,
  "timestamp": "2026-01-15T10:15:00.000Z"
}