Skadi Partner API Console

Changelog

Skadi's contract version is date-based (YYYY-MM-DD), pinned via the Skadi-API-Version header. Breaking changes ship as a new dated entry; the prior version remains supported for at least 12 months before sunset.

Platform notices

2026-05-10 Brand rename: Odin → Skadi (Skadi Specialty Insurance Co. under Odin Holdings)

The rename applies across all contract versions — it is a platform change, not a new pinnable version. Old names are no longer recognized.

  • Breaking — protocol headers renamed. Odin-API-VersionSkadi-API-Version (request); Odin-DeprecationSkadi-Deprecation and Odin-Request-IdSkadi-Request-Id (responses); Odin-Webhook-Event-Id / Odin-Webhook-Event-Type / Odin-Webhook-Signature / Odin-Webhook-Timestamp → the Skadi-Webhook-* equivalents.
  • Collections renamed. Odin-Partner-API-{HMAC,OAuth}.postman_collection.jsonSkadi-Partner-API-{HMAC,OAuth}.postman_collection.json; Odin-Sandbox.postman_environment.jsonSkadi-Sandbox.postman_environment.json. Download the new files from the developer dashboard.
  • Partner SDK identifiers. OdinClientSkadiClient, OdinClientOptionsSkadiClientOptions, OdinApiErrorSkadiApiError, OdinApiVersionSkadiApiVersion. Imports must be updated; runtime behavior is unchanged.
  • PDF filename convention. Odin_Quote_…Skadi_Quote_…, Odin_HistoricalDec_…Skadi_HistoricalDec_… in content-disposition headers and the filenames inside webhook payloads.
  • Skadi Specialty Insurance Co. is the operating carrier; Odin Holdings is the (legal-footer-only) parent. API key prefixes (odn_live_* / odn_sb_*) are unchanged.

Active versions

2026-04-25 current Quote-then-bind transaction lifecycle

  • Added quote-then-bind transaction endpoints: POST /endorsements, /cancellations, /extensions, /renewals, /rewrites, /audits, /oos-rebases plus /{id}/bind binders.
  • POST /process-transaction narrowed to reinstatement + non_renewal; legacy kinds return 410 gone with redirect_endpoint.
  • agency_id required on POST /create-submission.
  • OOS rebase now supports cancel/reinstate downstream.

Backwards-compatible additions under the 2026-04-25 contract (no version bump):

  • Added POST /endorsements/bulk — create-and-bind up to 50 endorsements in one call, with per-item idempotency_key and partial-success (succeeded[] / failed[]) results. Scope write:transactions.
  • Declared the write:documents scope, gating partner document export (POST /api/partner/quote-pdf, content-negotiated PDF / ACORD 137 / ACORD 75).

Shipped 2026-04-28 — clearance disposition matrix (additive):

  • POST /clearance-request — every match in matched_in_partner_book[] now includes a structured per-hit disposition derived from the M-tier × G-tier × same-agency × renewal-window matrix. New fields: match_tier (M1–M4), matched_grade, matched_expiration_date, same_agency, days_to_expiry, disposition, severity (per-hit), label, reasoning, allowed_decisions[], decision_authority, effective_grade, effective_grade_code.
  • POST /clearance-request — new top-level field carrier_internal_match_summary surfaces the worst-case structural disposition for cross-tenant matches without leaking PII (no submission ids, broker names, or premium detail).
  • The disposition matrix is now the canonical decision logic, replacing the legacy confidence-only severity heuristic. Indications never claim the market (G1 always cleared cross-agency); bound-in-renewal-window matches surface as renewal_opportunity rather than blocked; BOR letters required for cross-agency mid-term displacement.
  • Existing request-level severity fields (block / manual_review / advisory / clear) are preserved; the finer per-hit severity adds info. No integration changes required.

Shipped 2026-04-29 — per-match clearance resolutions + same-agency auto-merge (additive):

  • Added POST /clearance-match-resolve — persist a per-hit resolution against a clearance_match row. Resolutions: merged, opened_existing, linked_related, route_renewal, not_related, cleared_release, cleared_renewal_authorization, cleared_indication, blocking_pending. Idempotent on Idempotency-Key; admin-only kinds require a non-empty note. Multi-hit clearance results can carry mixed resolutions across hits.
  • POST /create-submission — same-agency auto-merge: the server now short-circuits when (agency_id + lowercased FEIN) collides with a non-bound, non-renewal-window draft from your own agency. The duplicate is never persisted; the response returns the existing submission_id + submission_number, so callers are naturally idempotent on FEIN within an agency. A synthetic clearance match + merged resolution is recorded for audit.
  • The existing clearance scope covers /clearance-match-resolve. No integration changes required.

Shipped 2026-06-15 — canonical domain migration to skadispecialty.com:

  • The API now serves from skadispecialty.com hosts: developer portal at https://developers.skadispecialty.com, app/document endpoints at https://app.skadispecialty.com, contact/legal at https://skadispecialty.com. The legacy *.vercel.app hosts 301-redirect to these and remain valid for ~90 days. The partner Edge API base URL is unchanged.
  • RFC 7807 problem-type URIs moved from https://skadi.example/api/problems/* to https://skadispecialty.com/api/problems/*. These remain opaque identifiers — match on the final path segment (e.g. rate-limit-exceeded), the title, or status, never the full URL. If you currently string-match the full type URI, update it.
  • OAuth 2.0 iss claim moved from https://skadi.example to https://skadispecialty.com. Tokens minted with either issuer are accepted during the migration window; the legacy issuer will be dropped after the window. If you validate iss, accept both now and switch to the new value before the window closes.
  • No request shapes, response shapes, scopes, or endpoint paths changed. No contract version bump.

Spec changes: not available (pre-dates the published OpenAPI spec) .

2026-04-23 supported Tier 2 read endpoints

  • Added Tier 2 read endpoints: /get-submissions, /get-quotes, /get-claims, /get-documents, /get-reports.
  • Pure additions — backward compatible with 2026-04-22 clients.

Spec changes: not available (pre-dates the published OpenAPI spec) .

2026-04-22 supported Initial public contract

  • Initial public contract: HMAC + OAuth Client Credentials auth, RFC 7807 errors, Idempotency-Key header, Skadi-API-Version pin.
  • Endpoints: /oauth-token, /rate-quote, /appetite-check, /hazard-lookup, /clearance-request, /create-submission, /process-transaction.

Spec changes: not available (pre-dates the published OpenAPI spec) .

Deprecation policy

A version enters deprecation when its successor is published. The deprecated version then carries RFC 8594 Deprecation + Sunset headers on every response. It remains fully supported for at least 12 months before the sunset date. After sunset, requests pinning the deprecated version return 410 gone (problem type https://skadispecialty.com/api/problems/gone).

See the full policy + breaking-change taxonomy in PARTNER_API.md.