Developer portal
Every capability is a documented operation under /v1. The catalogue below is rendered from contracts/openapi.yaml — the contract IS the code.
Authentication: Bearer token (inherited Zitadel identity) for admin/domain API. Partner API uses X-API-Key with least-scope keys (revocable). Fail-closed always: invalid key, expired key or wrong partner is denied.
Versioning and backward compatibility: contracts/openapi.yaml carries a SemVer info.version field, contracts/openapi.released.yaml is the last verified backward-compatible baseline, and npm run check runs a breaking-change gate against that baseline on every push and pull request. See contracts/VERSIONING.md for the policy.
Admin
| Metod | Path | operationId |
|---|---|---|
POST | /v1/admin/sports/odds | recordAdminSportsOdds |
GET | /v1/admin/sports/markets | listAdminSportsMarkets |
GET | /v1/admin/sports/selections/{id}/line-movements | listAdminSportsLineMovements |
GET | /v1/admin/sports/picks | listAdminSportsPicks |
POST | /v1/admin/sports/picks/{id}/resolve | resolveAdminSportsPick |
GET | /v1/admin/sports/tipsters/{userId} | getAdminTipsterRecord |
GET | /v1/admin/affiliate-links | getAdminAffiliateLinks |
POST | /v1/admin/affiliate-links | createAdminAffiliateLink |
GET | /v1/admin/campaigns | getAdminCampaigns |
POST | /v1/admin/campaigns | upsertAdminCampaign |
GET | /v1/admin/affiliate-report | getAdminAffiliateReport |
GET | /v1/admin/affiliate-report/export | exportAdminAffiliateReportCsv |
POST | /v1/admin/conversions | recordAdminConversion |
GET | /v1/admin/bonus-offers/{id}/terms | listBonusTermsVersions |
POST | /v1/admin/bonus-offers/{id}/terms | proposeBonusTermsVersion |
POST | /v1/admin/bonus-terms/{id}/approve | approveBonusTermsVersion |
POST | /v1/admin/bonus-terms/{id}/withdraw | withdrawBonusTermsVersion |
GET | /v1/admin/agreements | listAgreements |
POST | /v1/admin/agreements | createAgreement |
POST | /v1/admin/agreements/{id}/approve | approveAgreementVersion |
GET | /v1/admin/agreements/{id}/statement | getAgreementStatement |
GET | /v1/admin/agreements/{id}/statement/export | exportAgreementStatementCsv |
POST | /v1/admin/commission-adjustments | addCommissionAdjustment |
GET | /v1/admin/attribution/{conversionId} | getAttributionTrace |
GET | /v1/admin/case-attachments | listCaseAttachments |
POST | /v1/admin/case-attachments | uploadCaseAttachment |
POST | /v1/admin/case-attachments/{id}/release | releaseCaseAttachment |
GET | /v1/admin/case-attachments/{id}/content | getCaseAttachmentContent |
GET | /v1/admin/payment-reconciliation/discrepancies | listPaymentReconciliationDiscrepancies |
POST | /v1/admin/payment-reconciliation/reconcile | reconcilePaymentRoute |
POST | /v1/admin/rights-grants | upsertRightsGrant |
POST | /v1/admin/agreements/{id}/postback-security | setAgreementPostbackSecurity |
GET | /v1/admin/postback-rejections | listPostbackRejections |
GET | /v1/admin/ad-placements | listAdPlacements |
POST | /v1/admin/ad-placements | upsertAdPlacement |
GET | /v1/admin/ad-campaigns | listAdCampaigns |
POST | /v1/admin/ad-campaigns | createAdCampaign |
POST | /v1/admin/ad-campaigns/{id}/pause | pauseAdCampaign |
POST | /v1/admin/ad-campaigns/{id}/resume | resumeAdCampaign |
POST | /v1/admin/ad-creatives | createAdCreative |
POST | /v1/admin/ad-creatives/{id}/approve | approveAdCreative |
GET | /v1/admin/ad-delivery | listAdDeliveryEvents |
GET | /v1/admin/metrics/definitions | listMetricDefinitions |
GET | /v1/admin/metrics/query | queryMetric |
GET | /v1/admin/notifications/queue | listNotificationQueue |
POST | /v1/admin/notifications/queue | queueNotification |
GET | /v1/admin/api-keys | listApiKeys |
POST | /v1/admin/api-keys | createApiKey |
POST | /v1/admin/api-keys/{id}/revoke | revokeApiKey |
GET | /v1/admin/webhooks | listWebhooks |
POST | /v1/admin/webhooks | createWebhook |
GET | /v1/admin/webhooks/{id}/deliveries | listWebhookDeliveries |
POST | /v1/admin/webhooks/{id}/sandbox | sandboxWebhook |
GET | /v1/admin/integration-sandbox/environments | listSandboxEnvironments |
POST | /v1/admin/integration-sandbox/environments | createSandboxEnvironment |
GET | /v1/admin/integration-sandbox/test-runs | listIntegrationTestRuns |
POST | /v1/admin/integration-sandbox/test-runs | createIntegrationTestRun |
GET | /v1/admin/cwv | getCwvFieldData |
GET | /v1/admin/seo-meta | getAdminSeoMeta |
POST | /v1/admin/seo-meta | upsertAdminSeoMeta |
GET | /v1/admin/casino-reviews | getAdminCasinoReviews |
POST | /v1/admin/casino-reviews | upsertAdminCasinoReview |
GET | /v1/admin/overview | getAdminOverview |
GET | /v1/admin/claims | listAdminClaims |
GET | /v1/admin/games | listAdminGames |
GET | /v1/admin/live-casino/tables | listLiveCasinoTables |
POST | /v1/admin/live-casino/tables/{gameId} | updateLiveCasinoTableAttrs |
GET | /v1/admin/casinos | listAdminCasinos |
GET | /v1/admin/articles | listAdminArticles |
POST | /v1/admin/articles | upsertAdminArticle |
GET | /v1/admin/bonus-offers | listAdminBonusOffers |
POST | /v1/admin/bonus-offers | upsertAdminBonusOffer |
GET | /v1/admin/complaints | listAdminComplaints |
POST | /v1/admin/complaints/{id} | updateAdminComplaintStatus |
GET | /v1/admin/big-wins | getAdminBigWins |
POST | /v1/admin/big-wins | upsertAdminBigWin |
POST | /v1/admin/ops/ship | adminShipOutbox |
GET | /v1/admin/payment-test-scenarios | listPaymentTestScenarios |
POST | /v1/admin/payment-test-scenarios | recordPaymentTestScenario |
GET | /v1/admin/emerging-formats | listEmergingFormatWatches |
POST | /v1/admin/emerging-formats | registerEmergingFormatWatch |
POST | /v1/admin/emerging-formats/{id}/publish | publishEmergingFormatWatch |
POST | /v1/admin/emerging-formats/{id}/archive | archiveEmergingFormatWatch |
GET | /v1/admin/regulators | getAdminRegulators |
GET | /v1/admin/casino-licenses | getAdminCasinoLicenses |
POST | /v1/admin/casino-licenses | upsertAdminCasinoLicense |
GET | /v1/admin/markets | getAdminMarkets |
POST | /v1/admin/markets | upsertAdminMarket |
GET | /v1/admin/jobs-learning-signals | listJobsLearningSignals |
POST | /v1/admin/jobs-learning-signals | registerJobsLearningSignal |
POST | /v1/admin/jobs-learning-signals/{id}/route | routeJobsLearningSignal |
POST | /v1/admin/jobs-learning-signals/{id}/decline | declineJobsLearningSignal |
GET | /v1/admin/experiments | listExperiments |
POST | /v1/admin/experiments | createExperiment |
POST | /v1/admin/experiments/{id}/status | transitionExperimentStatus |
GET | /v1/admin/experiments/{id}/assignment | getExperimentAssignment |
GET | /v1/admin/sources/health | getSourcesHealth |
GET | /v1/admin/evidence-viewer/{subjectId} | getEvidenceViewer |
GET | /v1/admin/license-status-history/{licenseId} | getLicenseStatusHistory |
POST | /v1/admin/license-status-history/{licenseId}/verify | recordLicenseStatusVerification |
GET | /v1/admin/trust-scores/{casinoId} | getTrustScore |
POST | /v1/admin/trust-scores/{casinoId}/recompute | recomputeTrustScore |
Partner
| Metod | Path | operationId |
|---|---|---|
POST | /v1/partner/postback | receivePartnerPostback |
GET | /v1/partner/me/statement | getPartnerStatement |
Publik
| Metod | Path | operationId |
|---|---|---|
GET | /health | getHealth |
GET | /ready | getReadiness |
GET | /version | getVersion |
GET | /metrics | getMetrics |
GET | /v1/platform | getPlatformFoundation |
GET | /v1/cas1no/games | getCas1nogames |
GET | /v1/cas1no/game-variants | getCas1nogamevariants |
GET | /v1/cas1no/offerings | getCas1noofferings |
GET | /v1/cas1no/test-reports | getCas1notestreports |
GET | /v1/cas1no/articles | getCas1noarticles |
GET | /v1/cas1no/claims | getCas1noclaims |
GET | /v1/cas1no/claims/{id}/publication | getCas1noclaimsidpublication |
GET | /v1/cas1no/claims/{id}/history | getCas1noclaimsidhistory |
POST | /v1/cas1no/claims/{id}/corrections | postCas1noclaimsidcorrections |
POST | /v1/cas1no/claims/{id}/reviews | postCas1noclaimsidreviews |
GET | /v1/cas1no/organizations | getCas1noorganizations |
GET | /v1/cas1no/markets | getCas1nomarkets |
GET | /v1/cas1no/taxonomy | getCas1notaxonomy |
GET | /v1/cas1no/coverage | getCas1nocoverage |
POST | /v1/cas1no/coverage | writeCas1nocoverage |
POST | /v1/cas1no/ingest | writeCas1noingest |
GET | /v1/cas1no/intelligence/protocols | listIntelligenceProtocols |
GET | /v1/cas1no/intelligence/tools | listIntelligenceTools |
GET | /v1/cas1no/intelligence/resources | listIntelligenceResources |
POST | /v1/cas1no/intelligence/resources | createIntelligenceResource |
GET | /v1/cas1no/intelligence/resources/{id} | getIntelligenceResource |
GET | /v1/cas1no/intelligence/compare | compareIntelligenceReviews |
POST | /v1/cas1no/intelligence/sources | captureIntelligenceSource |
POST | /v1/cas1no/intelligence/resources/{id}/revisions | reviseIntelligenceResource |
POST | /v1/cas1no/intelligence/resources/{id}/review | reviewIntelligenceResource |
POST | /v1/cas1no/intelligence/resources/{id}/publish | publishIntelligenceResource |
POST | /v1/cas1no/intelligence/resources/{id}/withdraw | withdrawIntelligenceResource |
GET | /v1/cas1no/intelligence/workspace/resources/{id} | getIntelligenceWorkspaceResource |
GET | /v1/cas1no/intelligence/changes | listIntelligenceChanges |
POST | /v1/cas1no/intelligence/tools/payment-cost | calculateIntelligencePaymentCost |
POST | /v1/cas1no/intelligence/tools/bonus-analysis | calculateIntelligenceBonusAnalysis |
POST | /v1/cas1no/intelligence/tools/probability | calculateIntelligenceProbability |
POST | /v1/cas1no/intelligence/tools/terms-diff | calculateIntelligenceTermsDiff |
GET | /v1/cas1no/intelligence/me/preferences | getIntelligencePreferences |
PUT | /v1/cas1no/intelligence/me/preferences | updateIntelligencePreferences |
GET | /v1/cas1no/intelligence/me/export | exportIntelligencePreferences |
GET | /v1/cas1no/intelligence/me/discovery | discoverIntelligenceResources |
GET | /v1/cas1no/casino-reviews | listPublicCasinoReviews |
GET | /v1/cas1no/casino-reviews/{slug} | getCasinoReview |
GET | /v1/cas1no/bonus-offers | listBonusOffers |
GET | /v1/cas1no/big-wins | listBigWins |
GET | /v1/cas1no/sports/events | listSportsEventsWithLatestOdds |
GET | /r/{code} | trackAffiliateClick |
POST | /v1/cas1no/bonus-calc | calculateWagering |
POST | /v1/cas1no/demo/{gameId}/start | startDemo |
GET | /v1/cas1no/ads/{key} | getAdDecision |
GET | /v1/cas1no/me/profile | getOwnProfile |
PUT | /v1/cas1no/me/profile | upsertOwnProfile |
POST | /v1/cas1no/me/profile/visibility | setProfileVisibility |
GET | /v1/cas1no/me/favorites | listFavorites |
POST | /v1/cas1no/me/favorites | setFavorite |
POST | /v1/cas1no/me/follows | setFollow |
GET | /v1/cas1no/me/collections | listOwnCollections |
POST | /v1/cas1no/me/collections | createCollection |
POST | /v1/cas1no/me/collections/{id}/items | addCollectionItem |
GET | /v1/cas1no/me/notifications/preferences | listNotificationPreferences |
POST | /v1/cas1no/me/notifications/preferences | setNotificationPreference |
GET | /members/{handle} | getPublicMemberProfile |
GET | /collections/{id} | getCollection |
POST | /v1/public/cwv | receiveCwv |
GET | /v1/complaints | listPublicComplaintDecisions |
POST | /v1/complaints | createComplaint |
GET | /v1/complaints/{id} | getComplaintStatus |
POST | /v1/cas1no/ai-assistant/ask | postCas1noaiassistantask |
GET | /v1/cas1no/education/items | listEducationItems |
GET | /v1/cas1no/education/items/{slug} | getEducationItem |
GET | /v1/cas1no/venues/{slug} | getVenue |
GET | /v1/cas1no/provable-fair-checks | listProvableFairChecks |
GET | /v1/cas1no/suppliers | listSuppliers |
GET | /v1/cas1no/suppliers/{id} | getSupplier |
GET | /v1/cas1no/payment-providers | listPaymentProviders |
GET | /v1/cas1no/payment-methods | listPublicPaymentMethods |
GET | /v1/cas1no/market-intelligence/{subjectType}/{subjectId} | getMarketIntelligence |
GET | /v1/cas1no/research-exports | listResearchExports |