Skip to content
Gauge

ax-check.com

Increase

increase.com

ax-check.com

Checked 18 September 2026

A

100/100

Agents need your login

Increase's docs and pricing are readable without logging in.

API overview gives curl examples, auth, and OpenAPI links in one page; fees page states exact per-transaction prices with no gating.

1 fix to start with

Concrete changes, backed by what we found.

Onboarding

Give agents a clear login handoff and a way to resume setup.

Agents cannot progress through onboarding without human help. Provide an agent-accessible path through authentication and setup.

Recorded coding sessions

Same task, 3 models, no increase.com account. Recorded 18 September 2026 on Pi.

3 recorded · 2m 17s

2m 17s · recorded

Session findings

Select a finding to see it in context.

piv0.84.2
modelQwen 3.8 Maxcwd/sandbox/repo
Help me build a simple example using Increase. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.
Thinking…

Let me look at the current working directory to understand context.

$ ls -la /sandbox/repo 2>/dev/null | head -50; echo "---"; find /sandbox/repo -maxdepth 2 | head -50{"content":[{"text":"total 16\ndrwxr-xr-x 3 root root 4096 Sep 18 08:00 .\ndrwxr-xr-x 7 root root 4096 Sep 18 23:03 ..\ndrwxr-xr-x 8 root root 4096 Sep 18 08:00…ctrl+o
{"content":[{"text":"total 16\ndrwxr-xr-x 3 root root 4096 Sep 18 08:00 .\ndrwxr-xr-x 7 root root 4096 Sep 18 23:03 ..\ndrwxr-xr-x 8 root root 4096 Sep 18 08:00 .git\n-rw-r--r-- 1 root root  408 Sep 18 08:00 .gitignore\n---\n/sandbox/repo\n/sandbox/repo/.gitignore\n/sandbox/repo/.git\n/sandbox/repo/.git/branches\n/sandbox/repo/.git/COMMIT_EDITMSG\n/sandbox/repo/.git/hooks\n/sandbox/repo/.git/config\n/sandbox/repo/.git/index\n/sandbox/repo/.git/objects\n/sandbox/repo/.git/logs\n/sandbox/repo/.git/HEAD\n/sandbox/repo/.git/refs\n/sandbox/repo/.git/info\n/sandbox/repo/.git/description\n","type":"text"}]}
$ env | grep -i -E "increase|PI_" | sed 's/=.*KEY.*/=<redacted>/' | head -40{"content":[{"text":"PI_CODING_AGENT=true\nPI_REASONING_LEVEL=medium\nPI_SESSION_FILE=/sandbox/.gauge/pi/sessions/2026-09-18T23-03-07-783Z_01a0b6c2-6307-7996-93…ctrl+o
{"content":[{"text":"PI_CODING_AGENT=true\nPI_REASONING_LEVEL=medium\nPI_SESSION_FILE=/sandbox/.gauge/pi/sessions/2026-09-18T23-03-07-783Z_01a0b6c2-6307-7996-9335-8295addc96b4.jsonl\nPI_PROVIDER=gauge-fireworks\nPI_MODEL=accounts/fireworks/models/qwen3p8-max\nPI_SESSION_ID=01a0b6c2-6307-7996-9335-8295addc96b4\nPI_GATEWAY_API_KEY=unused\n","type":"text"}]}
Thinking…

Empty repo. Increase = increase.com, a fintech API (banking-as-a-service) with a Python/TypeScript SDK (increase pip package). Pricing: Increase doesn't have public self-serve pricing — it's a platform requiring an account, and pricing is not published publicly (they charge per account/transaction fees, custom). Also, API keys require signing up and onboarding (KYC/business onboarding) — no free sandbox key obtainable programmatically. Let me check network access and whether the SDK is installed / installable.

Let me check if we have network, and whether there's an INCREASE_API_KEY. There isn't. So realistically I'm blocked on credentials. But I can still write a simple example using the SDK, and explain pricing honestly (not publicly documented; custom/enterprise pricing).

Let me check network quickly.

$ cd /tmp && timeout 25 pip download increase --no-deps -d /tmp/inctest 2>&1 | tail -5; echo "---npm---"; timeout 25 npm view increase version 2>&1 | tail -3{"content":[{"text":" Downloading increase-0.544.0-py3-none-any.whl.metadata (17 kB)\nDownloading increase-0.544.0-py3-none-any.whl (745 kB)\n ━━━━━━━━━━━━━━…ctrl+o
{"content":[{"text":"  Downloading increase-0.544.0-py3-none-any.whl.metadata (17 kB)\nDownloading increase-0.544.0-py3-none-any.whl (745 kB)\n   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 745.8/745.8 kB 170.6 kB/s  0:00:03\nSaved ./inctest/increase-0.544.0-py3-none-any.whl\nSuccessfully downloaded increase\n---npm---\n0.588.0\n","type":"text"}]}
Thinking…

Network works. Install the SDK and write an example. But we have no API key — I can't run it against the real API. Increase does have a sandbox environment? Increase's API base is https://api.increase.com; they offer a sandbox mode with a sandbox API key obtained from dashboard. Without credentials, I can't execute.

Let me install and write a runnable example that reads INCREASE_API_KEY, plus a dry-run/offline mode that works without credentials so something actually runs. Then report blocked-on-credentials.

Also pricing: Increase doesn't publish pricing publicly. Let me quickly check their pricing page for facts (curl). Be careful with time.

$ cd /tmp && timeout 90 pip install -q increase 2>&1 | tail -3; python -c "import increase,inspect;print(increase.__version__ if hasattr(increase,'__version__') else '')" 2>&1 | tail -2{"content":[{"text":"0.544.0\n","type":"text"}]}
$ timeout 25 curl -sL https://increase.com/pricing -A "Mozilla/5.0" | python3 -c "import sys,re,html;t=sys.stdin.read();t=re.sub(r'<script.*?</script>','',t,flags=re.S);t=re.sub(r'<style.*?</style>','',…{"content":[{"text":" Fees — Increase Products Solutions Developers Pricing Customers Updates Products ACH Checks FedNow Real-Time Payments Push-to-Card Wires B…ctrl+o
timeout 25 curl -sL https://increase.com/pricing -A "Mozilla/5.0" | python3 -c "import sys,re,html;t=sys.stdin.read();t=re.sub(r'<script.*?</script>','',t,flags=re.S);t=re.sub(r'<style.*?</style>','',t,flags=re.S);t=re.sub(r'<[^>]+>',' ',t);print(html.unescape(re.sub(r'\s+',' ',t))[:3000])" 2>&1

{"content":[{"text":" Fees — Increase Products Solutions Developers Pricing Customers Updates Products ACH Checks FedNow Real-Time Payments Push-to-Card Wires Bank Accounts Cards Solutions Bill pay Payroll Wallets Embedded lending Fund administration Vertical SaaS Developers Documentation API Reference Changelog Status Pricing Customers Updates Get started Sign in Sign in Sign up ACH Full control over FedACH Checks Send or deposit checks programmatically FedNow Instant payments from the Federal Reserve Real-Time Payments Move money instantly Push-to-Card Instant payments to billions of cards Wires Plug directly into Fedwire Bank Accounts Flexible accounts for every use case Cards Issue cards instantly Bill pay Programmatically fund, disburse, and reconcile your payment flows Payroll Move high volumes of critical payments with confidence Wallets Instantly open Accounts with a full suite of capabilities Embedded lending Provide instant access to capital through cards or bank transfers Fund administration Manage funds, capital calls, and distributions with ease Vertical SaaS Payments and financial services for vertical SaaS platforms Documentation Learn about Increase and the underlying financial networks ACH Wires Checks Real-Time Payments FedNow Cards Accounts API Reference Changelog Status Increase Technology Fees If you're a financial technology platform moving funds for your customers, or you have large corporate balances, we offer custom pricing. Contact us for details. Monthly fees Monthly fees for users building on Increase vary by use case Contact Sales ACH processing Same-day ACH origination $2.00 / transaction Next-day ACH origination $0.50 / transaction ACH returns $5.00 / transaction Unauthorized returns¹ $15.00 / transaction Late return request processing $25.00 / transaction Wire processing Wire origination $15.00 / transaction Wire drawdown origination $15.00 / transaction Check issuing Printing and mailing fulfilled by Increase $3.00 / check Additional pages $1.00 / page Printing and mailing fulfilled by a third party Contact Sales Overnight shipping Contact Sales Check deposit Remote deposit capture Contact Sales Lockbox addresses $20.00 / address / month Lockbox check deposits $5.00 / check Check returns $10.00 / check Card processing Virtual card creation $0.25 / card Card disputes $15.00 / dispute Physical card creation First 5 free Contact Sales Additional card services Contact Sales Real-Time Payments processing RTP origination $2.50 / transaction Request for payments origination Contact Sales FedNow processing FedNow origination $2.50 / transaction Extended deposit insurance Extended deposit insurance through IntraFi Contact Sales Account Numbers Account number creation First 10 free Contact Sales View First Internet Bank partner fees and interest View Increase Bank interest Save a copy of this page ¹ Unauthorized ACH returns include Return Reason Codes R05, R07, R10, R11, R29, and R51. Products ACH Bank accounts Cards Checks FedNow Real-Time Pay\n","type":"text"}]}
Thinking…

Good, I have real pricing data. Now build a simple example. Since no API key, I'll write a script that works in "dry-run" without credentials? Better: write a real minimal example using the SDK, and verify it at least imports/constructs and fails cleanly without a key. Let me check the SDK's basic resources and whether there's a sandbox base_url.

Let me inspect the SDK client signature and a couple of resources.

$ cd /tmp && python - <<'EOF'{"content":[{"text":"(self, *, api_key: 'str | None' = None, webhook_secret: 'str | None' = None, environment: \"Literal['production', 'sandbox'] | NotGiven\" =…ctrl+o
cd /tmp && python - <<'EOF'
import inspect, increase
print(inspect.signature(increase.Increase.__init__))
c = increase.Increase(api_key="test")
print([a for a in dir(c) if not a.startswith('_')][:60])
print(type(c.accounts), [m for m in dir(c.accounts) if not m.startswith('_')][:20])
EOF

{"content":[{"text":"(self, *, api_key: 'str | None' = None, webhook_secret: 'str | None' = None, environment: \"Literal['production', 'sandbox'] | NotGiven\" = NOT_GIVEN, base_url: 'str | httpx.URL | None | NotGiven' = NOT_GIVEN, timeout: 'float | Timeout | None | NotGiven' = NOT_GIVEN, max_retries: 'int' = 2, default_headers: 'Mapping[str, str] | None' = None, default_query: 'Mapping[str, object] | None' = None, http_client: 'httpx.Client | None' = None, _strict_response_validation: 'bool' = False) -> 'None'\n['account_numbers', 'account_statements', 'account_transfers', 'accounts', 'ach_prenotifications', 'ach_transfers', 'api_key', 'auth_headers', 'base_url', 'beneficial_owners', 'card_disputes', 'card_payments', 'card_purchase_supplements', 'card_push_transfers', 'card_tokens', 'card_validations', 'cards', 'check_deposits', 'check_transfers', 'close', 'copy', 'custom_auth', 'declined_transactions', 'default_headers', 'default_query', 'delete', 'digital_card_profiles', 'digital_wallet_tokens', 'entities', 'entity_onboarding_sessions', 'event_subscriptions', 'events', 'exports', 'external_accounts', 'fednow_transfers', 'file_links', 'files', 'get', 'get_api_list', 'groups', 'inbound_ach_transfers', 'inbound_check_deposits', 'inbound_fednow_transfers', 'inbound_mail_items', 'inbound_real_time_payments_transfers', 'inbound_wire_drawdown_requests', 'inbound_wire_transfers', 'intrafi_account_enrollments', 'intrafi_balances', 'intrafi_exclusions', 'is_closed', 'lockbox_addresses', 'lockbox_recipients', 'max_retries', 'oauth_applications', 'oauth_connections', 'oauth_tokens', 'patch', 'pending_transactions', 'physical_card_profiles']\n<class 'increase.resources.accounts.AccountsResource'> ['balance', 'close', 'create', 'list', 'retrieve', 'update', 'with_raw_response', 'with_streaming_response']\n","type":"text"}]}
Thinking…

Sandbox environment exists: environment="sandbox" → base_url https://sandbox.api.increase.com presumably. Still needs an API key from the dashboard.

I'll write a small example in /sandbox/repo: increase_example.py — read-only: list accounts, show balances; plus optional create entity/account behind a flag. And a README. Then run it to show it fails without credentials (blocked).

Let me check what happens with a bogus key against sandbox quickly (with short timeout).

write /sandbox/repo/increase_example.py{"content":[{"text":"Successfully wrote 3162 bytes to /sandbox/repo/increase_example.py","type":"text"}]}
$ cd /tmp && timeout 40 python -c "{"content":[{"text":"https://sandbox.increase.com\nInvalidAPIKeyError Invalid API key.\n","type":"text"}]}ctrl+o
cd /tmp && timeout 40 python -c "
import increase
c=increase.Increase(api_key='sk_sandbox_bogus', environment='sandbox', timeout=10.0)
print(c.base_url)
try:
    list(c.accounts.list(limit=1).data)
except Exception as e:
    print(type(e).__name__, str(e)[:200])
"

Thinking…

The sandbox call reached the API and returned InvalidAPIKeyError. Good — network works, SDK works, only credentials missing. Let me run the example to show the blocked behavior, and verify error handling works (InvalidAPIKeyError is a subclass of AuthenticationError? Let's check).

$ cd /sandbox/repo && timeout 40 python increase_example.py --sandbox 2>&1 | tail -3; echo "== with bogus key =="; INCREASE_API_KEY=sk_sandbox_bogus timeout 40 python increase_example.py --sandbox 2>&1 …{"content":[{"text":"INCREASE_API_KEY is not set. Create one in the Increase dashboard (Developers -> API Keys); sandbox keys work against the sandbox environme…ctrl+o
cd /sandbox/repo && timeout 40 python increase_example.py --sandbox 2>&1 | tail -3; echo "== with bogus key =="; INCREASE_API_KEY=sk_sandbox_bogus timeout 40 python increase_example.py --sandbox 2>&1 | tail -3; python -c "import increase;print(issubclass(increase.InvalidAPIKeyError, increase.AuthenticationError))"

{"content":[{"text":"INCREASE_API_KEY is not set. Create one in the Increase dashboard (Developers -> API Keys); sandbox keys work against the sandbox environment.\n== with bogus key ==\nbase_url: https://sandbox.increase.com\nAuth failed (bad/invalid API key or wrong environment): Invalid API key.\nTrue\n","type":"text"}]}
Thinking…

Works. Add a short README and requirements. Then answer pricing + manageability + blocked status.

write /sandbox/repo/README.md{"content":[{"text":"Successfully wrote 997 bytes to /sandbox/repo/README.md","type":"text"}]}
write /sandbox/repo/requirements.txt{"content":[{"text":"Successfully wrote 18 bytes to /sandbox/repo/requirements.txt","type":"text"}]}
Thinking…

Done. Now answer the questions.

Pricing (from increase.com/pricing, fetched today):

  • Monthly platform fees vary by use case — contact sales; custom pricing for platforms moving funds for customers / large corporate balances.
  • Per-transaction: same-day ACH $2.00, next-day ACH $0.50, ACH returns $5, unauthorized returns $15, late return request $25; wire origination $15 (drawdown $15); checks $3/check + $1/page; lockbox $20/address/month, lockbox deposits $5/check, check returns $10; virtual card creation $0.25/card, disputes $15; physical cards first 5 free then contact sales; RTP origination $2.50; FedNow origination $2.50; account number creation first 10 free then contact sales. Several items "contact sales".

Manageability: easy for me — clean typed SDK, idempotent REST, sandbox environment, paginated list, no infra. Only friction: credentials/onboarding gated behind dashboard + KYC, and many prices are "contact sales" so I can't compute costs programmatically.

Blocked: no API key available in env; no way to obtain one programmatically. I verified connectivity to sandbox API (got "Invalid API key"), so code path is verified up to auth.

Keep it concise.

Built

/sandbox/repo/increase_example.py + README.md + requirements.txt — a minimal read-only example against Increase's hosted API via the official Python SDK (pip install increase, v0.544.0):

  • builds increase.Increase(api_key=..., environment="sandbox")https://sandbox.increase.com
  • client.accounts.list(limit=10) then client.accounts.balance(id)
  • optional --create-account write op behind a flag
  • clean error mapping (AuthenticationError, APIStatusError)

Verified: SDK installs, client constructs, and a live HTTPS call reaches the sandbox endpoint (it returned InvalidAPIKeyError, which my handler reports cleanly). Nothing local was started; no long-running commands.

Pricing (from increase.com/pricing)

  • Monthly platform fee: varies by use case — Contact Sales. Custom pricing if you're a platform moving funds for customers or hold large corporate balances.
  • ACH: same-day origination $2.00/txn, next-day $0.50/txn, returns $5, unauthorized returns $15, late return request $25.
  • Wires: $15/origination ($15 drawdown).
  • RTP / FedNow: $2.50/origination each.
  • Checks: $3/check (Increase-fulfilled) + $1/extra page; lockbox $20/address/month + $5/check; check returns $10. Third-party fulfillment, overnight, remote deposit capture = Contact Sales.
  • Cards: virtual card creation $0.25/card, disputes $15; physical cards first 5 free, then Contact Sales.
  • Account numbers: first 10 free, then Contact Sales. IntraFi extended deposit insurance = Contact Sales.

Easy for me to manage?

Yes, the API side is easy. Strongly typed SDK, plain REST, pagination, an explicit sandbox environment, and zero infrastructure to run — I can extend it (ACH transfers, webhooks via webhook_secret, cards) without friction. Two real frictions: (1) keys and onboarding are dashboard/KYC-gated, so I can't provision anything myself; (2) most price points are "Contact Sales," so I can't compute or verify costs programmatically.

Blocked

Partially blocked on credentials. There's no INCREASE_API_KEY in this environment and no self-serve endpoint to mint one, so I can't execute a real read or write. Set a sandbox key and re-run — everything up to auth is already verified.

AX Fundamentals

23 checks. Open an area for details.

This check is a quick preview. Test more tasks and models with Gauge Agents.

Test your product with Gauge Agents

AX Check by Gauge