Skip to content

Rate Limits

The Fizzy MCP hosted service implements rate limiting to ensure fair usage and maintain service quality for all users. This page explains how rate limits work, what tiers are available, and how to monitor your usage.

Rate limits are applied on a per-token basis, meaning each unique Fizzy Personal Access Token has its own rate limit counters. Limits reset daily at midnight UTC.

The hosted service has three rate limit tiers:

Anonymous

100 writes/day 1,000 reads/day Default tier when using only a Fizzy token without an API key.

Authenticated

1,000 writes/day 10,000 reads/day 10x higher limits when using an API key.

Admin

Unlimited Unlimited Reserved for internal use and special accounts.

TierWrites/DayReads/DayHow to Get
Anonymous1001,000Default (Fizzy token only)
Authenticated1,00010,000Add X-API-Key header
AdminUnlimitedUnlimitedInternal/special accounts

Understanding what operations count as writes versus reads helps you manage your rate limits effectively.

Write operations modify data in Fizzy. Each write operation counts as 1 write against your daily limit.

ToolOperation
fizzy_create_cardCreate a new card
fizzy_update_cardUpdate card title, description, or tags
fizzy_delete_cardDelete a card
fizzy_close_cardMark a card as complete
fizzy_reopen_cardReopen a closed card
fizzy_postpone_cardMove card to Not Now
fizzy_triage_cardMove card to a column
fizzy_untriage_cardRemove card from column
fizzy_tag_cardToggle a tag on a card
fizzy_assign_cardAssign/unassign a user
fizzy_watch_cardSubscribe to notifications
fizzy_unwatch_cardUnsubscribe from notifications
fizzy_pin_cardPin a card
fizzy_unpin_cardUnpin a card
fizzy_mark_goldenMark card as important
fizzy_unmark_goldenRemove golden status
fizzy_create_boardCreate a new board
fizzy_update_boardUpdate board settings
fizzy_delete_boardDelete a board
fizzy_publish_boardMake board public
fizzy_unpublish_boardMake board private
fizzy_create_columnCreate a new column
fizzy_update_columnUpdate column settings
fizzy_delete_columnDelete a column
fizzy_create_commentAdd a comment
fizzy_update_commentEdit a comment
fizzy_delete_commentDelete a comment

Read operations retrieve data from Fizzy without modifying it. Each read operation counts as 1 read against your daily limit.

ToolOperation
fizzy_get_identityGet current user info
fizzy_get_accountGet account settings
fizzy_list_boardsList all boards
fizzy_get_boardGet board details
fizzy_list_cardsList/search cards
fizzy_get_cardGet card details
fizzy_list_columnsList columns on a board
fizzy_get_columnGet column details
fizzy_list_commentsList comments on a card
fizzy_get_commentGet comment details
fizzy_list_tagsList all tags
fizzy_list_usersList account users
fizzy_get_userGet user details

Every response from the hosted service includes headers that tell you your current rate limit status. Use these to monitor your usage and avoid hitting limits.

HeaderDescriptionExample
X-RateLimit-LimitMaximum requests for this operation type100
X-RateLimit-RemainingRequests remaining until reset73
X-RateLimit-ResetUTC datetime when limits reset2024-01-16T00:00:00Z
X-User-TierYour current rate limit tierauthenticated
HTTP/2 200 OK
Content-Type: application/json
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 847
X-RateLimit-Reset: 2024-01-16T00:00:00Z
X-User-Tier: authenticated

This example shows:

  • User has 1,000 writes/day limit (authenticated tier)
  • 847 writes remaining until reset
  • Limits reset at midnight UTC on January 16, 2024
  • User is on the authenticated tier
Terminal window
curl -I -X POST https://fizzy-mcp-hosted.ryanyogan.workers.dev/mcp \
-H "Content-Type: application/json" \
-H "X-Fizzy-Token: fz_your_token_here" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

The -I flag shows only headers, and tools/list doesn’t count against limits, so this is a free way to check your status.

Rate limits reset daily at midnight UTC (00:00:00 UTC).

TimezoneReset Time
UTC00:00 (midnight)
US Pacific (PST)16:00 (4 PM previous day)
US Eastern (EST)19:00 (7 PM previous day)
UK (GMT)00:00 (midnight)
Central Europe (CET)01:00 (1 AM)
Japan (JST)09:00 (9 AM)
Australia (AEST)10:00 (10 AM)

When you exceed your rate limit, the hosted service returns a 429 Too Many Requests response.

{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32000,
"message": "Rate limit exceeded. Limit: 100 writes/day. Resets at: 2024-01-16T00:00:00Z",
"data": {
"type": "write",
"limit": 100,
"remaining": 0,
"reset": "2024-01-16T00:00:00Z",
"tier": "anonymous"
}
}
}
HTTP/2 429 Too Many Requests
Content-Type: application/json
Retry-After: 3600
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 2024-01-16T00:00:00Z
X-User-Tier: anonymous

The Retry-After header indicates how many seconds to wait before retrying.

  1. Check the Retry-After header to know when you can retry

  2. Check the X-RateLimit-Reset header to know when limits fully reset

  3. Consider upgrading to the authenticated tier for 10x more requests

  4. Batch operations where possible to reduce total request count

  5. Cache read results locally when data doesn’t change frequently

For Anonymous Tier (100 writes, 1,000 reads)

Section titled “For Anonymous Tier (100 writes, 1,000 reads)”
  • Cache board and card lists locally - Use fizzy_list_cards with filters instead of fetching all cards - Avoid repeatedly fetching the same card details - Use fizzy_get_board once to get board metadata

For Authenticated Tier (1,000 writes, 10,000 reads)

Section titled “For Authenticated Tier (1,000 writes, 10,000 reads)”

The authenticated tier provides 10x more capacity, which is sufficient for most professional workflows:

  • 1,000 writes/day = ~40 writes/hour over a 24-hour period
  • 10,000 reads/day = ~400 reads/hour

This is typically enough for:

  • Creating 50-100 cards per day
  • Heavy searching and filtering
  • Automation workflows with multiple AI agents
  • Team collaboration scenarios

Most AI agents will show rate limit errors when they occur. You can also ask your AI assistant:

“What are my current Fizzy rate limits?”

The response will include information from the rate limit headers.

Build monitoring into your integration:

async function callFizzy(method: string, params: any) {
const response = await fetch('https://fizzy-mcp-hosted.ryanyogan.workers.dev/mcp', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Fizzy-Token': process.env.FIZZY_TOKEN,
'X-API-Key': process.env.FIZZY_API_KEY,
},
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method,
params,
}),
});
// Log rate limit status
console.log({
limit: response.headers.get('X-RateLimit-Limit'),
remaining: response.headers.get('X-RateLimit-Remaining'),
reset: response.headers.get('X-RateLimit-Reset'),
tier: response.headers.get('X-User-Tier'),
});
return response.json();
}

For most users, the Authenticated tier (1,000 writes/day) is sufficient. If you have specific needs that exceed this, contact us to discuss options.

Yes, rate limits are per-token, so each Fizzy account (token) has its own limits. Using multiple tokens would give you separate limits, but this should align with having legitimate separate Fizzy accounts.

Run Fizzy MCP locally with npx @fizzy-mcp/server. Local mode has no rate limits.

Reads and writes have separate limits. Using all your reads doesn’t affect your write limit, and vice versa.

No. Only successful requests (2xx responses) count against your rate limits. Validation errors (4xx) and server errors (5xx) do not consume your quota.