Rate limits

Pipeworx limits calls per identifier per day. Limits depend on your tier; the limit + remaining + reset time are returned on every response in _meta.rateLimit.

Daily limits by tier

TierDaily limitIdentifier
Anonymous50IP address
BYO key500hash of X-API-Key
Free account2,000account ID (from Bearer token)
PaidUnlimited (metered)account ID

Resolution priority: Bearer token > X-API-Key > anonymous (IP). The gateway returns _meta.tier in every response so agents can see which tier they’re on.

What counts as a call

  • Every tools/call invocation = 1 call
  • Every resources/read = 1 call (it dispatches to a tool internally)
  • tools/list, resources/templates/list, prompts/list, prompts/get, initialize = free (don’t count)
  • Compound _intel tools = 1 call (not N for the underlying calls)
  • Internal cache hits = 1 call (the count is for gateway invocations, not upstream API calls)

What doesn’t count

  • pipeworx_feedback — separately rate-limited (5/day) but doesn’t draw from your tool quota
  • Memory tools (remember, recall, forget) — free, KV-only operations

Reading limits in real time

Every response carries:

"_meta": {
  "rateLimit": {
    "limit": 50,
    "remaining": 39,
    "resetAt": "2026-05-10T00:00:00Z"
  },
  "tier": "anonymous"
}

Agents should read this and slow down or escalate before hitting zero.

When you hit the limit

The gateway returns:

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32000,
    "message": "Rate limit exceeded for tier 'anonymous'. Resets at 2026-05-10T00:00:00Z."
  }
}

It does NOT return a tool result — the call doesn’t reach the underlying tool. No partial state.

Strategies to stay under limits

1. Use compound tools

fintech_company_deep_dive({ ticker: "AAPL" }) is 1 call. Calling EDGAR + AlphaVantage + CFPB separately is 3. See Compound tools.

2. Cache at the agent

Pipeworx caches at the gateway with TTL set per tool. If you call the same thing twice within the cache window, you still spend 1 call but the upstream isn’t hit. Cache further at the agent level if that helps your design.

3. Use resolve_entity and compare_entities

These collapse what would be 3–8 individual lookups into 1 meta-tool call. See Meta-tools.

4. Sign up for the free tier (2k/day)

Anonymous-to-free-account is a 40x increase. pipeworx.io/signup takes 30 seconds with GitHub OAuth.

5. Upgrade to paid

Unlimited tool calls, metered per call with budget controls. For agent-heavy workloads, this is usually the right tier.

What about Pipeworx’s underlying API limits?

Some upstream sources (FRED, ATTOM, Reddit, etc.) have their own per-key quotas. If you’re passing _apiKey per call and YOUR FRED key hits FRED’s daily limit, the tool returns upstream_throttled — that’s between you and the upstream provider. Pipeworx doesn’t proxy or cache around upstream rate limits in a way that breaks their TOS.

For paid Verticals (Housing Intel etc.), Pipeworx fronts the upstream relationship. You don’t see their quota; you just see Pipeworx’s.

Support for higher anonymous limits

Doing public-good research and need more than 50/day without auth? File pipeworx_feedback({type: "feature", message: "..."}) with your use case. The team grants exceptions when warranted.

Last reviewed May 8, 2026