Skip to main content

How billing works

EcoLink has a single credit balance per account. You top it up, it goes down as you use the platform, you top it up again. No per-resource invoices, no monthly subscription — just one wallet.

Adding credit​

There are three ways to put money in the wallet:

PathWhen to useMore info
Manual top-upAnytime, $1–$1,000 per transactionAdding credit
Auto-recharge"Never let me run out" — saved card charged automatically when balance dips below a thresholdAuto-recharge
Enterprise contractNET-30 invoice, wire / ACH, custom SLAs, $X,XXX+/month commitmentsEnterprise

For most teams the manual top-up + auto-recharge combo is the right setup.

What the credit pays for​

The wallet balance is spent against:

  • API calls to platform models (per-token, per-image, per-second of audio / video)
  • API calls to your model instances (per-request to instances you've launched)
  • GPU instances and clusters you've launched (per-GPU-hour × duration held)
  • Model instances (per-GPU-hour, 24h holds, auto-renewing)
  • Storage (per-GB-day, daily charge)

Your current balance is always visible on the Billing page.

Three billing patterns​

EcoLink uses three different billing patterns depending on resource type — each fits the resource's lifecycle.

Pattern 1: Per-request (API calls)​

Applies to: platform model inference, user inference instance API calls.

When you call /v1/chat/completions (or any API endpoint), EcoLink charges the request's cost immediately against your balance:

  • LLM / embeddings / reranker: per-token
  • Image generation: per-image
  • Audio: per-second (TTS: text-length → audio duration; STT: input audio duration)
  • Video: per-second of generated video

You see a api_usage row on the Billing page per request (or aggregated for bulk visibility).

Pattern 2: Prepaid hold (GPU instances, clusters, inference)​

Applies to: GPU instances (1h+ hold for estimated duration), GPU clusters (same), user inference instances (24h hold, auto-renewing).

The hold is reserved upfront — a gpu_usage -$X row appears as soon as you launch. When the resource stops (or every 24h for inference), the hold is settled:

  • If actual uptime < hold window: refund the unused portion (refund +$X row)
  • If actual uptime > hold window: rare — the cycle already re-held before this case, see User inference cost and lifecycle

See Balance and transactions for what the ledger looks like.

Pattern 3: Daily charge (storage)​

Applies to: cloud drives and shared filesystems.

Once a day (midnight UTC), EcoLink charges size_gb × daily_rate per storage resource. Charge appears as a storage_billing -$X ledger row with a description naming the drive/filesystem.

Storage charges continue as long as the resource exists, whether attached to a running instance or idle. Delete storage you don't need.

When balance runs low​

Progressive warnings​

As your aggregate burn rate (sum of hourly costs across running resources) approaches your remaining balance, EcoLink sends notifications at: 60 min, 30 min, 20 min, 10 min, 5 min, 3 min, 1 min remaining.

Notifications appear as a red dot on the bell icon in the console top bar and on the Messages page.

At $0 balance​

  • GPU instances / clusters: terminated immediately, termination_reason='credit_depleted'
  • User inference instances: terminated on the next 24h cycle boundary (balance = $0 means we can't create a new hold, so we stop instead)
  • API calls: return 402 Payment Required
  • Storage: suspended. Data is not deleted; storage is just disconnected from running instances. Top up and the storage becomes usable again.

Prepaid wallet — the model​

EcoLink is prepaid at the balance level, but on-demand at the resource level. You add credit upfront, then spend it as you go. No long-term commitment, no per-month subscription for individual resources. Scale up, scale to zero — you only spend what you actually use.

For predictable monthly billing tied to a procurement cycle, enterprise contracts let you switch from card payments to NET-30 invoicing without changing the underlying credit model — the wallet still funds usage; the contract just changes how the wallet gets topped up.

Refunds​

  • Automatic for any unused portion of a hold (when instances stop early)
  • Automatic when an admin issues a refund from the Stripe dashboard — appears as a negative refund row in your ledger within a few seconds
  • Manual on billing errors that don't fit the above: ping the #ecolink-support Slack channel with the transaction ID

We don't refund general account credit on request — once on your balance, credit is for EcoLink resources, with no cash-back. Refunds against specific charges (a billing error, a duplicate top-up) are handled case-by-case.

Next steps​

Your privacy choices

Essential cookies are always on. You can change these choices at any time.