Penny Docs
Rules

Dry Run

POST
/v1/households/{household_id}/rules/dry-run

Previews which visible transactions match a proposed rule's conditions without saving a rule or changing transactions. Returns overall match and transaction counts, a page of matches, and daily totals.

Pass next_cursor as cursor to continue with the same conditions; changing conditions requires starting without a cursor. Pages keep complete days together, so the number of matches can exceed min_limit. This POST endpoint requires a read/write token and a household member or owner role even though it only previews matches.

Authorization

PersonalApiToken
AuthorizationBearer <token>

Use your personal API token (penny_pat_…) as the bearer credential. Enter the token only; the client adds the Bearer prefix. Read-only tokens permit read requests. Read/write tokens remain limited by your current household membership and role. See https://penny.finance/docs/api#authentication for setup.

In: header

Path Parameters

household_id*Household Id

Request Body

application/json

filter_uncategorized?Filter Uncategorized
Defaultfalse
account_ids?array<string>|null
merchant_ids?array<string>|null
category_ids?array<string>|null
amount_filter?|null
penny_detailed_categories?array<>|null
name_conditions?array<>|null
cursor?string|null
min_limit?Min Limit
Range1 <= value <= 200
Default50

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/households/string/rules/dry-run" \  -H "Content-Type: application/json" \  -d '{}'
{  "matched_count": 18,  "total_transactions": 436,  "matches": [    {      "id": "Tx3fJ9mS6vBa",      "original_name": "BLUE BOTTLE COFFEE #047",      "user_name": "Morning coffee",      "amount": {        "amount": "68.42",        "currency": "USD"      },      "native_amount": {        "amount": "68.42",        "currency": "USD"      },      "lat": 37.7764,      "lon": -122.4231,      "pending": false,      "penny_taxonomy": "FOOD_AND_DRINK_COFFEE",      "account": {        "id": "Ac7kP2mN9qRs",        "mask": "4821",        "name": "Everyday Checking",        "type": "depository",        "current_balance": {          "amount": "68.42",          "currency": "USD"        },        "currency": "USD",        "household_id": "Hh4vK8pQ2sLm",        "user_name": "Daily spending"      },      "household_finance_category": {        "id": "Ct5nR8wY1jFu",        "name": "Coffee & Dining",        "emoji": "☕️",        "category_type": "income",        "group_id": "Cg2mV7pL4zXe"      },      "merchant": {        "id": "Mr9dL3xT6bQa",        "name": "Blue Bottle Coffee",        "website": "https://www.bluebottlecoffee.com/",        "image_url": "https://cdn.penny.finance/merchants/blue-bottle-coffee.png",        "default_image_url": "https://cdn.penny.finance/merchants/default-coffee.png",        "transaction_count": 18      },      "image_url": "https://cdn.penny.finance/merchants/blue-bottle-coffee.png",      "image_kind": "merchant",      "tags": [        {          "id": "Tg8qN1cK5rWd",          "name": "Work meals",          "color": "#6D5BD0"        }      ],      "is_deleted": false,      "is_hidden": false,      "pending_transaction_id": "Tx3fJ9mS6vBa",      "date": "2019-08-24",      "need_review": false,      "possible_duplicate_ids": [        "Tx3fJ9mS6vBa"      ],      "notes": "Coffee with Sam before work",      "created_at": "2019-08-24T14:15:22Z",      "updated_at": "2019-08-24T14:15:22Z",      "name": "Morning coffee",      "split_from_transaction_id": "Tx3fJ9mS6vBa",      "split_child_ids": [        "Tx3fJ9mS6vBa"      ],      "is_recurring": false    }  ],  "daily_sums": [    {      "date": "2019-08-24",      "amount": {        "amount": "68.42",        "currency": "USD"      }    }  ],  "next_cursor": "eyJkYXRlIjoiMjAyNi0wOC0xMyIsImlkIjoiVHg4YVEya0w1blJlIn0",  "has_more": true}