API Reference/Documentation
GitHubDashboard
Changelog

API Changelog

A rolling log of additions, changes, fixes, and deprecations to the Leadron API. Subscribe to the RSS feed or follow the GitHub mirror to get notified when a release ships.

RSS feedFollowing v1 · See v2 preview for upcoming work

Versioning policy

We follow semantic versioning at the surface level. Backwards-incompatible changes are reserved for major (v2) releases. Within v1, we may add new fields to responses or new optional parameters to requests at any time — design your clients to ignore unknown fields.

v1.18.0

April 22, 2026Latest

AI Agents bulk operations, partner-portal commission attachments, and a leaner pagination envelope.

  • Added

    Bulk AI Agent runs

    POST /v1/agents/{agentId}/runs:bulk accepts up to 250 lead IDs in a single call. Responses include per-lead success/error status so you can stream results into your own UI.

    POST /v1/agents/{agentId}/runs:bulk
  • Added

    Commission statement attachments

    Partner statements now expose signed download URLs for the underlying commission breakdown CSV. Available on GET /v1/partners/{id}/commissions/statements.

    GET /v1/partners/{id}/commissions/statements
  • Changed

    Pagination envelope shape

    List endpoints now return `pagination.nextCursor` instead of the previous `nextPageToken`. The legacy field is still emitted for one minor release to give you time to migrate.

  • Fixed

    Webhook signature header casing

    X-Leadron-Signature is now always lowercased on retries to match the original delivery — fixes a subtle bug where idempotency-conscious consumers were rejecting retries.

v1.17.0

March 11, 2026

Training module endpoints, structured AI generation outputs, and a new Subscriptions resource.

  • Added

    Training module API

    Full CRUD for courses, lessons, and enrollments under /v1/training. Webhook events are emitted for `training.course.completed` and `training.lesson.failed`.

    /v1/training/*
  • Added

    AI Generation structured outputs

    POST /v1/ai-generation accepts an optional `responseSchema` (JSON Schema). Responses are validated server-side before returning, so your client always gets a typed payload.

    POST /v1/ai-generation
  • Added

    Subscriptions resource

    List, retrieve, and cancel tenant subscriptions via /v1/subscriptions. Plan and seat usage is exposed under `/v1/subscriptions/{id}/usage`.

    /v1/subscriptions/*
  • Deprecated

    POST /v1/ai/generate

    Use POST /v1/ai-generation instead. The legacy endpoint will continue to work until v2 launches but no longer receives new features.

v1.16.0

February 4, 2026

Addons marketplace endpoints and tighter rate-limit headers across the board.

  • Added

    Addons marketplace

    Browse and install addons via /v1/addons. Installed addons are returned on tenant lookups under `installedAddons`.

    /v1/addons/*
  • Changed

    Standardized rate-limit headers

    All endpoints now return `RateLimit-Limit`, `RateLimit-Remaining`, and `RateLimit-Reset` per the IETF draft. Legacy `X-RateLimit-*` headers remain available.

  • Fixed

    Cursor pagination on Opportunities

    Cursors generated against deleted records no longer return 500. The API now returns the next valid page or an empty result set.

v1.15.0

January 8, 2026

Notifications API, search v2, and a faster files upload pipeline.

  • Added

    Notifications API

    Programmatically create in-app notifications via POST /v1/notifications. Supports per-user targeting, action buttons, and scheduled delivery.

    POST /v1/notifications
  • Changed

    Search relevance tuning

    Search now uses a hybrid lexical + vector ranker for /v1/search. Query syntax is unchanged. Expect noticeably better results for fuzzy and natural-language queries.

  • Fixed

    Multipart upload boundary handling

    POST /v1/files now correctly handles boundaries that include `--` sequences in metadata fields.

  • Security

    API key prefix entropy

    Newly issued API keys use a longer random suffix to make brute-force enumeration impractical. Existing keys are unaffected.