TM Forum quote API

The quote API from TM Forum — 2 operation(s) for quote.

Operations 5

GET /quote List or find Quote objects #
POST /quote Creates a Quote #
GET /quote/{id} Retrieves a Quote by ID #
PATCH /quote/{id} Updates partially a Quote #
DELETE /quote/{id} Deletes a Quote #

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tm-forum-quote-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

tm-forum-quote-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Quote API
  description: '**TMF API Reference : TMF 648 - Quote Management**


    **Release : 19.0 - June 2019**


    The Quote API provides a standardized mechanism for placing a quote with all of the necessary parameters. The API consists of a simple set of operations that interact with CRM/Quote/Pricing Negotiation systems in a consistent manner. A Quote is created based on product offering(s) that is(are) defined in a catalog. The quote identifies the product or set of products that are available to a customer for pricing request, and includes product characteristics.


    The Quote references the product offer(s) which (future) customer request pricing.

    Quote resource features authorization subclass to manage special pricing UC requiring authorization tracking management


    **Quote resource**

    A Quote can be used to request pricing between a customer and a service provider or between a service provider and a partner and vice versa. Main quote attributes are its identifier, state, priority, related dates (requested, expected, valid, completion, etc.), related parties and quote items. Main Quote Items attributes are the discribed offering and product characteristics with the related action to be performed (e.g. add, change or delete the products), location information, and product characteristics.


    Quote API performs the following operations on Quote :


    - Retrieval of a quote or a collection of quotes depending on filter criteria

    - Partial update of a quote (including updating rules)

    - Creation of a quote (including default values and creation rules)

    - Deletion of quote (for administration purposes)

    - Notification of events on quote.


    Copyright © TM Forum 2019. All Rights Reserved


    '
  version: 4.0.0
servers:
- url: https://serverRoot/tmf-api/quoteManagement/v4/
tags:
- name: quote
paths:
  /quote:
    get:
      operationId: listQuote
      summary: List or find Quote objects
      description: This operation list or find Quote entities
      tags:
      - quote
      parameters:
      - name: fields
        description: Comma-separated properties to be provided in response
        required: false
        in: query
        schema:
          type: string
      - name: offset
        description: Requested index for start of resources to be provided in response
        required: false
        in: query
        schema:
          type: integer
      - name: limit
        description: Requested number of resources to be provided in response
        required: false
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: Success
          headers:
            X-Result-Count:
              description: Actual number of items returned in the response body
              schema:
                type: integer
            X-Total-Count:
              description: Total number of items matching criteria
              schema:
                type: integer
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Quote'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: createQuote
      summary: Creates a Quote
      description: This operation creates a Quote entity.
      tags:
      - quote
      responses:
        '200':
          description: Success
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Quote'
        '201':
          description: Created
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Quote'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/Quote_Create'
        description: The Quote to be created
        required: true
  /quote/{id}:
    get:
      operationId: retrieveQuote
      summary: Retrieves a Quote by ID
      description: This operation retrieves a Quote entity. Attribute selection is enabled for all first level attributes.
      tags:
      - quote
      parameters:
      - name: id
        description: Identifier of the Quote
        required: true
        in: path
        schema:
          type: string
      - name: fields
        description: Comma-separated properties to provide in response
        required: false
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Quote'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      operationId: patchQuote
      summary: Updates partially a Quote
      description: This operation updates partially a Quote entity.
      tags:
      - quote
      parameters:
      - name: id
        description: Identifier of the Quote
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Updated
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Quote'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/Quote_Update'
        description: The Quote to be updated
        required: true
    delete:
      operationId: deleteQuote
      summary: Deletes a Quote
      description: This operation deletes a Quote entity.
      tags:
      - quote
      parameters:
      - name: id
        description: Identifier of the Quote
        required: true
        in: path
        schema:
          type: string
      responses:
        '204':
          description: Deleted
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Quantity:
      type: object
      description: An amount in a given unit
      properties:
        amount:
          default: 1
          type: number
          format: float
          description: Numeric value in a given unit
        units:
          type: string
          description: Unit
    ProductTerm:
      type: object
      description: Description of a productTerm linked to this product. This represent a commitment with a duration
      properties:
        description:
          type: string
          description: Description of the productTerm
        name:
          type: string
          description: Name of the productTerm
        duration:
          $ref: '#/components/schemas/Quantity'
          description: Duration of the productTerm
        validFor:
          $ref: '#/components/schemas/TimePeriod'
          description: productTerm validity period
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          format: uri
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class entity name
    ProductOfferingRef:
      type: object
      description: ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.
      properties:
        id:
          type: string
          description: Unique identifier of a related entity.
        href:
          type: string
          description: Reference of the related entity.
        name:
          type: string
          description: Name of the related entity.
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          format: uri
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class entity name
        '@referredType':
          type: string
          description: The actual type of the target instance when needed for disambiguation.
      required:
      - id
    Error:
      description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)
      type: object
      required:
      - code
      - reason
      properties:
        code:
          type: string
          description: Application relevant detail, defined in the API or a common list.
        reason:
          type: string
          description: Explanation of the reason for the error which can be shown to a client user.
        message:
          type: string
          description: More details and corrective actions related to the error which can be shown to a client user.
        status:
          type: string
          description: HTTP Error code extension
        referenceError:
          type: string
          format: uri
          description: URI of documentation describing the error.
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class.
        '@schemaLocation':
          type: string
          format: uri
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class entity name.
    ProductSpecificationRef:
      type: object
      description: 'Product specification reference: A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.'
      properties:
        id:
          type: string
          description: Unique identifier of a related entity.
        href:
          type: string
          description: Reference of the related entity.
        name:
          type: string
          description: Name of the related entity.
        version:
          type: string
          description: Version of the product specification
        targetProductSchema:
          $ref: '#/components/schemas/TargetProductSchema'
          description: A target product schema reference. The reference object to the schema and type of target product which is described by product specification.
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          format: uri
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class entity name
        '@referredType':
          type: string
          description: The actual type of the target instance when needed for disambiguation.
      required:
      - id
    ProductRefOrValue:
      type: object
      description: A product to be created defined by value or existing defined by reference. The polymorphic attributes @type, @schemaLocation & @referredType are related to the product entity and not the RelatedProductRefOrValue class itself
      properties:
        id:
          type: string
          description: Unique identifier of the product
        href:
          type: string
          description: Reference of the product
        description:
          type: string
          description: Is the description of the product. It could be copied from the description of the Product Offering.
        isBundle:
          type: boolean
          description: If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering.
        isCustomerVisible:
          type: boolean
          description: If true, the product is visible by the customer.
        name:
          type: string
          description: Name of the product. It could be the same as the name of the product offering
        orderDate:
          type: string
          format: date-time
          description: Is the date when the product was ordered
        productSerialNumber:
          type: string
          description: Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router.
        startDate:
          type: string
          format: date-time
          description: Is the date from which the product starts
        terminationDate:
          type: string
          format: date-time
          description: Is the date when the product was terminated
        agreement:
          type: array
          items:
            $ref: '#/components/schemas/AgreementItemRef'
        billingAccount:
          $ref: '#/components/schemas/BillingAccountRef'
        place:
          type: array
          items:
            $ref: '#/components/schemas/RelatedPlaceRefOrValue'
        product:
          type: array
          items:
            $ref: '#/components/schemas/ProductRefOrValue'
        productCharacteristic:
          type: array
          items:
            $ref: '#/components/schemas/Characteristic'
        productOffering:
          $ref: '#/components/schemas/ProductOfferingRef'
        productOrderItem:
          type: array
          items:
            $ref: '#/components/schemas/RelatedProductOrderItem'
        productPrice:
          type: array
          items:
            $ref: '#/components/schemas/ProductPrice'
        productRelationship:
          type: array
          items:
            $ref: '#/components/schemas/ProductRelationship'
        productSpecification:
          $ref: '#/components/schemas/ProductSpecificationRef'
        productTerm:
          type: array
          items:
            $ref: '#/components/schemas/ProductTerm'
        realizingResource:
          type: array
          items:
            $ref: '#/components/schemas/ResourceRef'
        realizingService:
          type: array
          items:
            $ref: '#/components/schemas/ServiceRef'
        relatedParty:
          type: array
          items:
            $ref: '#/components/schemas/RelatedParty'
        status:
          $ref: '#/components/schemas/ProductStatusType'
          description: Is the lifecycle status of the product.
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          format: uri
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class entity name
        '@referredType':
          type: string
          description: The actual type of the target instance when needed for disambiguation.
    RelatedPlaceRefOrValue:
      type: object
      description: Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself
      required:
      - role
      properties:
        id:
          type: string
          description: Unique identifier of the place
        href:
          type: string
          description: Unique reference of the place
        name:
          type: string
          description: A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]
        role:
          type: string
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          format: uri
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class entity name
        '@referredType':
          type: string
          description: The actual type of the target instance when needed for disambiguation.
    TargetProductSchema:
      type: object
      description: The reference object to the schema and type of target product which is described by product specification
      required:
      - '@schemaLocation'
      - '@type'
      properties:
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          description: This field provides a link to the schema describing the target product
        '@type':
          type: string
          description: Class type of the target product
    Quote_Create:
      type: object
      description: 'Quote can be used to negotiate service and product acquisition or modification between a customer and a service provider. Quote contain list of quote items, a reference to customer (partyRole), a list of productOffering and attached prices and conditions.

        Skipped properties: href,quoteDate,state,effectiveQuoteCompletionDate,quoteAuthorization,quoteTotalPrice,expectedQuoteCompletionDate,validFor'
      required:
      - quoteItem
      properties:
        id:
          type: string
          description: Unique identifier - attributed by quoting system
        category:
          type: string
          description: Used to categorize the quote from a business perspective that can be useful for the CRM system (e.g. "enterprise", "residential", ...)
        description:
          type: string
          description: Description of the quote
        expectedFulfillmentStartDate:
          type: string
          format: date-time
          description: this is the date wished by the requester to have the requested quote item delivered
        externalId:
          type: string
          description: ID given by the consumer and only understandable by him (to facilitate his searches afterwards)
        instantSyncQuote:
          type: boolean
          description: 'An indicator which when the value is "true" means that requester expects to get quoting result immediately in the response. If the indicator is true then the response code of 200 indicates the operation is successful otherwise a task is created with a response 201. '
        requestedQuoteCompletionDate:
          type: string
          format: date-time
          description: This is requested date - from quote requester - to get a complete response for this quote
        version:
          type: string
          description: Quote version - if the customer rejected the quote but  negotiations still open a new version of the quote is managed
        agreement:
          type: array
          items:
            $ref: '#/components/schemas/AgreementRef'
          description: A reference to an agreement defining the context of the quote
        authorization:
          type: array
          items:
            $ref: '#/components/schemas/Authorization'
          description: An authorization provided for the quote
        billingAccount:
          type: array
          items:
            $ref: '#/components/schemas/BillingAccountRef'
          description: 'A reference to a billing account to provide quote context information '
        contactMedium:
          type: array
          items:
            $ref: '#/components/schemas/ContactMedium'
          description: Information contact related to the quote requester
        note:
          type: array
          items:
            $ref: '#/components/schemas/Note'
          description: Free form text associated with the quote
        productOfferingQualification:
          type: array
          items:
            $ref: '#/components/schemas/ProductOfferingQualificationRef'
          description: A reference to a previously done product offering qualification
        quoteItem:
          type: array
          items:
            $ref: '#/components/schemas/QuoteItem'
          minItems: 1
          description: An item of the quote - it is used to descirbe an operation on a product to be quoted
        relatedParty:
          type: array
          items:
            $ref: '#/components/schemas/RelatedParty'
          description: A reference to a party playing a role in this quote (customer, seller, requester, etc.)
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          format: uri
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class entity name
    ProductStatusType:
      type: string
      description: Possible values for the status of the product
      enum:
      - created
      - pendingActive
      - cancelled
      - active
      - pendingTerminate
      - terminated
      - suspended
      - 'aborted '
    TimePeriod:
      type: object
      description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both
      properties:
        endDateTime:
          type: string
          format: date-time
          description: End of the time period, using IETC-RFC-3339 format
        startDateTime:
          type: string
          format: date-time
          description: Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end
    ProductOfferingQualificationItemRef:
      type: object
      description: It's a productOfferingQualification item that has been executed previously.
      required:
      - id
      - productOfferingQualificationId
      properties:
        id:
          type: string
          description: Id of an item of a product offering qualification
        href:
          type: string
          description: Reference of the related entity.
        name:
          type: string
          description: Name of the related entity.
        productOfferingQualificationHref:
          type: string
          description: Reference of the related entity.
        productOfferingQualificationId:
          type: string
          description: Unique identifier of a related entity.
        productOfferingQualificationName:
          type: string
          description: Name of the related entity.
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          format: uri
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class entity name
        '@referredType':
          type: string
          description: The actual type of the target instance when needed for disambiguation.
    Note:
      type: object
      description: Extra information about a given entity
      required:
      - text
      - id
      properties:
        id:
          type: string
          description: Identifier of the note within its containing entity (may or may not be globally unique, depending on provider implementation)
        author:
          type: string
          description: Author of the note
        date:
          type: string
          format: date-time
          description: Date of the note
        text:
          type: string
          description: Text of the note
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          format: uri
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class entity name
    AgreementItemRef:
      type: object
      description: Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.
      properties:
        id:
          type: string
          description: Unique identifier of a related entity.
        href:
          type: string
          description: Reference of the related entity.
        agreementItemId:
          type: string
          description: Identifier of the agreement
        name:
          type: string
          description: Name of the related entity.
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          format: uri
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class entity name
        '@referredType':
          type: string
          description: The actual type of the target instance when needed for disambiguation.
      required:
      - id
    Price:
      type: object
      description: Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price Alteration.
      properties:
        percentage:
          type: number
          format: float
          description: Percentage to apply for ProdOfferPriceAlteration
        taxRate:
          type: number
          format: float
          description: Tax rate
        dutyFreeAmount:
          $ref: '#/components/schemas/Money'
          description: All taxes excluded amount (expressed in the given currency)
        taxIncludedAmount:
          $ref: '#/components/schemas/Money'
          description: All taxes included amount (expresse

# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tm-forum/refs/heads/main/openapi/tm-forum-quote-api-openapi.yml