API reference

Billing

Plans and Stripe.

Kept in this tab only and sent only to api.skimmerdb.com. Requests run against your account and count as usage. Make a key.

Plan and bill

GET /v1/billing

The plan, whether billing is set up, and this period's usage and bill. An admin key or the owner's login.

Answer

planPlan
plan.namestring
plan.price_monthnumber
plan.included_gb_monthsnumber
plan.included_write_gbnumber
plan.included_queriesinteger
plan.included_writesinteger
plan.included_embed_tokensinteger
plan.per_gb_monthnumber
plan.per_gb_writtennumber
plan.per_million_queriesnumber
plan.per_million_embed_tokensnumber
plan.per_million_store_getsnumber
plan.hard_limitboolean
plan.qpsinteger
plan.concurrencyinteger
plan.storage_quota_gbnumber
plan.read_inflight_mbinteger
plan.sql_secondsinteger
plan.sql_concurrencyinteger
plan.query_secondsinteger
plan.max_namespacesinteger
plan.included_cpu_secondsnumber
plan.included_store_getsinteger
plan.included_out_gbnumber
plan.max_creates_dayinteger
plan.unverified_sharenumber
stripeboolean
customerboolean
subscribedboolean
usageUsage
usage.daysUsageDay[]
usage.days[].daystring
usage.days[].queriesinteger
usage.days[].writesinteger
usage.days[].write_bytesinteger
usage.days[].docs_writteninteger
usage.days[].store_getsinteger
usage.days[].store_bytesinteger
usage.days[].mcp_queriesinteger
usage.days[].mcp_writesinteger
usage.days[].embed_tokensinteger
usage.days[].cpu_msnumber
usage.days[].out_bytesinteger
usage.days[].gb_monthsnumber
usage.period_startstringThis billing period's first day (UTC).
usage.monthstring
usage.queriesintegerSearches, counts, reads, warms and SQL queries (metered).
usage.writesintegerDocuments written or deleted.
usage.write_bytesinteger
usage.docs_writteninteger
usage.store_getsintegerObject-storage reads made by queries (cold queries cost more).
usage.store_bytesinteger
usage.mcp_queriesinteger
usage.mcp_writesinteger
usage.embed_tokensinteger
usage.cpu_msnumberCPU queries used (metered; the free plan includes plan.included_cpu_seconds).
usage.out_bytesintegerBytes of answers sent back (metered; the free plan includes plan.included_out_gb).
usage.stored_bytesinteger
usage.gb_monthsnumberStorage so far this period.
usage.planPlan
usage.plan.namestring
usage.plan.price_monthnumber
usage.plan.included_gb_monthsnumber
usage.plan.included_write_gbnumber
usage.plan.included_queriesinteger
usage.plan.included_writesinteger
usage.plan.included_embed_tokensinteger
usage.plan.per_gb_monthnumber
usage.plan.per_gb_writtennumber
usage.plan.per_million_queriesnumber
usage.plan.per_million_embed_tokensnumber
usage.plan.per_million_store_getsnumber
usage.plan.hard_limitboolean
usage.plan.qpsinteger
usage.plan.concurrencyinteger
usage.plan.storage_quota_gbnumber
usage.plan.read_inflight_mbinteger
usage.plan.sql_secondsinteger
usage.plan.sql_concurrencyinteger
usage.plan.query_secondsinteger
usage.plan.max_namespacesinteger
usage.plan.included_cpu_secondsnumber
usage.plan.included_store_getsinteger
usage.plan.included_out_gbnumber
usage.plan.max_creates_dayinteger
usage.plan.unverified_sharenumber
usage.billBillWhat this period costs so far, in dollars.
usage.bill.basenumber
usage.bill.storagenumber
usage.bill.writesnumber
usage.bill.queriesnumber
usage.bill.embeddingnumber
usage.bill.readsnumber
usage.bill.usagenumber
usage.bill.totalnumber

Status codes

200OK
401No key, or an unknown or revoked one.
403The key's scope or namespaces don't allow it, or the tenant is suspended.
curl -s https://api.skimmerdb.com/v1/billing \
  -H "Authorization: Bearer $KEY"
from skimmerdb import SkimmerDB
from skimmerdb._api.api.billing import get_billing

db = SkimmerDB()  # SKIMMERDB_KEY
answer = get_billing.sync(client=db.api)
import { SkimmerDB } from "skimmerdb";
import { getBilling } from "skimmerdb/api";

const db = new SkimmerDB(); // SKIMMERDB_KEY
const { data } = await getBilling({ client: db.client });

Upgrade to pro (Stripe Checkout)

POST /v1/billing/checkout

A Stripe Checkout page subscribing the tenant to pro: open url in a browser.

Answer

urlstring

Status codes

200OK
401No key, or an unknown or revoked one.
403The key's scope or namespaces don't allow it, or the tenant is suspended.
501Billing isn't set up on this server.
502Billing (Stripe) is unavailable right now.
curl -s -X POST https://api.skimmerdb.com/v1/billing/checkout \
  -H "Authorization: Bearer $KEY"
from skimmerdb import SkimmerDB
from skimmerdb._api.api.billing import create_checkout

db = SkimmerDB()  # SKIMMERDB_KEY
answer = create_checkout.sync(client=db.api)
import { SkimmerDB } from "skimmerdb";
import { createCheckout } from "skimmerdb/api";

const db = new SkimmerDB(); // SKIMMERDB_KEY
const { data } = await createCheckout({ client: db.client });
200 answer
{
  "url": "https://checkout.stripe.com/c/pay/cs_live_a1b2c3"
}

Billing portal (Stripe)

POST /v1/billing/portal

The Stripe Customer Portal: cards, invoices, cancelling.

Answer

urlstring

Status codes

200OK
401No key, or an unknown or revoked one.
403The key's scope or namespaces don't allow it, or the tenant is suspended.
409Exists already, or not possible in this state.
501Billing isn't set up on this server.
502Billing (Stripe) is unavailable right now.
curl -s -X POST https://api.skimmerdb.com/v1/billing/portal \
  -H "Authorization: Bearer $KEY"
from skimmerdb import SkimmerDB
from skimmerdb._api.api.billing import create_portal

db = SkimmerDB()  # SKIMMERDB_KEY
answer = create_portal.sync(client=db.api)
import { SkimmerDB } from "skimmerdb";
import { createPortal } from "skimmerdb/api";

const db = new SkimmerDB(); // SKIMMERDB_KEY
const { data } = await createPortal({ client: db.client });