Suger API Reference
CRUD operations on a set of resources, including organizations, products, offers, entitlements, usage record groups for meterting, etc.
Base URL: https://api.suger.cloud. Most endpoints are
scoped to an organization under /org/{orgId}/…, and request
and response bodies are JSON (application/json).
Authentication
The API uses the OAuth 2.0 client-credentials flow. Create an
OAuth App to get a client ID and secret,
exchange them for a short-lived (1 hour) bearer token, then send it on every
request as Authorization: Bearer <token>.
curl -X POST 'https://apiv2.suger.cloud/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=YOUR_CLIENT_ID' \
--data-urlencode 'client_secret=YOUR_CLIENT_SECRET' \
--data-urlencode 'resource=https://api.suger.cloud' See API Access for the full token exchange, caching, rotation, and permissions.
Conventions
- Pagination: list endpoints commonly accept
limitandoffsetquery parameters. - Errors: the API uses standard HTTP status codes;
4xxand5xxresponses return a JSON body describing the problem. - Request bodies:
GETandDELETEoperations never take a body — pass every input as a path or query parameter.POSTandPATCHoperations send JSON. - Versioning: see Versioning and compatibility
below — the resource API is unversioned, and
apiv2is the OAuth host, not an API version. - Rate limits: authenticated endpoints are not rate limited per request. Usage is bounded by your organization's service quotas instead.
- Idempotency: a few operations protect you from a duplicate on
retry, each in its own way:
-
POST /org/{orgId}/offeris de-duplicated for 60 seconds — a repeat call with an identical body from the same caller returns the original response rather than creating a second offer. -
POST /org/{orgId}/entitlement/{entitlementId}/usageRecordGroupde-duplicates on theidyou supply, for 15 days; reporting the sameidagain is rejected rather than billed twice. -
The PRM invitation endpoints refuse a second invitation to a recipient who
already has one pending, with
409and no second email.
-
Versioning and compatibility
Three different "versions" appear around this API, and only one of them describes the resource contract. This is the whole policy:
| What | Versioned? | What it means for you |
|---|---|---|
The resource API, https://api.suger.cloud | Unversioned and rolling | There is no version segment in the path and no version header. There is one live contract, and this reference always describes what is deployed now. |
The OAuth token host, apiv2.suger.cloud | Version 2 of the auth host | apiv2 names the token-issuing host, not a version of the resource API.
Requesting a token there and calling https://api.suger.cloud is the current,
supported pairing — see API Access.
|
This OpenAPI document (info.version 1.0) | The document's own release number | It identifies the specification file, not the API. Do not branch client behavior on it. |
What counts as a breaking change. Removing an operation or a response field, renaming either, narrowing an accepted value, or making an optional request field required. Suger avoids these on the public surface; when an operation is withdrawn, its documentation page is removed and the old URL redirects to this reference. Additive changes — a new operation, a new optional request field, a new field in a response, or a new value in an existing enumeration — can ship at any time, so parse responses leniently and ignore fields you do not recognize.
Every operation listed here is currently supported — the reference carries no deprecated operations. Operations that have been withdrawn are removed from this reference, and their old documentation URLs redirect here. If you need advance notice before an operation you depend on changes, contact support@suger.io.
Endpoint groups
Endpoints are organized into the following groups:
- API
- Auditing
- Buyer
- Contact
- Cosell
- Entitlement
- Knowledge Search
- Metering
- Notification
- Offer
- OfferSet
- Operation
- Organization
- Partner Relationship Management
- Product
- Report
- Revenue
- Support
All operations
Every operation has a static page at /api/<operation>/ and a Markdown
version at /api/<operation>.md, each with a runnable request and
response example.
API
- List API Clients GET List all API clients in the given organization.
- Get API Client GET Get the API client by ID.
Auditing
- Query Auditing Events GET Query auditing events with filtering, sorting, and pagination using CRUD query language.
Buyer
- List Buyers GET list buyers by the given organization with pagination and optional filters.
- Create Buyer POST create a new buyer for Stripe or Adyen under the given organization.
- Query Buyers GET Query buyers with filtering, sorting, and pagination using CRUD query language.
- Get Buyer GET get buyer by the given organization and buyer id.
- Update Buyer PATCH update buyer by the given organization and buyer id.
- List Buyer's Wallets GET list all wallets of a buyer.
- Create Credit Wallet POST create a new credit wallet for the buyer.
- Update Credit Wallet PATCH update startTime or expireTime of the wallet.
- Delete Buyer Wallet DELETE delete a wallet of the buyer, if it's a payment method, sync to payment provider too.
- Close Credit Wallet PATCH Close the given credit wallet, if it's a payment method, sync to payment provider too.
- Set Buyer Default Wallet PATCH set a payment method wallet as buyer's default wallet.
Contact
- List Contacts GET List all contacts under the given organization.
- Create Contact POST Create a contact under the given organization.
- Batch Create Contacts POST Create multiple contacts under the given organization.
- Query Contacts GET Query contacts with filtering, sorting, and pagination using the CRUD query language.
- Get Contact GET Get the Contact by the given contact ID.
- Update Contact PATCH Update the contact for the given organization and contact ID.
- Add Contact to Buyer POST add contact to buyer by the given organization, buyer id and contact id.
- Remove Contact from Buyer DELETE remove contact from buyer by the given organization, buyer id and contact id.
- Add Contact to Offer POST add contact to offer by the given organization, offer id and contact id.
- Remove Contact from Offer DELETE remove contact from offer by given organization, offer id and contact id.
- Update Contact Tags PATCH Update the tags for a contact.
Cosell
- Get Co-Sell Dashboard / Insights GET Retrieve co-sell analytics for the organization.
- Search AWS connected partners by name POST Search the org's connected AWS partners by name.
- Search Microsoft first-party products for an Azure co-sell GET Search Microsoft's own products (Azure, Microsoft 365, Dynamics and the rest of the first-party catalog) by…
- Invite a partner to collaborate on an Azure referral (Azure only) POST Send a collaboration invitation to another Microsoft partner on an existing Azure co-sell referral.
- Search third-party solutions for an Azure co-sell GET Search the solutions published by companies other than Microsoft in the Partner Center catalog, and return…
- List known partner contacts for a buyer company GET Look up partner-side contacts (AWS / AZURE / GCP partner reps) associated with a buyer company, identified by…
- List co-sell referrals (inbound + outbound) GET List co-sell referrals under the organization with pagination, filters, and sort.
- Create a Co-Sell Referral (Outbound) POST Create a new outbound co-sell referral to share a sales opportunity with a cloud partner (AWS / AZURE / GCP).
- Batch Create Co-Sell Referrals POST Create multiple co-sell referrals in one call.
- Preview co-sell referrals mapped from CRM records POST Read one or more CRM records (for example Salesforce Opportunities) and return what each would look like as a…
- Register a co-sell on a partner's behalf POST Files a Suger PRM co-sell (`partner=SUGER`) that the seller is entering on a partner's behalf, for partners…
- Predict AWS Opportunity Quality Score POST Predict the AWS opportunity quality score (0-100) for a not-yet-submitted AWS co-sell opportunity draft.
- Dry-run validate a co-sell referral against partner schema POST Validate a mapped marketplace opportunity against the partner-specific schema (AWS ACE / Azure Partner Center…
- Get a co-sell referral by ID GET Fetch full details of a single co-sell referral, including partner-specific fields, current Suger unified…
- Update a co-sell referral (incl. status / stage transitions) PATCH Update fields of an existing co-sell referral.
- Apply a Commission Lifecycle Action PATCH Advance a SUGER co-sell's commission to its next state once the deal is Won.
- Propose a Post-Won Commission-Terms Update POST Seller-only.
- Update a Partner's Co-Sell Copy PATCH Seller-only targeted write to one partner's reseller copy: revenue-share terms (pre-Won only), deal-value…
- Sync a single co-sell referral with the partner / CRM POST Trigger a one-way sync for a specific referral.
Entitlement
- List Entitlements GET List entitlements under the given organization with pagination and optional filters.
- Create Entitlement POST Create a new entitlement for the given buyer & offer.
- Query Entitlements GET Query entitlements with filtering, sorting, and pagination using CRUD query language.
- Get Entitlement GET Get the entitlement by ID.
- Add Entitlement Credit POST Add the credit amount to the given Entitlement.
- Apply Addon to Entitlement POST Apply one billing addon to the given Entitlement.
- Approve Entitlement POST Approve the given Entitlement.
- List Entitlement Cancellation Requests GET List entitlement cancellation requests with filtering, sorting, and pagination.
- Cancel Entitlement POST Cancel the active subscription.
- Withdraw Entitlement Cancellation Request POST Withdraw an entitlement cancellation request.
- Divide Entitlement Commit POST Divide the commit equally from the given entitlement into sub entitlement terms based on the given time…
- Update Entitlement Name PATCH Update the name of the given Entitlement.
- List Entitlement Terms GET List all Entitlement Terms of the given Entitlement.
- Get Entitlement Term GET Get the entitlement term by ID.
- Delete Entitlement Term DELETE Delete the entitlement term by the given entitlement ID and entitlement term ID.
- Update Entitlement Meta Info PATCH Update the meta info of the given entitlement.
- Get Entitlement Agreement PDF GET Returns a presigned S3 URL for the agreement PDF of the given AWS entitlement.
- Update Entitlement Price Model PATCH Update the price model of the given entitlement, such as recurring commits, billable dimensions.
- Adjust the renewal uplift for an entitlement POST Reprice the pending renewal offer to a seller-chosen in-range uplift (AWS).
- Opt out of auto-renewal for an entitlement POST Expire the pending renewal offer so the agreement does not auto-renew (AWS).
- Schedule Entitlement Cancellation POST Schedule the cancellation of the given Entitlement.
- Update seat for the active AZURE subscription PATCH Update the seat number for the active AZURE subscription.
- Unschedule Entitlement Cancellation POST Unschedule the cancellation of the given Entitlement.
Knowledge Search
- Search Marketplace Knowledge POST Searches the shared knowledge index covering AWS, Azure, and GCP marketplace documentation, Suger docs, and…
Metering
- Batch Report usageRecordGroups POST Batch report new usage record groups.
- Batch Validate usageRecordGroups POST Provide a batch of usage record groups and validate each individual usage record group one by one.
- List Billable Metrics GET list billable metrics for the given organization.
- Create Billable Metric POST Create a new billable metric for the given organization.
- Get Billable Metric GET Get the billable metric for the given organization and billable metric ID.
- Update Billable Metric PATCH Update the name, description and status of the billable metric for the given organization.
- Report usageRecordGroup POST Provide the ID in the request body CreateUsageRecordGroupParams so the report can be deduplicated.
- Get Usage Metering Config Info GET Get the usage metering config info of the given organization.
- Update Usage Metering Config Info PATCH Update the usage metering config info of the given organization.
- List usageRecordGroups GET List UsageRecordGroups by the given organization, partner, product, entitlement or buyer.
- Aggregate usageRecordGroups GET Aggregate usageRecordGroups by date and dimension key.
- Delete usageRecordGroup DELETE delete the UsageRecordGroup for the given organization and usageRecordGroup ID.
- Retry usageRecordGroup POST Retry the given UsageRecordGroup by setting from status "REPORT_FAILED" to "CREATED", and it will be ready…
- List usageRecordReports GET List usageRecordReports under the given organization, partner, entitlement or buyer, within the given time…
- Aggregate usageRecordReports GET Aggregate usageRecordReports by date and dimension key.
Notification
- Get Notification Config Info GET Get the notification config info of the given organization.
- Update Notification Config Info PATCH Update the notification config info of the given organization.
- List Notification Events GET List the notification events of the given organization with pagination and optional filters.
- List Notification Events by Entity GET List the notification events of the given organization and entity with pagination.
- List Notification Messages GET List or search the notification messages of the given organization with pagination.
- Get Notification Message GET Get the notification message of the organization & notification message ID.
Offer
- Create or Update Draft Offer POST Create a new draft offer or update the existing draft offer.
- List Offers GET List offers under the given organization with pagination and optional filter.
- Create Offer POST Create a private offer under the given organization.
- Query Offers GET Query offers with filtering, sorting, and pagination using CRUD query language.
- Get Offer GET Get the offer by the given offer ID.
- Delete Offer DELETE The offer is soft deleted (marked as DELETED status) in Suger service.
- Cancel Offer POST Only the offer with status = "PENDING_ACCEPTANCE", "PENDING_CANCEL", "ACTIVE" or "USED" is allowed to cancel.
- Get Offer EULA GET Get the EULA file of the given offer ID.
- Extend Offer Expiry Date POST Only the offer with status = "PENDING_ACCEPTANCE", "EXPIRED", "ACCEPTED" or "UPDATE_FAILED" is allowed to…
- Update Offer Meta Info PATCH Update the meta info of the given offer.
- Notify Offer Contacts POST Send offer notifications to the given contact ids.
- Update Offer Pricing (Unified Format) PATCH Add new usage dimensions or update existing dimension rates (at negotiated rates) on a released AWS private…
- Get Offer Reseller EULA GET Get the Reseller EULA file of the given offer ID.
- Sync Offer POST Sync the given offer from its partner.
- Get Offer by External ID GET Get the offer by the given offer external ID.
OfferSet
- List Offer Sets GET List offer sets under the given organization with filtering, sorting, and pagination using CRUD query…
- Create Offer Set POST Create a new offer set under the given organization.
- Get Offer Set GET Get the offer set by the given offer set ID.
Operation
- List Operations with Filters POST List or search workflow operations with filter expressions.
- Get Operation Details GET Get the details of a Temporal workflow operation by operation ID.
- Get Operation History Events GET Get the history events for a Temporal workflow operation by operation ID.
Organization
- List organizations the current user or API client belongs to GET List all organizations (also known as accounts or tenants) that the authenticated caller has access to.
- Update the organization's onboarding intent (skip/dismiss). PATCH Updates the Get Started checklist intent for the organization.
- Get the organization's Get Started onboarding status. GET Returns the six-step Get Started checklist state (account, marketplace, crm, notification, readiness…
- Get the current organization's services and quotas GET Customer-facing read endpoint returning the requesting organization's services snapshot — every catalog…
Partner Relationship Management
- List all partner invitations in the organization GET List every partner invitation this organization sent or received, with recipient, direction (outbound if this…
- Accept a partnership invitation received by this organization POST Accept an invitation that another company sent to this organization, establishing the partnership.
- Withdraw an invitation this organization sent POST Withdraw a partner invitation this organization sent, setting it to "Cancelled" and invalidating the accept…
- Decline a partnership invitation received by this organization POST Decline an invitation another company sent to this organization.
- Resend a pending or expired partner invitation POST Re-send an invitation this organization sent, refreshing its accept-by date and re-delivering the original…
- List Partner Relationships GET List the partner companies this organization has a relationship with, one row per partnership, with…
- Draft a Partnership Invitation Email POST Generate a subject line and body for a partnership invitation email, written for a specific recipient using…
- Get One Partner Relationship GET Retrieve the full record for one partner relationship: company profile, relationship and engagement type…
- Update One Partner Relationship PATCH Update the editable fields of one partner relationship: the assigned partner manager, the relationship…
- Get One Partner's Commission Ledger GET Return the commission ledger for one partner from this organization's perspective: a record per closed-won…
- List the contacts at one partner company GET List the enrichment-sourced people at one partner company: name, email, job title, LinkedIn URL, seniority…
- List the invitations for one partner GET List the invitations attached to a single partner relationship, each with its recipient, direction, status…
- Invite a contact to an existing partnership POST Send a partner invitation for a partnership that already exists in this organization, addressed to a named…
Product
- Create or Update Draft Product POST Create a new draft product or update the existing draft product.
- List Products by Partner GET list all products under the given organization and cloud partner
- List Products GET list all products under the given organization
- Create Product POST create a new product in the marketplace
- Query Products GET Query products with filtering, sorting, and pagination using CRUD query language.
- Get Product GET get product by product id
- Update Product PATCH update product info, no price update is allowed via this API.
- Delete Product DELETE The product is soft deleted (marked as DELETED status) in Suger service. only the products with non PUBLIC…
- List Metering Dimensions of Product GET list all metering dimensions of the given product
- Update Product Fulfillment URL PATCH update the fulfillment url of the given product
- Update Product Meta Info PATCH Update the meta info of the given product.
- Update Product Pricing (Unified Format) PATCH Update AWS or Azure product pricing with one partner-agnostic request (plans[] with commits + dimensions).
- Update Product Pricing PATCH update product pricing/terms info.
- Publish Product PATCH publish the given product to the public status in the marketplace
- Update Product Allowlist PATCH Replace the buyer AWS accounts allowlisted to view and subscribe to a Limited-visibility AWS SaaS listing…
Report
- List Daily Revenue Records GET list daily revenue records for the given organization, partner, entitlement, or buyer, within the given date…
- List Revenue Records GET list the revenue records for the given organization, product, entitlement, or buyer.
- List Revenue Record Details GET list the raw revenue record details for the given organization, partner, product, entitlement, or buyer.
- List Usage Metering Daily Records GET list the daily records of the usage metering from the cloud marketplace for the given organization…
- Aggregate Revenue Records POST Return per-currency totals (invoice/collectable/disburse/tax + count) and the daily chart series over the…
- Query Revenue Records GET Query revenue records with filtering, sorting, and pagination using the CRUD query language.
- Get Revenue Report POST Get the revenue report of the given organization, product, entitlement, or buyer.
Revenue
- Trigger Revenue Backfill POST Start a historical revenue-data backfill for one marketplace connection, covering the trailing 24 months.
- Get Channel Connection Health GET Report sync health for one connected revenue channel: last sync time, last sync status, consecutive error…
- List Revenue Channel Connections GET List the marketplace and payment channels in this organization that are connected for revenue sync.
- Get Revenue SAAS Metrics GET Return SaaS revenue metrics for the organization over a date range, including ARR, MRR, and the ARR waterfall.
- Get Revenue Dashboard Summary GET Aggregate unified revenue records across every connected channel into dashboard totals: billed, collected…
- Get Revenue Record Detail GET Return one unified revenue record in full, including its billing, cash-collection, and disbursement amounts…
- Get the provenance event chain for a URR GET
- List Unified Revenue Records GET
- Summarize Unified Revenue Records GET
Support
- List Support Tickets GET list support tickets
- Create Support Ticket POST create support ticket
- Get Support Ticket GET get support ticket
- Update Support Ticket PATCH update support ticket
- Create Support Ticket Attachment POST create support ticket attachment
- Download Support Ticket Attachment GET Authenticated download of a support-ticket attachment (GitHub-Issues backend).
- Close Support Ticket PATCH close support ticket
- Create Support Ticket Comment POST create support ticket comment
- Reopen Support Ticket PATCH reopen support ticket
Using the reference
Explore every endpoint in the interactive reference below. Each operation also has
a static page at /api/<operation>/ and a Markdown version at
/api/<operation>.md for agents and LLMs.