SDK

@mencionai/sdk

Official TypeScript client for the public API.

TypeScript SDK

The @mencionai/sdk package is the easiest way to call the MencionAI API from Node.js, serverless functions, or any TypeScript/JavaScript backend.

Install

pnpm add @mencionai/sdk
npm install @mencionai/sdk

Quick start

import { MencionAiClient } from '@mencionai/sdk';

const client = new MencionAiClient({
  apiKey: process.env.MENCIONAI_API_KEY!,
});

const org = await client.getOrganization();
console.log(org.name, org.plan);

const { workspaces } = await client.listWorkspaces();

if (workspaces[0]) {
  const summary = await client.getVisibilitySummary(workspaces[0].id);
  console.log(summary.brand_name, summary.total_mentions, 'mentions');
}

The default base URL is https://www.mencionai.com/api/v1. Override it if needed:

const client = new MencionAiClient({
  apiKey: process.env.MENCIONAI_API_KEY!,
  baseUrl: 'https://www.mencionai.com/api/v1',
});

Get your API key

  1. Sign in to MencionAI.
  2. Go to Settings → API Keys.
  3. Create a key and store it in MENCIONAI_API_KEY (or your secret manager).

Never use API keys in browser code — always call the API from your server.

Methods

Organization & workspaces

await client.getOrganization();
await client.listWorkspaces();
await client.getWorkspace(42);

Visibility

const summary = await client.getVisibilitySummary(42);
// summary.prompts_tracked, summary.total_mentions, summary.total_citations, …

Scans

Enqueue a scan with a unique idempotency key (e.g. UUID or your own dedupe id):

const { job_id, status } = await client.enqueueScan(42, 'scan-run-2026-07-06-001');

let job = await client.getJob(job_id);
while (job.status === 'pending' || job.status === 'processing') {
  await new Promise((r) => setTimeout(r, 3000));
  job = await client.getJob(job_id);
}

console.log('Scan finished:', job.status);

Webhooks

const { endpoints } = await client.listWebhooks();

const endpoint = await client.createWebhook({
  url: 'https://your-app.com/webhooks/mencionai',
  events: ['visibility.scan.completed'],
});

// Save endpoint.secret — shown only on create
console.log('Webhook secret:', endpoint.secret);

Embed tokens

const { token, expires_in } = await client.createEmbedToken({
  workspace_id: 42,
  ttl_sec: 3600,
});

const iframeUrl = `https://www.mencionai.com/embed/v1/workspaces/42/summary?token=${token}`;

Error handling

Failed requests throw MencionAiError:

import { MencionAiClient, MencionAiError } from '@mencionai/sdk';

try {
  await client.getOrganization();
} catch (err) {
  if (err instanceof MencionAiError) {
    console.error(err.code);       // e.g. RATE_LIMIT_EXCEEDED
    console.error(err.status);     // HTTP status
    console.error(err.requestId);  // for support
  }
  throw err;
}

TypeScript types

The SDK exports types for common responses:

import type { Workspace, VisibilitySummary } from '@mencionai/sdk';

API version

The SDK targets API version 2026-07-01. See the API reference or OpenAPI spec for full request/response shapes.