---
title: "Get opportunity pricing plan costs without specifying an opportunity"
method: GET
path: "/assistedSales/v1/opportunities/pricingPlanCosts"
tags: ["AppResellerOpportunities"]
---

# Get opportunity pricing plan costs without specifying an opportunity

`GET /assistedSales/v1/opportunities/pricingPlanCosts`

## Request

- Base URL: `https://marketplace.appdirect.com/api`
- URL: `https://marketplace.appdirect.com/api/assistedSales/v1/opportunities/pricingPlanCosts`
- Auth: none declared. Required headers: `Accept-Language`
- TypeScript: <https://skmtc.dev/appdirect/apis/companies/docs/assistedSales/v1/opportunities/pricingPlanCosts/get.ts> (a function with typed inputs; its response is checked against the schema)

Read initial costs for a pricing plan of an opportunity item without specifying an opportunity.

'Required: Accept-Language' header with Locale format. For example: en-US

## Query parameters

- `pricingPlanId` string, required
- `ownerId` string, required
- `ownerCompanyId` string, required
- `currency` string, required

## Headers

- `Accept-Language` string, required

## Response `200`

Success

- PricingPlanCosts: Cost details of a pricing plan
  - `pricingPlanId` string: Pricing plan ID
  - `pricing` OpportunityPricing[]: Cost of each quantifiable unit and flat rates
    - `costId` string: The cost ID
    - `costTypeCategory` 'RECURRING' | 'ONE_TIME', required: Category of cost
    - `costType` 'RECURRING_FLAT' | 'ONE_TIME_FLAT' | 'INCLUDED' | 'SETUP_PER_UNIT' | 'RECURRING_PER_UNIT' | 'ONE_TIME_PER_UNIT' | 'SETUP_FEE' | 'CONTRACT_FEE' | 'DISCOUNT_PER_UNIT' | 'DISCOUNT_FLAT' | 'METERED_USAGE', required: Type of cost
    - `frequency` 'ONE_TIME' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'SIX_MONTHS' | 'YEARLY' | 'TWO_YEARS' | 'THREE_YEARS': The pricing period. The billing frequency for the pricing plan.
    - `pricingStrategy` 'FREE' | 'FLAT' | 'UNIT' | 'VOLUME' | 'TIERED' | 'UNLIMITED' | 'CUSTOM', required: Pricing strategy
    - `priceRanges` PriceRangeItem[]: Range of units for which the price is valid
      - `min` string: Minimum number of units for the price range
      - `max` string: Maximum number of units for the price range
    - `description` string: Description of each pricing line
    - `unit` string: Unit
    - `quantity` string: Quantity
    - `salePrice` string, required: Sale price
    - `wholesalePrice` string, required: Wholesale price
    - `totalSalePrice` string, required: Total sale price
  - `contractConfiguration` object: Contract configuration
    - `minimumServiceLength` integer: Contract length. The number of minimumServiceLengthUnits that defines contract duration.
    - `minimumServiceLengthUnit` 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'SIX_MONTHS' | 'YEARLY' | 'TWO_YEARS' | 'THREE_YEARS': Time unit for contract length. This property must have the same value as the contract length unit configured for the pricing plan.
    - `renewalConfiguration` 'MONTH_TO_MONTH' | 'AUTO_RENEW' | 'CANCEL_SUBSCRIPTION': Contract renewal configuration. Whether the contract is renewed and, if so, with what terms.
    - `terminationFee` TerminationFeeAS: Termination fee
      - `feeType` 'NONE' | 'PERCENTAGE' | 'FIXED': Contract termination fee type
      - `amount` number
      - `description` string
    - `terminationFeeGracePeriod` integer: Termination fee grace period duration. Number of terminationFeeGracePeriodUnits that define the risk-free period after the contract starts, during which no termination fee is charged if the customer cancels the contract.
    - `terminationFeeGracePeriodUnit` 'NONE' | 'DAY' | 'MONTH': Termination fee grace period unit. Time unit by which the terminationFeeGracePeriod is measured.
    - `endOfContractGracePeriod` integer: End of contract grace period duration. Number of endofContractGracePeriodUnits that define the period after the contract ends, during which customers can resubscribe before their account and data might be deleted.
    - `endOfContractGracePeriodUnit` 'NONE' | 'INFINITY' | 'DAY' | 'MONTH': End-of-contract grace period unit. Time unit by which the endOfContractGracePeriod is measured.
    - `contractCancellationPeriodLimit` integer: Contract cancellation period limit duration. Number of contractCancellationPeriodUnits that define the period before the contract ends, during which customers can no longer cancel the contract and it is renewed.
    - `contractCancellationPeriodUnit` 'NONE' | 'DAY': Cancellation period unit. Time unit by which the contractCancellationPeriodLimit is measured.
    - `unitTerms` object: Maps a unit type (for example, user) to UnitContractTerms (see object definition). Enabled terms restrict mid-contract quantity changes for the unit type on subscriptions. See example.
      - `default` string
    - `blockContractUpgrades` boolean: Whether subscriptions can be upgraded mid-contract term
    - `blockContractDowngrades` boolean: Whether subscriptions can be downgraded mid-contract term
    - `blockSwitchToShorterContract` boolean: Whether subscriptions can be changed to plans with shorter or no contracts.
    - `keepContractDateOnPlanChange` boolean: Whether the remaining contract duration changes when a user changes a subscription pricing plan
    - `isDefault` boolean: Whether it is a default or custom contract
  - `unitDefinitions` UnitDefinition[]: Definition of all units for an item pricing plan
    - `unit` string: Unit type name
    - `minimum` string: The minimum number of units that users can buy
    - `maximum` string: The maximum number of units that users can buy
    - `quantity` string: Purchase quantity
    - `meteredUsage` boolean: If true, this unit must be configured for metered usage
    - `allowDecimals` boolean: If true, this unit can be purchased in decimal (fractional) quantities
    - `readOnly` boolean: If true, the user cannot set a quantity for this unit at the time of purchase
    - `pricePerIncrement` boolean: If true, the price per increment is displayed. For example, if the unit has a unit price is $1 and users must purchase in increments of 5, the price appears as $5 for 5 units.
    - `increment` number: Restrict users to purchasing the unit in this number of increments. For example, require users to purchase the unit type in increments of 5.

## Other responses

- `400`: Missing or invalid required parameter
- `403`: The user does not have permission to execute the action.

## Changes

- **2026-11-06** `1fc240f06971`: 3 breaking, 12 info
  - the response's body type changed from no type to `object` for status `200`
  - the response's body type changed from no type to `object` for status `400`
  - the response's body type changed from no type to `object` for status `403`
  - added the optional property `contractConfiguration` to the response with the `200` status
  - …11 more

[Operation history](https://skmtc.dev/appdirect/apis/companies/changes/assistedSales/v1/opportunities/pricingPlanCosts/get.md)

---

[API](https://skmtc.dev/appdirect/apis/companies.md) - [All operations](https://skmtc.dev/appdirect/apis/companies/llms.txt) - [OpenAPI document](https://skmtc.dev/appdirect/apis/companies/revisions/1fc240f06971?raw)
