Skip to content
Account & billing

Account & billing

Plans, credits, usage, limits, and your API key.

Manage your Scrape.ly account: profile, plan and credits, usage, limits, and API key. Most of this lives under Billing and Settings in the dashboard; the matching endpoints are in the Users API.

Profile

Your public profile shows your username, avatar, bio, links, and published Actors. Edit it in Settings → Profile, or with the API:

GET/v2/users/me/profile
PUT/v2/users/me/profile
PUT/v2/users/me/profile/picture
DELETE/v2/users/me/profile/picture
GET/v2/users/{username}/public-profile
  • Your username (max 20 characters: letters, digits, ., _, -) is the owner part of your Actor paths, such as janedoe/my-actor. Changing it renames that part for all your Actors; paths with the old username keep working, and your Actors stay published. You can change your username but not remove it.
  • A username belongs to the first account that used it, for good: after you change it, or after an account is deleted, nobody else can take that name. See Usernames.
  • PUT /v2/users/me/profile accepts only the profile fields; any other field returns 400 invalid-input.
  • A profile must stay public while you have published Actors. While your profile is private, other users see a placeholder instead of your picture, for example next to your reviews and messages.
  • Your email appears on the public profile only if you turn on show email.

Plans and credits

Everything you do on the platform is paid from a prepaid credit balance in US dollars. Runs consume compute units (memory × duration), storage operations, data transfer, proxy traffic, and, for Actors that use the Scrape.ly browser, browser credits. Store Actors with a price also charge their own fees, which are added to your usage.

Your balance is made of credit packages:

PackageWhere it comes from
Free monthly credit$5 of usage credit every month while you're on the free plan. It resets each month: unused free credit doesn't roll over.
Plan creditMonthly prepaid usage included with a paid plan. At each renewal it's replaced by the new period's plan credit; what's left expires and isn't refunded.
Additional creditCredit a paid plan can buy on top of its plan credit. It expires at the next renewal.
Prepaid creditPay-as-you-go credit, such as x402 top-ups. It doesn't expire.
EarningsWhat you earn from your own paid Actors. Kept separate and never spent on runs.

Free credit is always spent first. After that, paid credits are spent starting with the package that expires soonest, and packages without an expiry are used last. Expired packages drop out of your balance.

Free plan

Every account starts on the free plan, with no card needed. It includes $5 of free credit every month. Your free month starts on the day you created your account and renews on the same day each month. At each renewal, whatever is left of last month's free credit expires and a fresh $5 is added. Billing → Current period and the dashboard show how much free credit is left and when it resets.

The free plan runs with these limits:

LimitFree plan
Concurrent runs2
Memory per run4 GB
Total memory across running runs8 GB
Schedules5
AI chat messages30 per day

To get more credit or higher limits, subscribe to a paid plan in Billing → Subscription. While you're subscribed, your plan credits replace the monthly free credit and the free plan limits no longer apply. If your subscription ends, you're back on the free plan, and its monthly free credit resumes.

Free credit is for your own scraping: when you run a paid Store Actor with free credit, its creator earns nothing from that part of the fee (see Earnings).

Manage your plan in Billing → Subscription: compare plans, subscribe, upgrade, cancel or resume, buy additional credits on a paid plan, and manage payment methods. Past invoices are in Billing → Invoices. Purchases, payment methods, and invoices are console-only; the Scrape.ly API has no endpoints for them.

To read your plan and balance programmatically:

GET/v2/users/me/plan
GET/v2/plan-tiers

GET /v2/users/me/plan returns your plan, renewal date, this month's usage, and balance broken down by package. Its billing.credit object is what Billing shows as Credit left: the period, what you used, what is reserved for running work, what is available, and one entry in sources per kind of credit (plan, additional, free, prepaid) with its amount, what's left, and when it expires (null for prepaid credit). GET /v2/plan-tiers (no auth) lists every plan tier with its limits.

What a paid plan changes

A plan tier sets your concurrency, memory, Actor/task/schedule/webhook counts, build limits, API rate limits, data retention, support level, and Store discount. Your plan counts as paid while its renewal date is in the future. When it lapses, your account falls back to free-plan retention: unnamed storages are kept 2 days instead of your plan's 31, 60 or 90 days, except your latest 10 runs, which are kept with their results and logs until you delete them.

The Store discount lowers the per-event price of Store Actors whose owners allow discounts.

When credits run out

  • Before a run starts, Scrape.ly reserves its estimated cost from your timeout, memory, and the Actor's event prices. If your balance can't cover it, the run is rejected with 402 payment-required.
  • When your spendable balance reaches zero, nothing is deleted at once. Unnamed storages are deleted 3 days later. Named storages are kept for 3 days or your plan's unnamed-storage retention (2 days free; 31, 60 or 90 days on Starter, Scale or Business), whichever is longer. Both count from when the balance first hit zero. Adding credits stops the clock.
  • Standby Actors return 402 insufficient-funds when you have no balance.

Set a low balance alert in Settings → Notifications to get an email, dashboard notification, or webhook before you run out. See Notifications.

There is no account-wide spending limit. To cap what a single run can cost, set its maximum total charge when you start it (see Run Actors).

Usage

See current and past spending in Billing → Current period and Billing → Historical usage. Current period lists Browser credits with the browser seconds and proxy traffic behind them, and AI model tokens under Actors for LLM gateway requests. Under Actors, open Pay per event to see each Actor event you were charged for. You can search by Actor or event name, filter by Actor, sort by price, quantity, or name, and page through the list. Billing → Pricing shows your rate per credit.

EndpointWhat it returns
GET /v2/users/me/usage/monthlyUsage and cost per service for a month, with a daily breakdown
GET /v2/users/me/usage/dailyUsage quantities for one day
GET /v2/users/me/usage/actorsPlatform and Actor charges per Actor for a month
GET /v2/users/me/usage/pay-per-eventPay-per-event charges for a month, paginated, with search, Actor filter, and sort
GET /v2/users/me/statsRuns, success rate, results, and compute for the last 30 days

Limits

Billing → Limits shows your plan limits and what you're using now. The same data comes from GET /v2/users/me/limits:

  • Concurrent runs and concurrent builds
  • Total memory across running runs and builds
  • Number of Actors, saved tasks, schedules, and webhooks
  • Minimum and maximum run memory, maximum build memory, and build timeout
  • API and storage API requests per minute
  • LLM gateway requests per minute and requests running at the same time
  • Data retention for unnamed storages

Your plan's memory per run applies to every run, however it starts: from the dashboard, the API, a task, a schedule or automation, Standby, or an automatic restart. A run that asks for more memory is refused with 400 invalid-memory. A memory that comes from a stored default instead, such as an Actor's Standby setting or a restart, is lowered to the largest size your plan allows. An Actor whose minMemoryMbytes is above your plan's limit can't run on your plan (400 actor-memory-minimum-not-allowed). The limits of every plan are on the pricing page.

Runs are not queued when you hit one of your account limits. Starting a run past your concurrent-run limit returns 429 concurrency-limit-exceeded, and going over your total memory returns 400 limit-exceeded. Wait for runs to finish or upgrade your plan. (A run can still be queued with 202 when the platform itself is short on capacity; see Run Actors.)

API key

Your API key authenticates the Scrape.ly API, CLI, SDKs, and API clients. Find it in Settings → API & Integrations under Scrapely API Credentials, together with your Scrapely User ID.

  • This key is your account's Default key, and it has full access to your account. Treat it like a password.
  • You can create more keys under Settings → API keys, each with its own name, expiry, and scopes, and revoke them one by one. Use a scoped key for CI, servers, MCP clients, and integrations. See API keys & permissions.
  • To rotate it, call POST /v2/api-keys/reset. The old key stops working immediately, OAuth access tokens issued to MCP clients are revoked, and you get an API key created notification.
  • GET /v2/api-keys shows only a masked prefix, never the full key.
  • Actor runs get their own scoped tokens. Those tokens can't read or rotate your API key or change account settings.
  • Never commit your key. Pass it through an environment variable (SCRAPELY_TOKEN; APIFY_TOKEN is also accepted) or store it with CLI secrets.

Notifications

Choose which events reach you by email or in the dashboard in Settings → Notifications, or with GET / PUT /v2/users/me/notification-settings. See Notifications.

Actor settings

Settings → Preferences has two account-wide Actor settings:

SettingAPI
Skip permission approvals: run full-permission Actors without approving each one first.GET / PUT /v2/users/me/permission-approval-skip
Transform actors: adapt existing Actor source (SDK imports, base images) when you import an Actor from GitHub or a ZIP.GET / PUT /v2/users/me/transform-github-actors

Details are in the Users API.