Why am I getting 401 Unauthenticated?
Why am I getting 401 Unauthenticated?
The API key is missing, invalid, or revoked. Check the following:
- Header name: Must be
x-api-key(lowercase).AuthorizationorX-Api-Keywon’t work. - Key format: Must start with
xq_. If it doesn’t, you’re using the wrong value. - Key revoked: Revoked keys return 401 immediately. Generate a new key from the dashboard.
- Session-only endpoint: The API Keys endpoints (
/api/v1/api-keys/*) require session authentication (browser login), not API key auth. You cannot manage API keys via API key.
Why am I getting 403 Monitor Limit Reached?
Why am I getting 403 Monitor Limit Reached?
Your plan allows 1 monitor by default. Creating a second monitor returns:Solutions:
- Delete an unused monitor to free a slot:
DELETE /api/v1/monitors/{id} - Add more monitors from the dashboard billing page ($10/month each)
- Check your current usage:
GET /api/v1/accountshowsmonitorsAllowedandmonitorsUsed
Webhooks not arriving?
Webhooks not arriving?
Webhooks can fail silently. Walk through this checklist:
- Webhook is active: Verify
isActive: trueviaGET /api/v1/webhooks. Inactive webhooks don’t receive deliveries. - HTTPS required: HTTP endpoints are rejected. Your URL must start with
https://. - Response time: Your endpoint must respond with
2xxwithin 10 seconds. Timeouts count as failures. - Check deliveries: Call
GET /api/v1/webhooks/{id}/deliveriesto see delivery status, attempt count, and error messages. - Local testing: If using ngrok or a tunnel, verify it’s running and the URL is current. Ngrok URLs change on restart (free plan).
- Event type mismatch: Your webhook must subscribe to the event types your monitors produce. A webhook listening for
tweet.newwon’t receivetweet.replyevents.
Monitor not tracking events?
Monitor not tracking events?
If your monitor is active but no events appear:
- Check
isActive: Confirm viaGET /api/v1/monitors/{id}thatisActiveistrue. Paused monitors don’t track. - Event propagation delay: Events take seconds to minutes to appear depending on X API latency. This is normal.
- Event types: Verify your monitor’s
eventTypesarray includes the type you expect. A monitor tracking only["tweet.new"]won’t capture replies or retweets. - Account activity: The monitored X account must actually post content matching your event types. No posts = no events.
- Pagination: If listing events, check
hasMorein the response. Older events may be on subsequent pages.
Getting 429 Too Many Requests?
Getting 429 Too Many Requests?
You’ve exceeded the API rate limit:
Solutions:
| Scope | Limit | Burst |
|---|---|---|
API endpoints (/api/v1/*) | 10 req/s | 20 |
- Implement exponential backoff. Start at 1 second, double on each retry, max 5 retries.
- Check the
Retry-Afterheader for the server-recommended wait time. - Use webhooks instead of polling. Webhooks push events to you in real time, eliminating the need for repeated API calls.
- Batch your logic. Fetch events once per minute instead of once per second.
How do I check my usage?
How do I check my usage?
Call
GET /api/v1/account. The currentPeriod object shows your usage:capMicrocents: Your monthly usage cap (internal unit)usedMicrocents: How much you’ve consumed this period (internal unit)- Remaining:
capMicrocents - usedMicrocents
Can I use the API without a subscription?
Can I use the API without a subscription?
No. An active subscription ($20/month) is required for all API access. Without it:
- API key creation is blocked
- Existing API keys return
401 - Monitors, events, and webhooks are inaccessible
How do I connect an AI agent?
How do I connect an AI agent?
Xquik provides an MCP (Model Context Protocol) server for AI agent integration. 9 tools are available on port 3100.Setup:
- Get your API key from the dashboard
- Configure your AI client with the MCP server URL and API key
- The agent authenticates via the
x-api-keyheader, same as the REST API
- Claude Desktop
- Claude Code
- Any MCP-compatible AI agent