Usage

X bills its API per call. Every X account connects through Adeli's one X app, so Adeli pays X for each call and passes the cost on to you at X's published prices, with no markup. Each call is recorded against your account as it happens, and this endpoint reports the running total.

The other providers do not bill per call, so this page covers X only.

X needs billing set up

Until billing is set up for your account, connecting an X account returns 402 x_billing_required, and so does every call that would cost money. Contact Adeli to have X enabled.

What costs money

Adeli records a call only when X accepted it: a request X rejects is free.

post.create$0.015
Publishing a post, or each post in a thread.
post.create_url$0.200
Publishing a post whose text contains a link, including a bare domain such as example.com.
post.delete$0.005
Deleting a post.
post.read_owned$0.001
Each post returned when you list an X account's posts. Listing posts includes X only when you ask for platform=x or an X accountId.
user.read_owned$0.001
Reading the account's profile, which happens once when it connects.
media.upload$0.000
Uploading an image or video. X does not list a price; it is recorded so totals can be checked against X's own.

X charges a resource read twice in the same UTC day once, and so does Adeli. Prices are those on X's pricing page on the date in ratesAsOf.

GET/api/v1/usage/xGet X usage

Returns your X usage for the current UTC calendar month, across every profile and account. Costs are integers in millionths of a dollar, so they add up exactly: 230000 is $0.23.

bash
curl --fail-with-body "$ADELI_URL/api/v1/usage/x" \
  -H "Authorization: Bearer $ADELI_API_KEY"
json
{
  "from": "2026-10-01T00:00:00.000Z",
  "to": "2026-11-01T00:00:00.000Z",
  "ratesAsOf": "2026-10-06",
  "totalCostMicros": 230000,
  "operations": [
    { "operation": "post.create", "resourceType": "post", "resourceCount": 2, "costMicros": 30000 },
    { "operation": "post.create_url", "resourceType": "post", "resourceCount": 1, "costMicros": 200000 }
  ]
}

Errors — 401 unauthorized, 502 database_error.