Storage, Simplified

Store a value in seconds. Fetch it from anywhere.

BitStore gives you a clean bucket API for lightweight cross-system data sharing. Use it from apps, scripts, CI jobs, and devices with minimal setup.

New here? Create a free account here.

Everything You Need To Ship Fast

Simple workflow, explicit keys, and a trustworthy developer experience.

Buckets

Create buckets, copy slugs, and manage write keys in one place.

Open
Tutorial

Step-by-step setup and API usage instructions.

Open
API

Read/write endpoints with Swagger docs and quick testing.

Open

Quick Start Sample

const MAX_VALUE_LENGTH = 8;
const base = "https://your-host/api/buckets/your-slug";

function apiErrorMessage(payload, fallback) {
  if (payload && payload.message) return payload.message;
  if (payload && payload.errors) {
    const all = Object.values(payload.errors).flat();
    if (all.length) return all[0];
  }
  return fallback;
}

async function fetchJson(url, options) {
  const response = await fetch(url, options);
  const text = await response.text();
  const data = text ? JSON.parse(text) : {};
  if (!response.ok) {
    throw new Error(apiErrorMessage(data, `HTTP ${response.status} ${response.statusText}`));
  }
  return data;
}

async function addValue(value) {
  if (value.length > MAX_VALUE_LENGTH) {
    throw new Error(`Value must be ${MAX_VALUE_LENGTH} characters or fewer.`);
  }

  // Keep write keys on your server (env vars), not in shipped browser code.
  return fetchJson("/your-backend/bitstore/write", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ bucketSlug: "your-slug", value })
  });
}

await addValue("1337");
const latestPayload = await fetchJson(`${base}/latest`);
console.log(latestPayload.record);

For browser apps, send writes through your backend proxy so the write key stays server-side. /your-backend/bitstore/write is a placeholder route, not a built-in endpoint.