Skip to main content
GET
Twitter hashflags API: list X hashtag emoji
1 credit per hashflag returned · All plans from $0.00012/credit
Use GET /x/hashflags to list X’s hashflags. A hashflag is the custom emoji X shows after a hashtag for a set time. Each returned hashflag costs 1 credit. Filters and limit lower the cost. An empty result costs nothing.

Track branded hashtags

The endpoint lists the hashflags that run now. Send activeOnly=false to add ended and upcoming ones. Use q to keep hashtags that contain your text. startsAt and endsAt give the time X shows each emoji. assetUrl is the emoji image. animations lists the animations X plays, such as on a like. X lists a few hundred hashflags. Send limit when you need only some.

Query parameters

string
Text the hashtag contains, such as football. Case insensitive. A leading # is ignored. Alias: query.
boolean
default:"true"
Keeps hashflags that run now. Send false to add ended and upcoming ones.
integer
Maximum hashflags to return, starting at 1. Omit it for every match. Your credit balance can return fewer. Aliases: pageSize, count, max_results, maxItems, max_items & per_page.

Headers

string
Send a full Xquik account API key.
string
Bearer xq_your_guest_key_here for paid_reads.

Response

200 OK

object[]
Hashflags that match your filters, in X’s order. Hashflag object fields.
string
Hashtag text without #. X also lists some plain phrases.
string
Image of the emoji.
string
When X starts showing the emoji, in UTC.
string
When X stops showing the emoji, in UTC.
boolean
Whether X marks the hashflag for its hashfetti effect.
object[]
Animations X plays for the hashtag. Often empty. Each has context, such as Like, assetUrl, and priority.
number
Hashflags returned and charged.
number
Hashflags that match the filters, before limit.
string
What to send instead. Present only when no hashflag matches.
A filter that matches no hashflag returns an empty list and a message:

401 Unauthenticated

Anonymous requests get WWW-Authenticate: Bearer and a guest wallet checkout action. This is not a Payment challenge.

402 Payment required

Account keys get account options. Guest keys get guest top-up only. No checkout starts automatically. Confirm any payment action.

502 X API unavailable

The read service returned an error. Retry after a short delay.

503 Service busy

Xquik is busy. Wait for Retry-After, then retry.

429 Rate limit exceeded

The Xquik tier limit blocked the request. Use Retry-After when present. Otherwise, use the JSON retryAfter field.

424 Dependency failed

The opt-in normalized contract returns 424 when the read service fails. Send xquik-api-contract: 2026-04-29 to opt in. Default v1 returns 502.

Twitter hashflags API questions

What is a Twitter hashflag?

A hashflag is a custom emoji X shows after a hashtag for a set time. Brands and events use them. Some people call them hashmoji.

How do I list the hashflags that run now?

Call GET /x/hashflags without parameters. The response lists every hashflag X shows at that moment.

How do I find the emoji of 1 hashtag?

Send q with the hashtag text, with or without #. Read assetUrl from the matching hashflag.

How much does a hashflags request cost?

Each returned hashflag costs 1 credit. An empty result costs nothing. Add q or limit to return fewer hashflags.

Does this replace X’s official API?

No. This page documents Xquik, an independent third-party service. It does not document X’s official API.
Next steps. Search tweets finds the posts that use a hashtag.