Approve data for the other side

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 /case/{caseId}/oc-approvals/approve

Opposing counsel approves a data provider's data (all of it, or a subset of items) so the case owner can see it. Approvals add to earlier ones.

Headers

  • organization string Required

    id of the selected (active) organization

Path parameters

  • caseId string Required

    Id of the case

application/json

Body Required

  • dataProviderType string Required

    Type of data provider the approval applies to

    Values are Device, UserEmailDataProvider, CaseFileProvider, FinancialAccountProvider, LegalDocumentProvider, DiscordUserProvider, RedditUserProvider, LinkedInUserProvider, or AiChatProvider.

  • dataProviderId string Required

    Id of the specific data provider document

  • individualIds array[string]

    Ids of individual data items. Empty/omitted means "all" for approve, or "deny all" for reject.

Responses

  • 200 application/json
    Hide response attributes Show response attributes object
    • data object Required
      Hide data attributes Show data attributes object
      • createdAt string(date-time) Required
      • updatedAt string(date-time) Required
      • id string Required
      • dataProviderType string Required

        Values are Device, UserEmailDataProvider, CaseFileProvider, FinancialAccountProvider, LegalDocumentProvider, DiscordUserProvider, RedditUserProvider, LinkedInUserProvider, or AiChatProvider.

      • dataProvider string | null Required
      • mode string Required

        Values are approve_all or approve_subset.

      • individualDataIds array[string] Required
      • case string | null Required
      • originatingOrg string | null Required
      • opposingCouncilOrg string | null Required
      • approvedBy string | null Required
      • approvedAt string(date-time) Required
    • statusCode number Required
    • timestamp string(date-time) Required
POST /case/{caseId}/oc-approvals/approve
curl \
 --request POST 'http://api.example.com/case/{caseId}/oc-approvals/approve' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --header "organization: string" \
 --data '{
  "dataProviderType": "Device",
  "dataProviderId": "string",
  "individualIds": [
    "string"
  ]
}'
Request examples
# Headers
organization: string

# Payload
{
  "dataProviderType": "Device",
  "dataProviderId": "string",
  "individualIds": [
    "string"
  ]
}
Response examples (200)
{
  "data": {
    "createdAt": "2026-01-15T14:30:00.000Z",
    "updatedAt": "2026-01-15T14:30:00.000Z",
    "id": "507f1f77bcf86cd799439011",
    "dataProviderType": "Device",
    "dataProvider": "507f1f77bcf86cd799439014",
    "mode": "approve_all",
    "individualDataIds": [
      "string"
    ],
    "case": "507f1f77bcf86cd799439011",
    "originatingOrg": "507f1f77bcf86cd799439016",
    "opposingCouncilOrg": "507f1f77bcf86cd799439015",
    "approvedBy": "507f1f77bcf86cd799439013",
    "approvedAt": "2026-01-16T10:00:00.000Z"
  },
  "statusCode": 200,
  "timestamp": "2026-01-15T10:15:00.000Z"
}