generated: '2026-08-13' method: searched source: https://planable.io/guides/planable-public-api/ name: Planable API Rate Limits description: Published and observed rate limiting for the Planable Public API v1. url: https://planable.io/guides/planable-public-api/ api: Planable Public API v1 base_url: https://api.planable.io/api/v1 limit_count: 2 limits: - scope: per-token applies_to: read methods: [GET] limit: 600 window: 1 minute algorithm: Redis-backed sliding window burst: not published source: https://planable.io/guides/planable-public-api/ method: searched - scope: per-token applies_to: write methods: [POST, PATCH, DELETE] limit: 120 window: 1 minute algorithm: Redis-backed sliding window burst: not published source: https://planable.io/guides/planable-public-api/ method: searched observed: - scope: unauthenticated limit: 60 window: 1 minute (inferred from the reset epoch) method: probed observed_on: 'GET https://api.planable.io/api/v1/posts with no Authorization header (HTTP 401)' headers_returned: x-ratelimit-limit: '60' x-ratelimit-remaining: '59' x-ratelimit-reset: '1786637534' note: >- Requests carrying no token are metered at 60/min, an order of magnitude below the documented 600/min read allowance for an authenticated token. Planable does not document this tier; it is recorded here because it was observed directly. response_headers: - name: X-RateLimit-Limit description: Ceiling for the current window. observed: true - name: X-RateLimit-Remaining description: Requests left in the current window. observed: true - name: X-RateLimit-Reset description: Unix epoch second at which the window resets. observed: true - name: Retry-After description: Not sent. Clients must compute the wait from X-RateLimit-Reset. observed: false published_statement: >- "Every API response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers so your developer can handle rate limits gracefully in code." exhaustion: status: 429 error_code: RATE_LIMITED envelope: '{"error":{"code":"RATE_LIMITED","message":"...","requestId":"..."}}' declared_on: all 51 operations retryable: true guidance: Back off until the epoch second in X-RateLimit-Reset; no Retry-After is provided. quota_limits: note: >- Distinct from request rate limits — plan quotas cap how much CONTENT can exist, and posts created via the API count against them. by_plan: - plan: Free posts: 50 total (lifetime) pages_per_workspace: 4 - plan: Basic posts_per_workspace_per_month: 60 pages_per_workspace: 4 - plan: Pro posts_per_workspace_per_month: 150 pages_per_workspace: 10 - plan: Enterprise posts_per_workspace_per_month: unlimited other_caps: - Up to 10 active API tokens per company. - Up to 5 tracked competitors per page. - Up to 10 media items per post (MCP surface); 100MB per uploaded file (REST). api_plan_gate: New API tokens can only be generated on Pro and Enterprise plans. status_page: https://status.planable.io/public-api x-evidence: fetched: '2026-08-13' probes: - url: https://api.planable.io/api/v1/posts http_status: 401 note: returned x-ratelimit-limit/remaining/reset headers - url: https://planable.io/guides/planable-public-api/ http_status: 200