Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/suger-product-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
contact:
email: support@suger.io
name: Suger Support
url: https://www.suger.io/support
description: CRUD operations on a set of resources, including organizations, products, offers, entitlements, usage record groups for meterting, etc.
title: Suger Product API
version: '1.0'
servers:
- url: https://api.suger.cloud
tags:
- description: Access to Product resources
name: Product
paths:
/org/{orgId}/draftProduct:
post:
description: Create a new draft product or update the existing draft product. When updating draft product, the product.ID is required.
operationId: CreateOrUpdateDraftProduct
parameters:
- description: Organization ID
explode: false
in: path
name: orgId
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadProduct'
description: the draft product to create
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadProduct'
description: OK
'400':
content:
application/json:
schema:
type: string
description: Bad request error
'500':
content:
application/json:
schema:
type: string
description: Internal server error
security:
- APIKeyAuth: []
summary: Create Or Update Draft Product
tags:
- Product
x-codegen-request-body-name: data
/org/{orgId}/partner/{partner}/product:
get:
description: list all products under the given organization and cloud partner
operationId: ListProductsByPartner
parameters:
- description: Organization ID
explode: false
in: path
name: orgId
required: true
schema:
type: string
style: simple
- description: Cloud Partner
explode: false
in: path
name: partner
required: true
schema:
enum:
- AWS
- AZURE
- GCP
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/WorkloadProduct'
type: array
description: OK
'400':
content:
application/json:
schema:
type: string
description: Bad request error
'500':
content:
application/json:
schema:
type: string
description: Internal server error
security:
- APIKeyAuth: []
summary: List Products By Partner
tags:
- Product
/org/{orgId}/product:
get:
description: list all products under the given organization
operationId: ListProducts
parameters:
- description: Organization ID
explode: false
in: path
name: orgId
required: true
schema:
type: string
style: simple
- description: filter by partner
explode: true
in: query
name: partner
required: false
schema:
enum:
- AWS
- AZURE
- GCP
- STRIPE
type: string
style: form
- description: List pagination size, default 100, max value is 1000
explode: true
in: query
name: limit
required: false
schema:
type: integer
style: form
- description: List pagination offset, default 0
explode: true
in: query
name: offset
required: false
schema:
type: integer
style: form
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/WorkloadProduct'
type: array
description: OK
'400':
content:
application/json:
schema:
type: string
description: Bad request error
'500':
content:
application/json:
schema:
type: string
description: Internal server error
security:
- APIKeyAuth: []
summary: List Products
tags:
- Product
post:
description: create a new product in the marketplace
operationId: CreateProduct
parameters:
- description: Organization ID
explode: false
in: path
name: orgId
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadProduct'
description: the product to create
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadProduct'
description: OK
'400':
content:
application/json:
schema:
type: string
description: Bad request error
'500':
content:
application/json:
schema:
type: string
description: Internal server error
security:
- APIKeyAuth: []
summary: Create Product
tags:
- Product
x-codegen-request-body-name: data
/org/{orgId}/product/{productId}:
delete:
description: The product is soft deleted (marked as DELETED status) in Suger service. only the products with non PUBLIC status are allowed to be deleted.
operationId: DeleteProduct
parameters:
- description: Organization ID
explode: false
in: path
name: orgId
required: true
schema:
type: string
style: simple
- description: Product ID
explode: false
in: path
name: productId
required: true
schema:
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
type: string
description: Empty string if deletion is successful
'400':
content:
application/json:
schema:
type: string
description: Bad request error
'404':
content:
application/json:
schema:
type: string
description: Not found error
'500':
content:
application/json:
schema:
type: string
description: Internal server error
security:
- APIKeyAuth: []
summary: Delete Product
tags:
- Product
get:
description: get product by product id
operationId: GetProduct
parameters:
- description: Organization ID
explode: false
in: path
name: orgId
required: true
schema:
type: string
style: simple
- description: Product ID
explode: false
in: path
name: productId
required: true
schema:
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadProduct'
description: OK
'400':
content:
application/json:
schema:
type: string
description: Bad request error
'404':
content:
application/json:
schema:
type: string
description: Not found error
'500':
content:
application/json:
schema:
type: string
description: Internal server error
security:
- APIKeyAuth: []
summary: Get Product
tags:
- Product
patch:
description: update product info, no price update is allowed via this API.
operationId: UpdateProduct
parameters:
- description: Organization ID
explode: false
in: path
name: orgId
required: true
schema:
type: string
style: simple
- description: Product ID
explode: false
in: path
name: productId
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadProduct'
description: the product to update
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadProduct'
description: OK
'400':
content:
application/json:
schema:
type: string
description: Bad request error
'500':
content:
application/json:
schema:
type: string
description: Internal server error
security:
- APIKeyAuth: []
summary: Update Product
tags:
- Product
x-codegen-request-body-name: data
/org/{orgId}/product/{productId}/dimension:
get:
description: list all metering dimensions of the given product
operationId: ListProductMeteringDimensions
parameters:
- description: Organization ID
explode: false
in: path
name: orgId
required: true
schema:
type: string
style: simple
- description: Product ID
explode: false
in: path
name: productId
required: true
schema:
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/MeteringDimension'
type: array
description: OK
'400':
content:
application/json:
schema:
type: string
description: Bad request error
'404':
content:
application/json:
schema:
type: string
description: Not found error
'500':
content:
application/json:
schema:
type: string
description: Internal server error
security:
- APIKeyAuth: []
summary: List Metering Dimensions Of Product
tags:
- Product
/org/{orgId}/product/{productId}/fulfillmentUrl:
patch:
description: update the fulfillment url of the given product
operationId: UpdateProductFulfillmentUrl
parameters:
- description: Organization ID
explode: false
in: path
name: orgId
required: true
schema:
type: string
style: simple
- description: Product ID
explode: false
in: path
name: productId
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateProductParams'
description: Update Product Params
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadProduct'
description: OK
'500':
content: {}
description: Internal Server Error
security:
- APIKeyAuth: []
summary: Update Product Fulfillment Url
tags:
- Product
x-codegen-request-body-name: data
/org/{orgId}/product/{productId}/metaInfo:
patch:
description: Update the meta info of the given product.
operationId: UpdateProductMetaInfo
parameters:
- description: Organization ID
explode: false
in: path
name: orgId
required: true
schema:
type: string
style: simple
- description: Product ID
explode: false
in: path
name: productId
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadMetaInfo'
description: Product meta info to update
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadMetaInfo'
description: OK
'400':
content:
application/json:
schema:
type: string
description: Bad request error
'500':
content:
application/json:
schema:
type: string
description: internal server error
security:
- APIKeyAuth: []
summary: Update Product Meta Info
tags:
- Product
x-codegen-request-body-name: data
/org/{orgId}/product/{productId}/publish:
patch:
description: publish the given product to the public status in the marketplace
operationId: PublishProduct
parameters:
- description: Organization ID
explode: false
in: path
name: orgId
required: true
schema:
type: string
style: simple
- description: Product ID
explode: false
in: path
name: productId
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadProduct'
description: the product to publish
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkloadProduct'
description: OK
'400':
content:
application/json:
schema:
type: string
description: Bad request error
'404':
content:
application/json:
schema:
type: string
description: Not found error
'500':
content:
application/json:
schema:
type: string
description: Internal server error
security:
- APIKeyAuth: []
summary: Publish Product
tags:
- Product
x-codegen-request-body-name: data
components:
schemas:
AzureMarketplaceSubmission:
example:
result: succeeded
deprecationSchedule:
date: date
reason: criticalSecurityIssue
$schema: $schema
alternative:
product: '{}'
plan: '{}'
dateOffset: dateOffset
lifecycleState: null
product: product
$schema: $schema
created: created
resourceName: resourceName
id: id
validations:
- resourceId: resourceId
code: businessValidationError
$schema: $schema
level: informational
message: message
- resourceId: resourceId
code: businessValidationError
$schema: $schema
level: informational
message: message
status: notStarted
target:
targetId: targetId
targetType: flight
properties:
$schema:
type: string
created:
description: Date-time string
type: string
deprecationSchedule:
$ref: '#/components/schemas/AzureMarketplaceDeprecationSchedule'
id:
type: string
lifecycleState:
$ref: '#/components/schemas/AzureMarketplaceResourceLifecycleState'
product:
type: string
resourceName:
type: string
result:
enum:
- succeeded
- failed
- pending
type: string
status:
enum:
- notStarted
- running
- completed
type: string
target:
$ref: '#/components/schemas/AzureMarketplaceResourceTarget'
validations:
items:
$ref: '#/components/schemas/AzureMarketplaceValidation'
type: array
type: object
AzureMarketplaceCustomerLeads:
example:
salesforceLeadConfiguration: '{}'
product: product
$schema: $schema
tableLeadConfiguration: '{}'
httpsEndpointLeadConfiguration: '{}'
resourceName: resourceName
emailLeadConfiguration: '{}'
dynamicsLeadConfiguration: '{}'
marketoLeadConfiguration: '{}'
leadDestination: none
id: id
validations:
- resourceId: resourceId
code: businessValidationError
$schema: $schema
level: informational
message: message
- resourceId: resourceId
code: businessValidationError
$schema: $schema
level: informational
message: message
blobLeadConfiguration: '{}'
properties:
$schema:
type: string
blobLeadConfiguration:
type: object
dynamicsLeadConfiguration:
type: object
emailLeadConfiguration:
type: object
httpsEndpointLeadConfiguration:
type: object
id:
type: string
leadDestination:
enum:
- none
- blob
- dynamics
- email
- httpsEndpoint
- marketo
- salesforce
- table
type: string
marketoLeadConfiguration:
type: object
product:
type: string
resourceName:
type: string
salesforceLeadConfiguration:
type: object
tableLeadConfiguration:
type: object
validations:
items:
$ref: '#/components/schemas/AzureMarketplaceValidation'
type: array
type: object
AwsRenewalOfferType:
enum:
- ''
- External
- AwsMarketplace
type: string
x-enum-varnames:
- AwsRenewalOfferType_Unknown
- AwsRenewalOfferType_External
- AwsRenewalOfferType_AwsMarketplace
AzureMarketplacePriceFlexibleSchedule:
properties:
billingSchedule:
items:
$ref: '#/components/schemas/AzureMarketplacePriceBillingSchedule'
type: array
initialCharge:
$ref: '#/components/schemas/AzureMarketplacePriceInitialCharge'
price:
type: number
type: object
GcpMarketplaceProductServiceConfigBilling:
example:
metrics:
- metrics
- metrics
properties:
metrics:
description: 'The list of metrics that are available for billing for the product.
In format of "product-name.endpoints.gcp-project-id.cloud.goog/plan_name_metric_name"'
items:
type: string
type: array
type: object
AzureMarketplacePriceBillingSchedule:
properties:
chargeDate:
description: In format of YYYY-MM-DD.
type: string
note:
type: string
pricePerPaymentInUsd:
type: number
type: object
AzureMarketState:
example:
marketCode: marketCode
state: Disabled
properties:
marketCode:
description: ISO Country Code
type: string
state:
enum:
- Disabled
- Enabled
- StopSelling
- Terminated
type: string
type: object
AzureMarketplaceDeprecationSchedule:
example:
date: date
reason: criticalSecurityIssue
$schema: $schema
alternative:
product: '{}'
plan: '{}'
dateOffset: dateOffset
properties:
$schema:
type: string
alternative:
$ref: '#/components/schemas/AzureMarketplaceDeprecationScheduleAlternative'
date:
description: 'format: date-time'
type: string
dateOffset:
description: 'format: duration'
type: string
reason:
enum:
- criticalSecurityIssue
- endOfSupport
- other
type: string
type: object
AzureLocalizedDateTime:
example:
dateTimeInUtc: dateTimeInUtc
localizePerMarket: true
properties:
dateTimeInUtc:
type: string
localizePerMarket:
type: boolean
type: object
GcpMarketplaceProductMeteringMetric:
example:
priceTiers:
- startingUsageAmount: startingUsageAmount
price:
nanos: 1
units: units
currencyCode: currencyCode
fromAmount: 1.0246457001441578
- startingUsageAmount: startingUsageAmount
price:
nanos: 1
units: units
currencyCode: currencyCode
fromAmount: 1.0246457001441578
displayUnitDescription: displayUnitDescription
unit: unit
metricKind: metricKind
displayName: displayName
valueType: '{}'
name: name
description: description
displayUnit: displayUnit
id: id
reportingUnit: reportingUnit
skuId: skuId
properties:
description:
description: 'Description: A detailed description of the metric, which can be used in documentation.'
type: string
displayName:
type: string
displayUnit:
description: such as "min"
type: string
displayUnitDescription:
description: such as "minute"
type: string
id:
description: 'The usage metering metric/dimension key
It is in format of "{plan_id}_{usage_dimension_key}". For example, "basic_plan_storage".'
type: string
metricKind:
description: such as "DELTA"
type: string
name:
description: 'Name: The resource name of the metric descriptor,
in format of "{productServiceName}/{plan_id}_{usage_dimension_key}"'
type: string
priceTiers:
description: 'Price info of this usage metering metric.
Only applicable for the default offer (plan) and private offer.'
items:
$ref: '#/components/schemas/GcpPriceTier'
type: array
reportingUnit:
description: such as "min"
type: string
skuId:
description: The SKU ID of this usage metering metric. Applicable only in Private Offer.
type: string
unit:
description: such as "min"
type: string
valueType:
allOf:
- $ref: '#/components/schemas/ValueType'
description: such as "INT64"
type: object
type: object
AzureProductFeatureAvailability:
example:
markets:
- marketCode: marketCode
friendlyName: friendlyName
- marketCode: marketCode
friendlyName: friendlyName
visibility: Public
priceSchedules:
- isBaseSchedule: true
schedules:
- pricingModel: Flat
pricingUnits:
- unitType: unitType
name: sharedcore
lowerUnit: 9
upperUnit: 6
isUnlimitedUnit: true
- unitType: unitType
name: sharedcore
lowerUnit: 9
upperUnit: 6
isUnlimitedUnit: true
priceCadence:
type: Month
value: 9
retailPrice:
openPrice: 8.762042012749001
priceTierID: priceTierID
currencyCode: currencyCode
- pricingModel: Flat
pricingUnits:
- unitType: unitType
name: sharedcore
lowerUnit: 9
upperUnit: 6
isUnlimitedUnit: true
- unitType: unitType
name: sharedcore
lowerUnit: 9
upperUnit: 6
isUnlimitedUnit: true
priceCadence:
type: Month
value: 9
retailPrice:
openPrice: 8.762042012749001
priceTierID: priceTierID
currencyCode: currencyCode
dateTimeRange:
endAt:
dateTimeInUtc: dateTimeInUtc
localizePerMarket: true
startAt:
dateTimeInUtc: dateTimeInUtc
localizePerMarket: true
marketCodes:
- marketCodes
- marketCodes
friendlyName: friendlyName
- isBaseSchedule: true
schedules:
- pricingModel: Flat
pricingUnits:
- unitType: unitType
name: sharedcore
lowerUnit: 9
upperUnit: 6
isUnlimitedUnit: true
- unitType: unitType
name: sharedcore
lowerUnit: 9
upperUnit: 6
isUnlimitedUnit: true
priceCadence:
type: Month
value: 9
retailPrice:
openPrice: 8.762042012749001
priceTierID: priceTierID
currencyCode: currencyCode
- pricingModel: Flat
pricingUnits:
- unitType: unitType
name: sharedcore
lowerUnit: 9
upperUnit: 6
isUnlimitedUnit: true
- unitType: unitType
name: sharedcore
lowerUnit: 9
upperUnit: 6
isUnlimitedUnit: true
priceCadence:
type: Month
value: 9
retailPrice:
openPrice: 8.762042012749001
priceTierID: priceTierID
currencyCode: currencyCode
dateTimeRange:
endAt:
dateTimeInUtc: dateTimeInUtc
localizePerMarket: true
startAt:
dateTimeInUtc: dateTimeInUtc
localizePerMarket: true
marketCodes:
- marketCodes
- marketCodes
friendlyName: friendlyName
customMeters:
- unitOfMeasure: unitOfMeasure
displayName: displayName
includedBaseQuantities:
- quantity: 1.2315135367772556
isInfinite: true
recurringUnit: Monthly
- quantity: 1.2315135367772556
isInfinite: true
recurringUnit: Monthly
isEnabled: true
priceInUsd: 5.025004791520295
id: id
uniqueID: uniqueID
- unitOfMeasure: unitOfMeasure
displayName: displayName
includedBaseQuantities:
- quantity: 1.2315135367772556
isInfinite: true
recurringUnit: Monthly
- quantity: 1.2315135367772556
isInfinite: true
recurringUnit: Monthly
isEnabled: true
priceInUsd: 5.025004791520295
id: id
uniqueID: uniqueID
marketStates:
- marketCode: marketCode
state: Disabled
- marketCode: marketCode
state: Disabled
tenantAudiences:
- description: description
id: id
- description: description
id: id
subscriptionAudiences:
- description: description
id: id
- description: description
id: id
id: id
properties:
- type: type
value: value
- type: type
value: value
trial:
duration: 9
dateTimeRange:
endAt:
dateTimeInUtc: dateTimeInUtc
localizePerMarket: true
startAt:
dateTimeInUtc: dateTimeInUtc
localizePerMarket: true
type: NoTrial
durationType: Minute
isHidden: true
resourceType: resourceType
properties:
customMeters:
items:
$ref: '#/components/schemas/AzureProductVariantCustomMeter'
type: array
id:
type: string
isHidden:
type: boolean
marketStates:
items:
$ref: '#/components/schemas/AzureMarketState'
type: array
markets:
items:
$ref: '#/components/schemas/AzureMarket'
type: array
priceSchedules:
items:
$ref: '#/components/schemas/AzureProductVariantPriceSchedule'
type: array
properties:
items:
$ref: '#/components/schemas/AzureTypeValue'
type: array
resourceType:
description: ResourceType = FeatureAvailability
type: string
subscriptionAudiences:
items:
$ref: '#/components/schemas/AzureAudience'
type: array
tenantAudiences:
items:
$ref: '#/components/schemas/AzureAudience'
type: array
trial:
$ref: '#/components/schemas/AzureProductVariantTrial'
visibility:
enum:
- Public
- Private
type: string
type: object
GcpMarketplaceProductExternalAccountSpec:
example:
signupUri: signupUri
loginUri: loginUri
singleSignOnUri: singleSignOnUri
properties:
loginUri:
type: string
signupUri:
type: string
singleSignOnUri:
type: string
type: object
AzureMarketplacePlanListing:
example:
summary: summary
lifecycleState: null
product: product
$schema: $schema
kind: azureVM-plan
languageId: languageId
name: name
description: description
resourceName: resourceName
id: id
validations:
- resourceId: resourceId
code: businessValidationError
$schema: $schema
level: informational
message: message
- resourceId: resourceId
code: businessValidationError
$schema: $schema
level: informational
message: message
plan: plan
properties:
$schema:
type: string
description:
type: string
id:
type: string
kind:
enum:
- azureVM-plan
- azureSaaS-plan
- azureCoreVM-plan
- azureContainer-plan
type: string
languageId:
type: string
lifecycleState:
$ref: '#/components/schemas/AzureMarketplaceResourceLifecycleState'
name:
type: string
plan:
type: string
product:
type: string
resourceName:
type: string
summary:
type: string
validations:
items:
$ref: '#/components/schemas/AzureMarketplaceValidation'
type: array
type: object
AlibabaMarketplaceProduct:
example:
FrontCategoryId: 6
Status: Status
Description: Description
RequestId: RequestId
ShopInfo:
WangWangs:
WangWang:
- UserName: UserName
Remark: Remark
- UserName: UserName
Remark: Remark
Telephones:
Telephone:
- Telephone
- Telephone
Emails: Emails
Id: 7
Name: Name
ProductSkus:
ProductSku:
- Constraints: Constraints
ChargeType: ChargeType
Modules:
Mo
# --- truncated at 32 KB (571 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/suger/refs/heads/main/openapi/suger-product-api-openapi.yml