Browse documentation
2026-09-28AutoDataOpen in dashboard

Account and billing

Sign-up, sign-in, plans and trial limits, and how runs are charged in US dollars.

This page covers how to get an account and sign in, what each plan includes, and how runs are charged in US dollars. For keys see API keys.

Creating an account

Sign up at /signup with your email, first name, surname and a password. The password needs at least 8 characters, with one uppercase letter, one lowercase letter and one digit. Each email can have only one account. You are signed in straight away.

A new account is a Trial account with 3 processing attempts, a $0.10 balance and one API key. The sign-up screen shows your 12-digit passcode once. Keep it: it is a second way to sign in.

Signing in

PageCredentialsEndpoint
/loginEmail and passwordPOST /auth/email-login
/passcode_login12-digit passcodePOST /auth/login
  • Each sign-in form allows 10 attempts per 5 minutes from one IP address; more return 429.
  • A sign-in lasts 24 hours and is extended while you use the app.
  • POST /auth/logout signs you out, and GET /auth/status tells you who you are signed in as.

Plans

Every account has one plan (role). Plans are changed by an administrator.

PlanIncludesAPI keysStarting balance
TrialEvery processing feature, within the trial limits below1$0.10
PaidNo trial limits3$10
UnrestrictedAs Paid, with more keys; runs are still charged against a balance15$10 or custom
EnterpriseEnterprise-only settings, per-column lineage, model-family comparison and the full run report; billed at 2×50$10 or custom

Trial limits

  • Tabular files up to 1 MB (1,000,000 bytes).
  • Up to 1 MB of images and 1 MB of audio per run.
  • 3 processing attempts. An attempt is used only when a run completes, so failed runs don't count.

Going over a limit returns 403 with an explanation. GET /auth/trial-status shows how many attempts you have left.

For every plan

  • Requests can be up to 5 GB. The dashboard upload control accepts files up to 1 GB; for larger files use the API or a connector.
  • No plan has a row, column or run-count quota. Runs queue when the workers are busy.

How runs are charged

Balances, prices and charges are in US dollars. A run is charged once, when it completes, from your account balance. Failed and cancelled runs cost nothing. Charges are rounded to the cent, and a run priced above $0 is charged at least $0.01.

Balances previously shown in credits were converted at 1,000,000 credits = $1.

A run is priced on what is in the data, not on the size of the file. Two files of the same size can cost very different amounts.

What raises the priceHow
RowsMore rows cost more, but the price per row falls as a run grows: rows past 1M, 5M, 10M, 50M, 100M and 1B are each billed at a lower rate. Every run has a minimum price per row, however few columns it has.
Columns and their kindsNumbers are the reference. Dates and categories with many values cost more, free text costs the most (neural text more than TF-IDF), and identifier and empty columns cost almost nothing. A value like 140/90 is priced as the columns it splits into.
Missing valuesThe more cells are missing, and the more the gaps concentrate in some columns, the more missing-data handling costs. Complete data makes that step cheap.
Differences in scaleNumeric columns measured on very different scales cost more to scale.
Number of featuresFeature selection costs more as the feature count grows.
StepsEach stage that runs adds its share. Anomaly detection also costs more when columns mix numbers and text or have heavy tails. Synthetic rows are charged per doubling of the row count.
Run typeInference costs about a fifth and retraining about two fifths of preparing the same data.
Plan (Enterprise)2× for Enterprise, 1× for every other plan.
Images, audio, dataset completionImage and audio bytes are charged per GB. Dataset completion and validation are charged per cell.
To limit spending, give each script its own API key with a daily or lifetime spending limit (see API keys), and give automations a Maximum price per run.

Estimate before uploading

Estimate price on the upload screen, and the calculator on the pricing page, take the number of rows and columns and, optionally, the kinds of columns and the share of missing values, and return an estimated range. The more you describe, the narrower it is. Nothing is charged and the range binds nothing.

Exact price after uploading

When you upload a file, every row of it is measured. Small files are measured during the upload. For a larger file the upload screen shows Measuring your data… P%, and the start button stays disabled until the price is ready. The upload screen then shows one exact price for the file and the settings you chose. Dataset completion and validation are included in it.

Starting the run opens a confirmation with that price (Confirm $X and start), and you are charged exactly that amount. If the file or any setting that affects the price changes after you confirmed, the run is not started and the new price is shown for you to confirm. A confirmation expires after 7 days. The finished run shows the amount charged.

A run is never blocked because the balance is too low. If the price is above your balance, the confirmation warns you, but you can still start the run; the balance can go negative. Only a per-key spending limit refuses a run for spending (429).

Runs nobody confirms

API runs started without an exact quote, scheduled runs, triggers, folder listeners and streams are charged the exact price of the data each run actually processes, measured when the run starts. Streams are billed hourly for the rows scored, at the inference rate.

Scheduled runs, triggers and folder listeners can set an optional Maximum price per run ($). A run whose price is above it is held instead of running. It appears under Runs → Waiting for approval with its price and the limit, where you can approve it (it then runs at that price and is charged exactly that) or discard it. You are notified by a job.held webhook event and, if you receive failure emails, by email.

Pricing from the API

Validate the file with POST /api/v1/validate. The response carries a pricing_profile_id and a pricing_status: ready, or measuring for a larger file (poll GET /api/pricing/profile/<id> until its status is ready). Then call POST /api/v1/estimate with the pricing_profile_id and the run settings (tools, output_rows, text_mode, media_bytes, the completion settings, session_type: api, inference or retraining).

curl -X POST https://your-server/api/v1/estimate \
  -H "Authorization: Bearer $AUTODATA_API_KEY" -H "Content-Type: application/json" \
  -d '{"pricing_profile_id": "PROFILE_ID", "tools": {"anomaly": true}, "output_rows": 100000, "session_type": "api"}'

The response is the exact price (quote_id, exact: true, price_usd, a breakdown in dollars). Send the quote_id as config.quote_id on POST /api/v1/process with the same file and the run is charged exactly that price. If the file is not the one that was priced, or the settings no longer price the same, or the quote is older than 7 days, the run is not started and you get 409 with code file_changed, price_changed or quote_expired.

Without a file, send a description instead: input_rows and columns, and optionally column_types (counts of numeric, boolean, categorical_low, categorical_high, datetime, text, identifier) and missing_rate. You get an estimated range (low_usd, high_usd, point_usd), which binds nothing and caps nothing.

The older *_credits fields are deprecated: they are still returned, equal to the dollar amount × 1,000,000, and will be removed in a future version.

Adding funds

Online payment is not available yet. Contact support or your administrator to add funds or change plan. The pricing page explains what the price depends on, in US dollars, with a calculator that returns an estimated range. Large programs with a few recurring use cases can agree a fixed price per use case with a usage allowance instead (contact sales).

Your account pages

PageWhat it shows
Dashboard → ProfileName, email, plan, run statistics, passcode (show, copy, regenerate) and user ID
/accountBalance and amount spent, trial attempts, notification settings, passcode, usage, your last 20 runs
/api_accountSeven tabs: Profile, API Keys, Team API Keys, Session History (last 50 sessions with the amount spent), Usage Tracking (spend and data per stage), API Settings and API Config

On API Config, the saved anomaly-check defaults apply to /api/v1/process runs that turn anomaly detection on, unless the request sends its own anomaly_params. The other API Settings and API Config values are stored but not applied to runs yet. Send the options you need with each request.

Notifications

On /account, the Notifications card has two options: Email me when a run completes and Email me when a run fails. Both are off by default. Emails go to your account email and contain only the outcome, the dataset name and a link. The card can also turn on browser notifications; these appear while a dashboard tab following the run is open in the background. API: GET and PUT /api/notification-preferences, with boolean email_on_complete and email_on_fail.

Closing an account

Self-service deletion is not available yet; contact support. An account can be deactivated, which blocks sign-in and can be undone, or deleted, which is permanent. See Data handling and privacy.