ToolAssay

Categorize crypto/bank transactions with optional invoice matching and label int

Categorize crypto/bank transactions with optional invoice matching and label interpretation

Answeringour last check, 2026-10-19
1 of 1checks answered this week
1435 msmedian answer time
$0.1listed price per call
$0.1price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://crypto-tx-categorizer-production.up.railway.app/api/v1/categorize

CategoryMarket data
Provider hostcrypto-tx-categorizer-production.up.railway.app
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-19 valid payment request 402$0.1 1435 ms

Example input (from the provider)

{
  "body": {
    "invoices": [
      {
        "amount": 500,
        "client": "Acme Corp",
        "issuedDate": "2026-09-25"
      }
    ],
    "knownLabels": {
      "Figma": "Figma (software)"
    },
    "transactions": [
      {
        "amount": 500,
        "asset": "USDC",
        "counterparty": "Acme Corp",
        "direction": "in",
        "hash": "0xabc1",
        "timestamp": "2026-10-01T09:30:00Z"
      },
      {
        "amount": 15,
        "asset": "USDC",
        "counterparty": "Figma",
        "direction": "out",
        "hash": "0xabc2",
        "timestamp": "2026-10-02T14:05:00Z"
      }
    ]
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "properties": {
            "invoices": {
              "description": "Optional. Expected invoices to match against incoming payments.",
              "items": {
                "properties": {
                  "amount": {
                    "exclusiveMinimum": 0,
                    "type": "number"
                  },
                  "asset": {
                    "description": "Optional. If omitted, the invoice matches any dollar-equivalent asset (USD, USDC, USDT, DAI).",
                    "maxLength": 20,
                    "minLength": 1,
                    "type": "string"
                  },
                  "client": {
                    "description": "Client name, matched against the counterparty.",
                    "maxLength": 120,
                    "minLength": 1,
                    "type": "string"
                  },
                  "issuedDate": {
                    "description": "Optional ISO date; payments before it are not matched.",
                    "type": "string"
                  }
                },
                "required": [
                  "client",
                  "amount"
                ],
                "type": "object"
              },
              "maxItems": 100,
              "type": "array"
            },
            "knownLabels": {
              "additionalProperties": {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              "description": "Optional. Counterparty -> label (e.g. \"Acme Corp (client)\"); labels are interpreted by keyword and direction.",
              "maxProperties": 100,
              "type": "object"
            },
            "ownWallets": {
              "description": "Optional. Transfers to/from these are categorized as Internal transfer.",
              "items": {
                "maxLength": 100,
                "minLength": 1,
                "type": "string"
              },
              "maxItems": 50,
              "type": "array"
            },
            "transactions": {
              "items": {
                "properties": {
                  "amount": {
                    "description": "Positive amount in the transaction's asset.",
                    "exclusiveMinimum": 0,
                    "type": "number"
                  },
                  "asset": {
                    "description": "Currency or token symbol, e.g. USDC, ETH, USD.",
                    "maxLength": 20,
                    "minLength": 1,
                    "type": "string"
                  },
                  "counterparty": {
                    "description": "Who the money came from / went to (address, name or description).",
                    "maxLength": 200,
                    "minLength": 1,
                    "type": "string"
                  },
                  "direction": {
                    "description": "Money in (income) or out (expense) from the account owner's point of view.",
                    "enum": [
                      "in",
                      "out"
                    ],
                    "type": "string"
                  },
                  "hash": {
                    "description": "Your own unique id for the transaction (e.g. a tx hash or bank reference).",
                    "maxLength": 120,
                    "minLength": 1,
                    "type": "string"
                  },
                  "isSelf": {
                    "description": "Optional. Set true when you already know this is a transfer between your own accounts.",
                    "type": "boolean"
                  },
                  "timestamp": {
                    "description": "ISO 8601 date-time.",
                    "type": "string"
                  }
                },
                "required": [
                  "hash",
                  "timestamp",
                  "direction",
                  "counterparty",
                  "amount",
                  "asset"
                ],
                "type": "object"
              },
              "maxItems": 150,
              "minItems": 1,
              "type": "array"
            }
          },
          "required": [
            "transactions"
          ],
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "properties": {
            "summary": {
              "properties": {
                "byCategory": {
                  "additionalProperties": {
                    "type": "integer"
                  },
                  "type": "object"
                },
                "transactionCount": {
                  "type": "integer"
                }
              },
              "required": [
                "transactionCount",
                "byCategory"
              ],
              "type": "object"
            },
            "transactions": {
              "items": {
                "properties": {
                  "amount": {
                    "description": "Positive amount in the transaction's asset.",
                    "exclusiveMinimum": 0,
                    "type": "number"
                  },
                  "asset": {
                    "description": "Currency or token symbol, e.g. USDC, 

This page as JSON