Tag several recurring transactions

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 /financial-data/recurring-transactions/tags/bulk

Adds the same tags to every listed recurring transaction and returns the updated rows in a data array. If any recurring transaction fails, the request returns 400 with the errors, but tags already added to the others stay. On a case shared with opposing counsel, attachedTags leave out tags the other side added by hand.

application/json

Body Required

  • caseId string Required

    Case ID these recurring transaction streams belong to.

  • streamIds array[string] Required

    Array of recurring transaction stream IDs to tag.

    At least 1 but not more than 500 elements.

  • tagNames array[string] Required

    Array of tag names or tag IDs to add.

    At least 1 but not more than 100 elements.

Responses

  • 201 application/json
    Hide response attributes Show response attributes object
    • data object Required
      Hide data attribute Show data attribute object
      • data array[object]
        Hide data attributes Show data attributes object
        • id string Required
        • plaidItemId string Required
        • streamId string Required
        • averageAmount number | null
        • averageAmountCurrency string | null
        • detailed string | null
        • category string | null
        • createdAt string(date-time) Required
        • description string Required
        • financialAccount string Required
        • firstDate string(date-time) Required
        • frequency string Required
        • isActive boolean Required
        • lastAmount number | null
        • lastDate string(date-time) Required
        • merchantName string | null
        • plaidAccountId string Required
        • predictedNextDate string(date-time) | null
        • status string Required
        • transactionIds array[string] Required
        • type string Required

          Values are inflow or outflow.

        • updatedAt string(date-time) Required
        • tags array[object]
          Hide tags attributes Show tags attributes object
          • id string Required
          • name string Required
        • attachedTags array[object]
          Hide attachedTags attributes Show attachedTags attributes object
          • tagId string Required

            Tag id (Tag._id)

          • tag string Required

            Tag display name (Tag.name)

          • addedBy string Required

            Values are user, ai, auto, auto-import, system, or default.

          • addedById string | null
          • removedAt string(date-time) | null
          • removedBy string | null

            Values are user, ai, auto, auto-import, system, or default.

          • removedById string | null
    • statusCode number Required
    • timestamp string(date-time) Required
POST /financial-data/recurring-transactions/tags/bulk
curl \
 --request POST 'http://api.example.com/financial-data/recurring-transactions/tags/bulk' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{
  "caseId": "string",
  "streamIds": [
    "string"
  ],
  "tagNames": [
    "string"
  ]
}'
Request examples
{
  "caseId": "string",
  "streamIds": [
    "string"
  ],
  "tagNames": [
    "string"
  ]
}
Response examples (201)
{
  "data": {
    "data": [
      {
        "id": "65a1b2c3d4e5f6a7b8c9d0d1",
        "plaidItemId": "65a1b2c3d4e5f6a7b8c9d0a0",
        "streamId": "no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc",
        "averageAmount": 15.49,
        "averageAmountCurrency": "USD",
        "detailed": "ENTERTAINMENT_TV_AND_MOVIES",
        "category": "ENTERTAINMENT",
        "createdAt": "2026-01-10T09:00:00.000Z",
        "description": "STREAMING SERVICE",
        "financialAccount": "65a1b2c3d4e5f6a7b8c9d0e1",
        "firstDate": "2025-03-01T00:00:00.000Z",
        "frequency": "MONTHLY",
        "isActive": true,
        "lastAmount": 15.49,
        "lastDate": "2026-01-01T00:00:00.000Z",
        "merchantName": "Streaming Service",
        "plaidAccountId": "BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp",
        "predictedNextDate": "2026-02-01T00:00:00.000Z",
        "status": "MATURE",
        "transactionIds": [
          "lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje"
        ],
        "type": "outflow",
        "updatedAt": "2026-01-15T14:30:00.000Z",
        "tags": [
          {
            "id": "65a1b2c3d4e5f6a7b8c9d0a1",
            "name": "Responsive"
          }
        ],
        "attachedTags": [
          {
            "tagId": "507f1f77bcf86cd799439011",
            "tag": "Important",
            "addedBy": "user",
            "addedById": "507f1f77bcf86cd799439012",
            "removedAt": "2026-05-04T09:42:00Z",
            "removedBy": "user",
            "removedById": "string"
          }
        ]
      }
    ]
  },
  "statusCode": 201,
  "timestamp": "2026-01-15T10:15:00.000Z"
}