Built for engineering teams and platform operators

The CRM that treats the API as a product surface, not an afterthought.

Most CRMs ship the API as a secondary surface with rate-limit cliffs, undocumented endpoints, and premium-tier gating. Strkr ships REST and GraphQL as first-class product surfaces with every object, every event, and every write-path reachable through documented endpoints at flat per-seat pricing.

What this audience is actually dealing with

The pains that bring buyers here.

Engineering teams buy CRMs the same way they buy any production dependency: the API matters more than the UI. A great UI loses to a mediocre UI with a flat API, every time, because the UI is twelve months of workflow decisions and the API is permanent infrastructure. The pain points below are what Strkr onboarding hears from engineering leaders at platform companies, embedded CRM operators, and internal developer teams buying for the business.

Rate limits that break production

The API tier buys you a 100-request-per-second cliff.

Most CRM APIs ship with aggressive rate limits (100 to 500 requests per second typical) and a cliff at the limit. A sync job that worked at 180 accounts breaks at 2,400 accounts because the batch crosses the rate ceiling. Strkr runs flat per-seat pricing with no per-API-call meter and sensible fair-use limits scaled per tenant. A typical mid-market tenant has headroom for several thousand requests per second burst and sustained load that keeps the sync job predictable.

Half the endpoints are undocumented

The OpenAPI spec is version 1.2 of a 4.8 product.

A production CRM API usually has 320 to 480 real endpoints. The OpenAPI spec that ships with it covers 180 of them. The rest live in support tickets, Stack Overflow threads, and a Postman collection the solutions engineer sent you three years ago. Strkr publishes the full OpenAPI spec against the live API with every endpoint, every parameter, every response shape, and every error code documented. The spec is the API contract, not a marketing artifact.

Webhooks you cannot trust

The webhook retry is best-effort and the signatures are optional.

Webhook delivery from most CRMs is best-effort with a thin retry window and optional HMAC signing. The result is a webhook consumer that has to defensively poll the API every 15 minutes to catch missed deliveries, which eats the rate limit budget. Strkr webhooks ship with mandatory HMAC-SHA256 signing, exponential-backoff retries over 24 hours, a visible delivery log, and a replay API for recovery.

Custom objects locked behind enterprise

The flexible schema is a $90,000-a-year upgrade.

Most CRMs put custom object creation behind the enterprise tier with a professional services engagement. The engineering team that wants a Deployment or Tenant object as a first-class concept hits a sticker-shock gate. Strkr ships custom objects across every tier (Starter, Pro, Scale) with a declarative schema API that the engineering team can call from a migration script instead of clicking through an admin console.

GraphQL as a bolt-on

The GraphQL endpoint hides the real latency.

A CRM that bolted on a GraphQL endpoint over a REST core typically ships a GraphQL that joins at the resolver and then does the N-plus-one query against the underlying REST. The result is a GraphQL query that returns 240 accounts and makes 480 upstream calls. Strkr ships GraphQL and REST as co-equal product surfaces on the same materialized layer with batched resolver fetching and query cost estimation that caps the request.

SDK libraries that lag the API

The TypeScript SDK is three versions behind.

Most CRMs ship first-party SDKs that lag the API by one to three minor versions. The TypeScript library you installed last quarter does not know about the custom-object write-path your team shipped yesterday. Strkr publishes SDK bindings generated from the OpenAPI spec on every release so the TypeScript, Python, Go, and Ruby libraries stay in lockstep with the API. The engineering team never ships a stale SDK into production.

The Strkr API as a product surface

What ships with every tier, not just enterprise.

Strkr runs the API as a first-class product surface available at every tier. Every object, every event, every write-path is reachable through REST or GraphQL with the OpenAPI spec published against the live endpoint. The cards below are what shows up on the first API-architecture call with an engineering buyer.

REST endpoints

Full CRUD across every object.

The REST API covers every object (account, contact, deal, product, quote, invoice, custom object) with full CRUD at /v1/{resource} paths. Pagination uses cursor-based tokens that stay stable across writes. Filtering uses a declarative query parameter that compiles to the materialized layer. Response shapes include the full object and the relationships that matter for the resource type.

GraphQL endpoint

Batched resolvers with query cost caps.

The GraphQL endpoint lives at /v1/graphql and runs against the same materialized layer as REST. Resolvers batch at the field level so a query that pulls 240 accounts with 12 fields each runs the same number of upstream fetches as a query for one account. Query cost estimation runs before execution and rejects the request if it would exceed the tenant budget.

Outbound webhooks

HMAC-SHA256 with retry over 24 hours.

Outbound webhooks fire on every write event (object created, updated, deleted) and every workflow event (stage changed, deal won, email sent). Every webhook payload is HMAC-SHA256 signed with a tenant-specific secret. Delivery runs with exponential-backoff retry over 24 hours, a visible delivery log, and a replay API for recovery.

Custom objects

Declarative schema at any tier.

Custom objects ship across every tier (Starter, Pro, Scale). The declarative schema API accepts a JSON schema document and creates the object type with validation rules, relationships to other objects, and permission scoping. The admin console can edit the schema or the engineering team can call the schema API from a migration script.

OAuth 2.0 and PKCE

Standard auth without ceremony.

The API accepts OAuth 2.0 bearer tokens with PKCE for public clients, API keys for server-to-server, and a short-lived session token for in-browser calls. Scopes map to the role model so a token can be scoped to read-only on a object. Token rotation and revocation ship through the admin console or the API.

OpenAPI spec

Generated from the live API, not hand-written.

The OpenAPI spec publishes at /v1/openapi.json and generates directly from the live API on each release. Every endpoint, every parameter, every response shape, every error code is documented. The spec drives the first-party SDK generation, the API documentation site, and the Postman collection export.

Webhooks and event streaming

The event surface that keeps a consumer honest.

An engineering team cannot rely on a webhook that silently drops. Strkr ships the webhook surface with the operational posture an engineer actually needs: signed payloads, retry guarantees, delivery logs, and a replay API for recovery.

Signed payloads

HMAC-SHA256 with tenant secret.

Every webhook payload includes an X-Strkr-Signature header carrying the HMAC-SHA256 of the body against the tenant-specific signing secret. The consumer verifies the signature before processing to prevent replay and spoofing. The signing secret rotates through the admin console with a 24-hour grace period for consumer rollout.

Retry with backoff

Exponential retry over 24 hours.

A failed delivery (non-2xx response, timeout, DNS failure) retries with exponential backoff over 24 hours (1 minute, 5 minutes, 30 minutes, 2 hours, 6 hours, 12 hours, 24 hours). After 24 hours the delivery lands in a dead-letter queue visible in the admin console with a replay button and a bulk-replay API.

Delivery log

The full event with the response status.

The webhook delivery log captures every outbound delivery with timestamp, event type, destination URL, request body, response status, response body, and retry history. The log retains 30 days by default and queries through the admin console or the API. Engineering can debug a missed event without opening a support ticket.

Replay API

Re-fire a window of events on demand.

The replay API accepts a time window and an event filter and re-fires every matching event to the configured destinations. The replay runs with the same HMAC signing, the same retry guarantees, and a replay flag on the payload so the consumer can distinguish a replay from a live event. The replay unblocks consumer-side recovery after an outage.

Event taxonomy

Stable types with semantic versioning.

The webhook event taxonomy follows a stable naming convention (object.created, object.updated, object.deleted, workflow.stage_changed, deal.won, email.sent, call.summarized). Breaking changes to the payload shape bump the event version (object.created@v2) with the prior version retained for a six-month deprecation window. The engineering team never gets surprised by a payload shape change.

Fan-out destinations

Up to 32 destinations per event.

A single event can fan out to up to 32 destination URLs with independent retry policies per destination. The admin console configures destinations per event type. The pattern lets the engineering team route pipeline events to a data warehouse, a Slack channel, and a billing system in parallel without a middleware layer.

SDK libraries and tooling

The developer surface the engineering team installs on day one.

An API ships well when the SDK, the CLI, and the test harness ship with it. Strkr publishes first-party SDK libraries for TypeScript, Python, Go, and Ruby plus a CLI for admin tasks and a test harness for integration tests. The cards below are what the engineering team installs in week one.

TypeScript SDK

Type-safe client with full IntelliSense.

The TypeScript SDK generates from the OpenAPI spec on every release. Every endpoint, every parameter, every response is fully typed with IntelliSense in the editor. The client ships for Node, Deno, and the browser with built-in retry, pagination, and OAuth refresh. Install via npm, pnpm, or yarn.

Python SDK

Async and sync bindings with Pydantic models.

The Python SDK ships async (httpx) and sync (requests) bindings with Pydantic models for every API response. The client handles pagination, retry, and token refresh. Compatible with Python 3.9 through 3.13. Install via pip, poetry, or uv.

Go SDK

Idiomatic Go with context.Context support.

The Go SDK ships idiomatic client code with context.Context support, struct-tagged response types, and middleware hooks for logging and tracing. Compatible with Go 1.21 and later. Install via go get.

Ruby SDK

Rails-friendly client with ActiveModel integration.

The Ruby SDK ships Rails-friendly client code with ActiveModel integration for the response objects. Compatible with Ruby 3.0 and later and Rails 6.1 and later. Install via gem or bundler.

Strkr CLI

Admin tasks and bulk operations from the terminal.

The Strkr CLI covers admin tasks (role creation, SSO configuration, custom object schema edit) and bulk operations (import, export, bulk update, bulk delete). The CLI reads a config file for tenant selection and runs headless for CI pipelines. Install via brew, scoop, or binary download.

Test harness

Sandbox tenant with reset and seed data.

The test harness provisions a sandbox tenant with reset and seed data for integration tests. The sandbox runs the full API surface with a time-boxed lifecycle (24-hour default). The test harness ships as a Docker image for local development and a GitHub Action for CI.

Head-to-head

Strkr vs a typical sales CRM API for engineering buyers.

The comparison below is Strkr's API posture versus a typical sales CRM API applied to an engineering integration project.

Feature Strkr Typical sales CRM API
OpenAPI spec coverage 100 percent of endpoints, generated from live API. Partial, hand-written, often stale.
GraphQL endpoint First-class with batched resolvers. Bolt-on with N-plus-one issues.
Webhook HMAC signing Mandatory HMAC-SHA256. Optional or none.
Webhook retry window 24 hours with exponential backoff. 15 minutes to one hour.
Webhook replay API Yes with time window filter. None.
Custom object availability Every tier. Enterprise tier only.
Rate limit model Flat per-seat with fair-use burst. Hard cliff with API-tier upgrade.
First-party SDK libraries TypeScript, Python, Go, Ruby generated on release. One or two with version lag.
Sandbox tenant for CI Docker image plus GitHub Action. Manual sandbox tenant request.
Per-API-call pricing meter None. Flat per seat. Common on usage-based tiers.
How teams use Strkr

Five API-first CRM playbooks.

The playbooks below are patterns Strkr onboarding sees across engineering-driven CRM adoptions.

Pattern A

The data-warehouse sync for the analytics team.

A 68-rep SaaS vendor ran Snowflake as the analytics warehouse. The data team needed every CRM write event in Snowflake with sub-15-minute latency and exact-once semantics. Strkr onboarding configured a webhook destination pointing to a Snowpipe landing zone with HMAC verification at the Snowpipe side and the replay API scripted into the Airflow DAG for recovery. The sync ran clean with zero drops in the first six months.

Pattern B

The product embedding Strkr behind their own UI.

A platform vendor serving 420 end-customer tenants needed CRM capability embedded in their product with their own UI. Strkr onboarding ran a 24-business-day integration using the REST API for all CRM operations, OAuth 2.0 for user auth, and custom objects for the vendor-specific entities. The platform never showed Strkr branding to the end user. The vendor shipped CRM capability in two weeks that would have taken 11 months to build in-house.

Pattern C

The CI pipeline running integration tests on every commit.

A 32-engineer product team wanted CRM integration tests running on every commit. Strkr onboarding configured the sandbox tenant provisioning through the test harness Docker image. Each CI run provisioned a fresh sandbox, ran the integration tests against the full API surface, and torn down the sandbox at end-of-run. The team caught CRM-integration regressions in CI instead of production.

Pattern D

The Go-based microservice talking to Strkr through the CLI.

An 18-engineer platform team ran a Go microservice that needed CRM data on a schedule for a billing calculation. The team used the Strkr Go SDK with context.Context cancellation and middleware for distributed tracing. The microservice ran in a Kubernetes CronJob calling the Strkr API every six hours. The integration ran in a day of engineering time instead of a week.

Pattern E

The GraphQL federation at a 180-rep enterprise.

A 180-rep enterprise ran Apollo GraphQL Federation across six product domains. The CRM needed to participate in the federated graph. Strkr onboarding configured the GraphQL endpoint as a federated subgraph with the Apollo Federation 2 directives. The CRM participated in federated queries that pulled account, deal, and ticket data in a single round trip. The frontend team shipped the account 360-degree view in two weeks.

Build on a CRM API that acts like a product surface.

Book a 30 minute call with our solutions engineering team. We will walk through the API, the webhook posture, and the SDK libraries with your actual integration plan.

Common questions

What buyers in this bucket ask most.

What are the rate limits on the Strkr API?

Strkr runs flat per-seat pricing with no per-API-call meter and sensible fair-use limits scaled per tenant. A typical mid-market tenant has headroom for several thousand requests per second burst and sustained load. The rate limit response includes an X-RateLimit-Remaining header and a Retry-After header on 429 responses. Teams with unusual load profiles (bulk sync, event-heavy integrations) can request a higher sustained ceiling by opening a conversation with onboarding. There is no API-tier upgrade price gate.

Does Strkr support both REST and GraphQL as first-class API surfaces?

Yes. REST lives at /v1/{resource} with full CRUD, cursor pagination, and declarative filtering. GraphQL lives at /v1/graphql with batched resolver fetching, query cost estimation, and the same materialized layer as REST. Neither is a shim over the other. Both are first-class product surfaces generated against the same underlying schema. The OpenAPI spec covers REST. A GraphQL introspection endpoint covers GraphQL. First-party SDKs ship against both.

How do webhooks handle signing, retry, and replay?

Every webhook payload includes an X-Strkr-Signature header with HMAC-SHA256 computed against the tenant-specific signing secret. Failed deliveries retry with exponential backoff over 24 hours and land in a visible dead-letter queue after that. The replay API accepts a time window and event filter and re-fires every matching event to the configured destinations with the same signing and retry guarantees. The admin console shows the full delivery log for 30 days with timestamps, status codes, and payload bodies.

Are custom objects available on every tier?

Yes. Custom objects ship across Starter, Pro, and Scale with no tier gate. The declarative schema API accepts a JSON schema document and creates the object type with validation rules, relationships to other objects, and permission scoping. The admin console can edit the schema or the engineering team can call the schema API from a migration script. Field types include text, number, currency, date, datetime, boolean, picklist, multi-select, lookup, and formula. Formulas evaluate server-side.

Which SDK languages ship first-party and how are they kept in sync with the API?

First-party SDKs ship for TypeScript, Python, Go, and Ruby. Each SDK generates from the OpenAPI spec on every API release so the libraries stay in lockstep with the API. Breaking API changes bump the SDK major version with a deprecation window on the prior major. The TypeScript SDK ships for Node, Deno, and the browser. The Python SDK ships async (httpx) and sync (requests) bindings. The Go SDK ships with context.Context and middleware hooks. The Ruby SDK ships with Rails ActiveModel integration.

Can we provision a sandbox tenant for CI integration tests?

Yes. The test harness provisions a sandbox tenant on demand with reset and seed data for integration tests. The sandbox runs the full API surface (REST, GraphQL, webhooks) with a time-boxed 24-hour lifecycle by default, tunable per plan. The harness ships as a Docker image for local development and a GitHub Action for CI pipelines. Each CI run can provision a fresh sandbox, run tests, and tear down at end of run. Sandbox tenants do not count against the production seat count.

What does Strkr cost compared to a usage-based API-first CRM?

Strkr runs flat per-seat pricing ($29 Starter, $59 Pro, $119 Scale per user per month) with no per-API-call meter, no event meter, and no per-record storage meter. A typical API-first CRM with usage pricing adds an API-call line item that scales with integration volume. For a team running 180 million API calls per month the Strkr invoice stays at the seat count while a usage-based competitor could run $4,800 to $18,000 per month on the API line alone. The flat model gives the engineering team predictability.

Try it free. Bring your team next week.

No sales call, no migration consultant, no four-month implementation. Enter your card, get 14 days of the full Pro tier, cancel any time before day 14 with zero charge. Spin up a workspace, import your CSV, and have something useful before lunch.