PUT https://xquik.com/api/v1/monitors/username/{username}
Creating requires 30 available credits. They pay for the first active monitor hour. Updating a running monitor is free.
Path parameters
Headers
Body
When to use this route
Use it when your app knows the username but not the monitor ID. It replaces a create call, a409 answer & a list search. Agents & schedulers
can send it on every run.How Xquik picks create or update
Xquik looks up the X account for the username, then matches its user ID. Case & a leading@ make no difference. A renamed account keeps its
monitor.- Xquik creates a monitor & answers
201when you have none for the account. - Xquik turns a stopped monitor back on & answers
201. - Xquik updates a running monitor & answers
200.
created is true in a 201 answer & false in a 200 answer. Read it
instead of comparing monitor lists.
An update replaces eventTypes. It changes name only when you send it.
Send null to remove the label.Response
200 Updated
201 Created
The answer has the same fields, andcreated is true.400 Invalid input
eventTypes array, or it holds an unknown event type. A path
that is no X username or user ID gets its own message.401 Missing API key
402 Payment required
402.404 User not found
429 Rate limited
Retry-After header before retrying.Next steps.
- Create Webhook to receive events.
- List Events to audit stored events.
- Get Monitor to fetch one monitor.
- Delete Twitter Account Monitor to stop checks for good.
Response examples
- 400
{ "error": "invalid_input", "message": "Invalid input. Check the request body." } - 401
{ "error": "unauthenticated", "message": "Authentication required. Provide a valid API key or bearer token." } - 402
{ "error": "insufficient_credits", "message": "Insufficient credits. Top up or subscribe to continue." } - 403
{ "error": "api_key_paused", "message": "This API key is paused. Resume it at dashboard.xquik.com/api-keys to use it again." } - 404
{ "error": "user_not_found", "message": "X user not found. Check the username." } - 429
{ "error": "rate_limit_exceeded", "message": "Too many requests. Try again later.", "retryAfter": 60 }