Ceevee
CeeveeSandbox
QuickstartAPI ReferenceWebhooksDashboard
Get API keys
Quickstart

From zero to first call in under 5 minutes

Authenticate with a Bearer token, send JSON, get JSON back. No SDK required, but our types are TypeScript-first.

  1. 1

    Create a Ceevee account

    Sign up for free at app.ceevee.cc — no credit card. Free tier includes 1,000 API calls / month and full webhook access.

    Sign up
  2. 2

    Open the Developers area

    Inside the dashboard, head to Developers → APIs. You'll see a list of every key set you've issued for the workspace.

    Open dashboard
  3. 3

    Mint a key set

    Click "New key set", give it a name, and toggle Sandbox if you want test data. We show the secret key once — store it in a secrets manager immediately.

  4. 4

    Make your first request

    Pass the secret as a Bearer token. The /me endpoint returns your organization, scopes and rate-limit budget — perfect for connection checks.

    View full reference

Your first call

Replace ceevee_sk_live_... with the secret you just minted. The same call works against the sandbox — just swap the host.

https://api.sandbox.ceevee.cc/v1
// npm install ceevee
import { CeeveeClient } from "ceevee";

const ceevee = new CeeveeClient({
  apiKey: process.env.CEEVEE_API_KEY!,
  baseUrl: "https://api.sandbox.ceevee.cc",
});

const me = await ceevee.request("/v1/me");
console.log(me.scopes);
Generate API keysFull API reference
Webhooks

Don't poll. Subscribe.

Every state change in Ceevee — a CV scan completes, a candidate moves stage, a portal application lands — can ping your endpoint in under a second. Each delivery is signed and timestamped against replay attacks.

  • HMAC-SHA-256 signature in the Ceevee-Signature header
  • Timestamp tolerance window with replay protection
  • Automatic retries with exponential backoff for up to 72 hours
  • Per-endpoint signing secret with one-click rotation
Configure webhooks
nodeVerify a webhook in Node
// Recommended: official SDK
import { verifyWebhookSignature } from "ceevee";

export async function POST(req) {
  const rawBody = await req.text(); // raw bytes — do not JSON.parse first
  try {
    verifyWebhookSignature({
      rawBody,
      signatureHeader: req.headers.get("ceevee-signature") ?? "",
      secret: process.env.CEEVEE_WEBHOOK_SECRET,
    });
  } catch (err) {
    return new Response("invalid signature", { status: 400 });
  }
  const event = JSON.parse(rawBody);
  // ... handle event.type / event.data
  return new Response("ok");
}
CeeveeCeevee

Hire better, faster. Build the candidate experience your team always wished they could ship.

All systems operational

Product

  • Dashboard
  • Job portal
  • Pricing

Developers

  • API reference
  • Webhooks
  • OpenAPI spec
  • Changelog

Company

  • Support
  • Privacy
  • Terms
© 2026 Ceevee. All rights reserved.api.ceevee.cc · v1