Skip to main content
SDKs & Libraries3 shipping · 6 on the roadmap

One spec. Three shipping clients.
Six more on the way.

TypeScript devs: use @solidnumber/cli/sdk today. Everyone else: generate a typed client from the live OpenAPI spec — or wait for the native SDK for your language.

3
Shipping today
1,615
REST endpoints
608
MCP tools

Available today

Real packages on real registries. Every number below comes from the live product.

v1.9.24

Solid# CLI

@solidnumber/cli

Terminal + TypeScript library. 80+ commands, 13 global flags, doctor, did-you-mean, shell completion. Also importable as a library for programmatic use.

npm i -g @solidnumber/cli
v1.0.1

MCP Server

@solidnumber/mcp

608 tools across 36 categories. Claude Code, Cursor, Windsurf connect via stdio. One config file, Bearer-token auth, tenant-scoped.

npx -y @solidnumber/mcp
v1,615 endpoints

REST API

OpenAPI 3.0 spec

Full OpenAPI 3.0 spec at api.solidnumber.com/openapi.json. Generate a typed client in any language — TS, Python, Ruby, Go, PHP, Java, .NET.

curl https://api.solidnumber.com/openapi.json

TypeScript library quickstart

@solidnumber/cli is dual-purpose: a CLI binary and an importable TypeScript library. Same auth, same api-client, same type definitions.

src/server.ts
// Already installed @solidnumber/cli as a CLI tool?
// The same package is an importable TypeScript library.

import { apiClient, handleApiError } from '@solidnumber/cli/sdk';

// Auth is read from ~/.solid/config.json (or SOLID_API_KEY env var)
// For CI/CD, pass a one-shot token:
//   import { setOverrideToken } from '@solidnumber/cli/sdk';
//   setOverrideToken(process.env.SOLID_API_KEY!);

try {
  const { data } = await apiClient.get('/api/v1/crm/contacts', {
    params: { limit: 50, search: 'acme' }
  });
  console.log(`Found ${data.items.length} contacts`);
} catch (err) {
  const apiErr = handleApiError(err);
  console.error(`${apiErr.code}: ${apiErr.message}`);
}
Zero extra install

Already running the CLI in your project? Just import from it.

Built-in safety

Dry-run interceptor, auth refresh, version-skew warnings — all active via the same flags.

Real types

Full .d.ts coverage. apiClient, handleApiError, setOverrideToken all typed.

Generate a client for any language

The full OpenAPI 3.0 spec is public at api.solidnumber.com/openapi.json. Any code generator that speaks OpenAPI can produce a typed client — no waiting on a native SDK.

Generate for your stack
# Any language — generate a typed client from the live spec

# TypeScript (openapi-typescript)
npx openapi-typescript https://api.solidnumber.com/openapi.json \
  --output src/solid-types.ts

# Python (openapi-python-client)
openapi-python-client generate --url https://api.solidnumber.com/openapi.json

# Go (oapi-codegen)
oapi-codegen -package solid \
  https://api.solidnumber.com/openapi.json > solid.gen.go

# Ruby (openapi-generator)
openapi-generator generate -g ruby \
  -i https://api.solidnumber.com/openapi.json -o ./solid-ruby
Auto-refresh

Regenerate on CI. The spec updates every deploy. Use it as the contract between backend + client; let semantic-release + code-gen enforce breaking-change policy.

Native SDKs — on the roadmap

Waitlist open

We'd rather ship a great TypeScript SDK today than six mediocre SDKs that rot. These are prioritized by waitlist demand — add your vote.

Python
v1 shipping Q2
solidnumber (PyPI)
Go
v1 shipping Q2
github.com/solidnumber/go-sdk
Ruby
Waitlist
solidnumber (RubyGems)
PHP
Waitlist
solidnumber/sdk (Packagist)
Java / Kotlin
Waitlist
com.solidnumber:sdk
.NET
Waitlist
SolidNumber.Sdk (NuGet)
Vote for your language

Use the CLI to ping the founder directly — tells us which SDK to build first:

Direct line to the founder
solid feedback "I want the Python SDK — shipping {use case} on {stack}"

What every Solid# SDK includes

Auth + refresh

Bearer-token auth, automatic refresh, one-shot tokens for CI (never persisted to disk).

Typed errors

Error envelope: code, message, details[], request_id. Typed error classes per HTTP status.

Idempotency keys

Every mutating call accepts Idempotency-Key. Same key replays for 24h.

Rate-limit backoff

Reads X-RateLimit-Remaining + Retry-After, backs off, respects 429 automatically.

Dry-run mode

Preview every mutation server-side before committing. Built into the CLI + TS SDK today.

Multi-tenant by default

Every call auto-scopes to the API key’s company_id. You can’t cross-read tenants.

Pagination helpers

limit/offset + has_more. CLI and TS SDK expose fetchAll() for transparent pagination.

Webhook signature verification

HMAC-SHA256 verify helpers. Code snippets for Node, Python, Go on /docs/api.

Start building today

@solidnumber/cli 1.9.24 · @solidnumber/mcp 1.0.1

TypeScript + CLI shipping now. MCP for AI editors shipping now. Language SDKs on the roadmap — or roll your own from the OpenAPI spec today.

SolidNumber — AI That Answers Calls, Books Jobs & Runs Your Business