Guide · Usage and billing

Deliveries use credits; credits are charged once a day.

Usage is metered from what your audience actually receives. Every successful delivery is recorded, closed hours are rolled up at five past each hour, and the organization's credit balance is charged once a day. Your plan adds credits every month.

What counts

  • Each successful delivery (2xx or 304) of an original, a derived image or a raw download is one request.
  • Refused requests (status 400 and above, including quota_exceeded and file_blocked) are never usage.
  • Responses the CDN serves from its cache without reaching img2site are not metered.
  • Uploads and stored bytes are not metered as requests; storage is limited by your plan.

Credits per delivery

A delivery costs one credit per MiB served, rounded up, with a minimum of one. Raw downloads cost twice as much and watermarked images 1.2 times as much. Resizing and format changes add no surcharge.

credits = max(1, ceil(bytes × (raw ? 2 : 1) × (watermark ? 1.2 : 1) / 1 MiB))

The daily charge for a project is the sum of that day's delivery credits times the project's pricing multiplier (1 unless img2site has agreed otherwise), rounded up:

charged_credits = ceil(Σ credits of the day × pricing_multiplier)

When totals become final

Metering schedule
WhenWhat happens
Five past each hourEvery closed hour of the last day is rolled up into hourly totals. A late event updates its hour on the next run.
Two hours after the hourThe hour is final; reconciled_through is the start of the newest final hour.
00:20 UTC dailyEach day's credits are charged to the organization's balance. The last three days are recomputed on every run, so late events raise a charge and corrections refund it; nothing is charged twice.

Reading usage

GET /v1/projects/{slug}/usage?from&to with a key that has files:read (or img2site.usage.get()). from and to are ISO dates or timestamps; the default is the last 30 days and ranges over 90 days are shortened (range_capped: true).

  • storage is the project's current file count and bytes.
  • hourly and daily hold requests, bytes and credits (before the pricing multiplier); charged_credits is what was charged for the day.
  • transforms is reserved and is always 0 today; transforms are not counted separately.
  • credit_balance is the organization's balance.

Usage response

curl "https://api.img2.site/v1/projects/my-store/usage?from=2026-09-01&to=2026-09-24" \
  -H "X-Api-Key: $IMG2SITE_API_KEY"

200 OK
{
  "project_slug": "my-store",
  "from": "2026-09-01T00:00:00.000Z",
  "to": "2026-09-24T00:00:00.000Z",
  "range_capped": false,
  "storage": { "file_count": 1284, "storage_bytes": 734003200 },
  "hourly": [
    { "window_start": "2026-09-23T22:00:00.000Z", "requests": 281, "bytes": 11240321,
      "transforms": 0, "credits": 342, "computed_at": "2026-09-23T23:05:12.000Z" },
    …
  ],
  "daily": [
    { "day": "2026-09-22", "requests": 6120, "bytes": 245118904, "transforms": 0,
      "credits": 7410, "charged_credits": 7410, "hours_closed": 24, "finalized_at": "2026-09-23T00:20:04.000Z" },
    …
  ],
  "credit_balance": 184220,
  "reconciled_through": "2026-09-23T21:00:00.000Z"
}

When the balance reaches zero

After the daily charge takes the balance to zero or below, every project of the organization answers 403 quota_exceeded on delivery, and projects with a callback URL receive a quota.exceeded webhook. When credits are added (a paid billing period), delivery resumes and quota.restored is sent.

Plans and invoices

Subscriptions are managed in the dashboard's Usage & billing page. Checkout and the billing portal are run by Creem, our merchant of record, which calculates applicable taxes at checkout and emails your receipts. Subscriptions renew monthly; Cancel subscription on the same page ends the plan at the end of the paid period, with no further charges. Each paid billing period adds the plan's monthly credits. The plan also sets each project's storage limit; an upload above it answers 403 storage_quota_exceeded. Automatic overages are not enabled.

Common questions

  • Why don't I see today's traffic yet? Hours appear after the rollup at five past the next hour, and the balance changes once a day.
  • Why are there fewer requests than page views? Repeat views served from the CDN cache or the browser cache do not reach img2site and are not metered.
  • Does uploading use credits? No. Only deliveries do.