Limits and quotas

What a check costs, how the prepaid balance works, how fast you may call the API, and what happens when a limit is reached.

Prices

openshield is prepaid: you top up a balance in euros, and each check takes what its workflow costs. There is no subscription. Prices exclude VAT and are the beta prices.

ComponentPriceUnit
Nudity and sexual contentEUR 0.001per image
Visual categories (violence, weapons, drugs, hate symbols, custom categories)EUR 0.001per image
Text in imagesEUR 0.002per image
QR codesEUR 0.001per image
Text rules and linksEUR 0.001per started 1,000 characters
Text AI modelsEUR 0.002per started 1,000 characters
Advanced readingEUR 0.002per text it reads

An image costs the components its workflow uses: EUR 0.002 for a usual workflow (nudity and visual categories). A text costs its components for each started 1,000 characters: a 300-character text checked by the AI models costs EUR 0.003, and a 2,500-character one EUR 0.009. The advanced reading runs only on a text the first check sends to review. Each workflow shows what it costs per image and per text in the dashboard, next to its save button. The pricing page has a cost estimate.

Fraud prevention

The fraud prevention API is priced per call, from the same balance. Prices exclude VAT and are the beta prices.

CallPrice
Decision (/fraud/v1/decide)EUR 0.001
Event (/fraud/v1/events, each accepted event of a batch)EUR 0.0002
IP lookup (/fraud/v1/ips/{ip}, each valid address of ips/query)EUR 0.0002
With the network data on, each decision+ EUR 0.0002
With the activity bursts on, each decision+ EUR 0.0005

The network data and the activity bursts hold more in your instance's memory, so a decision costs more while they are on. You turn them on and off in the fraud settings of the dashboard.

Only a call that ends in a 2xx costs anything, and a batch costs for the events the instance accepted or the valid addresses it answered for. Cases, accounts, lists, exports and the other routes are free.

Free use

Every organization gets EUR 2.00 of use each month, with every category and the full answer. It is used before what you bought, and what is left of it does not carry over to the next month. It is one allowance for both products: fraud decisions and events draw on it like moderation checks.

What counts as a check

One image or one text is one check. What it costs depends on the components of its workflow, as the table above shows. A request that does not end in an answer, for example one that gets a 400, a 415 or a 503, costs nothing. On /fraud/v1, a decision is one call to decide and an event is one accepted event, alone or in a batch of up to 100.

Request limits

Limit
Request body15 MB
Image size50 megapixels (12 until your first top-up), and 16,384 pixels on a side
Text length20,000 characters from the second tier (10,000 on the first, 5,000 until your first top-up)
ref1 to 128 characters, no control character
Image downloaded from a url15 MB, 3 redirects, 10 seconds

Rate limit and concurrency

Requests are limited per organization, with a bucket: it holds as many requests as the burst, and refills at the rate per second. A request that finds the bucket empty gets 429 rate_limited with Retry-After. Checks also run a few at a time, as many as your tier's concurrency: another one gets 429 too_many_concurrent with Retry-After.

Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset, so you can slow down before you are refused.

The rate limit also applies to /fraud/v1: a fraud call takes one request from the same bucket as the checks of the organization, with the same burst and rate, and gets 429 rate_limited when it is empty. The concurrency limit does not apply to fraud calls. A fraud request body is at most 1 MiB.

A check waits up to 30 seconds for its turn on the server, then gets 503 busy with Retry-After. Organizations that have never topped up together use at most half of a server's capacity, so the others always keep their share of it.

Tiers

Request limits rise with what you topped up over the last 30 days. Nothing to choose: the tier follows on its own, within the hour.

FreeTier 1Tier 2Tier 3
WhenNever topped upAny top-upEUR 100 in 30 daysEUR 500 in 30 days
Requests per second2103060
Burst52060120
Concurrent checks1248
API keys252050
Workflows31050200
Journal kept7 days30 days30 days30 days
Longest text5,000 characters10,000 characters20,000 characters20,000 characters
Largest image12 megapixels50 megapixels50 megapixels50 megapixels
Advanced readingNoYesYesYes

Your balance

  • Top-ups. Top up from the billing page of the dashboard, by card, from EUR 5. A top-up of EUR 100 or more adds 10%, and one of EUR 500 or more adds 20%. Each top-up comes with its invoice, which you find on the billing page. VAT is added where it applies.
  • Expiry. What you top up stays usable for 12 months. The oldest amounts are used first.
  • Automatic top-up. Turn it on from the billing page: when the balance falls under the amount you choose, your saved card is charged the amount you set. A monthly limit caps what automatic top-ups may charge; when it is reached, they pause until the next month and you get an email. If a charge fails, automatic top-ups turn off and you get an email.
  • Empty balance. When nothing is left, the API answers 429 quota_exceeded until you top up or the next month's free use arrives. Retry-After is the number of seconds until the next month. A check already accepted is finished; if it costs more than what was left, the difference is taken from your next top-up or free use.

Every response carries X-Quota-Used and X-Quota-Limit, in micro-euros (millionths of a euro): what the month's checks cost so far, and where the API stops, which is that cost plus your balance.

Emails about your balance

The members who manage billing (the owner and the billing role) get an email at a verified address:

  • when the balance falls under the amount you set on the billing page;
  • when the month's use passes the amount you set there;
  • when an automatic top-up fails, or pauses at its monthly limit.

Monthly and yearly plans

Organizations that subscribed to a monthly or yearly plan before prepaid use keep it until it ends, with its included checks, overage and spending cap. When it ends, the organization moves to prepaid use with its free use for the month. New plans are not sold.

When you need more

The tiers' limits grow with what you top up. If none fits, write to contact@sway.events.