> ## Documentation Index
> Fetch the complete documentation index at: https://hedera-0c6e0218-docs-smart-contract-pectra-updates-v2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Estimate network fees

> Given a protobuf-encoded HAPI transaction, returns an itemized fee estimate in tinycents.
The response is broken down into `node`, `network`, and `service` components, each with a
`base` price and a list of `extras` (e.g., signatures, memo bytes). The `total` field is
the sum of all subtotals.

When the request transaction sets the [HIP-1313](https://hips.hedera.com/hip/hip-1313)
`high_volume` flag, the response includes a `high_volume_multiplier`. The totals in the
response are **not** pre-multiplied — multiply `total` by `high_volume_multiplier / 1000`
to obtain the high-volume price.




## OpenAPI

````yaml /openapi.yaml post /api/v1/network/fees
openapi: 3.0.3
info:
  title: Mirror Node REST API
  version: 0.154.0
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  description: >-
    The REST API offers the ability to query transactions and entity information
    from a mirror node.


    Base url: [/api/v1](/api/v1)


    OpenAPI Spec: [/api/v1/docs/openapi.yml](/api/v1/docs/openapi.yml)
  contact:
    name: Mirror Node Team
    email: mirrornode@hedera.com
    url: https://github.com/hiero-ledger/hiero-mirror-node
servers:
  - description: The current REST API server
    url: ''
  - description: The production REST API servers
    url: '{scheme}://{network}.mirrornode.hedera.com'
    variables:
      scheme:
        default: https
        description: The URI scheme
        enum:
          - http
          - https
      network:
        default: testnet
        description: The Hedera network in use
        enum:
          - mainnet-public
          - mainnet
          - previewnet
          - testnet
security: []
tags:
  - name: accounts
    description: >-
      The accounts object represents the information associated with an account
      entity and returns a list of account information.The accounts list
      endpoint is cached and not updated as frequently as the account lookup by
      a specific ID endpoint.
    externalDocs:
      url: >-
        https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api#accounts
  - name: balances
    description: >-
      The balance object represents the balance of accounts on the Hedera
      network.
    externalDocs:
      url: >-
        https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api#balances
  - name: contracts
    description: >-
      The contracts objects represents the information associated with contract
      entities.The contracts list endpoint is cached and not updated as
      frequently as the contract lookup by a specific ID endpoint.
  - name: schedules
    description: >-
      The schedules object represents the information associated with a schedule
      entity.The schedules list endpoints is cached and not updated as
      frequently as the schedule lookup by a specific ID endpoint.
  - name: transactions
    description: >-
      The transaction object represents the transactions processed on the Hedera
      network.
    externalDocs:
      url: >-
        https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api#transactions
  - name: topics
    description: >-
      The topics object represents the information associated with a topic
      entity and returns topic messages information.
    externalDocs:
      url: >-
        https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api#topic-messages
  - name: tokens
    description: >-
      The tokens object represents the information associated with a token
      entity and returns a list of token information.The tokens list endpoint is
      cached and not updated as frequently as the token lookup by a specific ID.
externalDocs:
  description: REST API Docs
  url: https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api
paths:
  /api/v1/network/fees:
    post:
      tags:
        - network
      summary: Estimate network fees
      description: >
        Given a protobuf-encoded HAPI transaction, returns an itemized fee
        estimate in tinycents.

        The response is broken down into `node`, `network`, and `service`
        components, each with a

        `base` price and a list of `extras` (e.g., signatures, memo bytes). The
        `total` field is

        the sum of all subtotals.


        When the request transaction sets the
        [HIP-1313](https://hips.hedera.com/hip/hip-1313)

        `high_volume` flag, the response includes a `high_volume_multiplier`.
        The totals in the

        response are **not** pre-multiplied — multiply `total` by
        `high_volume_multiplier / 1000`

        to obtain the high-volume price.
      operationId: estimateFees
      parameters:
        - $ref: '#/components/parameters/estimateModeQueryParam'
        - $ref: '#/components/parameters/highVolumeThrottleQueryParam'
      requestBody:
        description: A protobuf-encoded HAPI `Transaction` to be priced.
        required: true
        content:
          application/protobuf:
            schema:
              type: string
              format: binary
          application/x-protobuf:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeeEstimateResponse'
        '400':
          $ref: '#/components/responses/InvalidParameterError'
        '500':
          $ref: '#/components/responses/ServiceUnavailableError'
components:
  parameters:
    estimateModeQueryParam:
      description: >-
        Estimate solely based on the transaction's inherent properties or use
        network state.
      in: query
      name: mode
      example: INTRINSIC
      schema:
        $ref: '#/components/schemas/FeeEstimateMode'
    highVolumeThrottleQueryParam:
      description: >-
        The high-volume throttle utilization in basis points where 10000 equals
        100%. A value of 0, the default, indicates no high-volume pricing.
      in: query
      name: high_volume_throttle
      example: 10000
      schema:
        type: integer
        minimum: 0
        maximum: 10000
        default: 0
  schemas:
    FeeEstimateResponse:
      description: The response containing the estimated transaction fees.
      properties:
        high_volume_multiplier:
          description: >-
            The high-volume pricing multiplier per HIP-1313. A value of 1
            indicates no high-volume pricing. A value greater than 1 applies
            when the transaction's highVolume flag is true and throttle
            utilization is non-zero.
          example: 100
          format: int64
          minimum: 1
          type: integer
        network:
          $ref: '#/components/schemas/FeeEstimateNetwork'
        node:
          allOf:
            - $ref: '#/components/schemas/FeeEstimate'
            - description: >-
                The node fee component which is to be paid to the node that
                submitted the transaction to the network. This fee exists to
                compensate the node for the work it performed to pre-check the
                transaction before submitting it, and incentivizes the node to
                accept new transactions from users.
        notes:
          description: An array of strings for any caveats.
          example:
            - Fallback to worst-case due to missing state
          items:
            type: string
          type: array
        service:
          allOf:
            - $ref: '#/components/schemas/FeeEstimate'
            - description: >-
                The service fee component which covers execution costs, state
                saved in the Merkle tree, and additional costs to the blockchain
                storage.
        total:
          description: The sum of the network, node, and service subtotals in tinycents.
          example: 1000
          format: int64
          minimum: 0
          type: integer
      required:
        - high_volume_multiplier
        - network
        - node
        - service
        - total
      type: object
    FeeEstimateMode:
      description: >-
        Estimate solely based on the transaction's inherent properties or use
        network state.
      default: INTRINSIC
      enum:
        - INTRINSIC
        - STATE
      type: string
    FeeEstimateNetwork:
      description: >-
        The network fee component which covers the cost of gossip, consensus,
        signature verifications, fee payment, and storage.
      properties:
        multiplier:
          description: Multiplied by the node fee to determine the total network fee.
          example: 2
          format: int32
          minimum: 0
          type: integer
        subtotal:
          description: >-
            The subtotal in tinycents for the network fee component which is
            calculated by multiplying the node subtotal by the network
            multiplier.
          example: 1200
          format: int64
          minimum: 0
          type: integer
      required:
        - multiplier
        - subtotal
      type: object
    FeeEstimate:
      description: >-
        The fee estimate for the network component. Includes the base fee and
        any extras associated with it.
      properties:
        base:
          description: The base fee price, in tinycents.
          example: 1000
          format: int64
          minimum: 0
          type: integer
        extras:
          description: The extra fees that apply for this fee component.
          items:
            $ref: '#/components/schemas/FeeExtra'
          type: array
      required:
        - base
        - extras
      type: object
    Error:
      type: object
      properties:
        _status:
          type: object
          properties:
            messages:
              type: array
              items:
                type: object
                properties:
                  data:
                    description: Error message in hexadecimal
                    example: '0x3000'
                    format: binary
                    nullable: true
                    pattern: ^0x[0-9a-fA-F]+$
                    type: string
                  detail:
                    description: Detailed error message
                    example: Generic detailed error message
                    nullable: true
                    type: string
                  message:
                    description: Error message
                    example: Generic error message
                    nullable: false
                    type: string
    FeeExtra:
      description: The extra fee charged for the transaction.
      properties:
        charged:
          description: >-
            The charged count of items as calculated by `max(0, count -
            included)`.
          example: 1
          format: int64
          minimum: 0
          type: integer
        count:
          description: The actual count of items received.
          example: 2
          format: int64
          minimum: 0
          type: integer
        fee_per_unit:
          description: The fee price per unit in tinycents.
          example: 100
          format: int64
          minimum: 0
          type: integer
        included:
          description: The count of this "extra" that is included for free.
          example: 1
          format: int64
          minimum: 0
          type: integer
        name:
          description: The unique name of this extra fee as defined in the fee schedule.
          example: Signatures
          type: string
        subtotal:
          description: >-
            The subtotal in tinycents for this extra fee. Calculated by
            multiplying the charged count by the fee_per_unit.
          example: 100
          format: int64
          minimum: 0
          type: integer
      required:
        - charged
        - count
        - fee_per_unit
        - included
        - name
        - subtotal
      type: object
  responses:
    InvalidParameterError:
      description: Invalid parameter
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            _status:
              messages:
                - message: 'Invalid parameter: account.id'
                - message: >-
                    Invalid Transaction id. Please use \shard.realm.num-sss-nnn\
                    format where sss are seconds and nnn are nanoseconds
    ServiceUnavailableError:
      description: Service Unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            _status:
              messages:
                - message: >-
                    Require at least 1/3 signature files to prove consensus, got
                    1 out of 4 for file 2019-10-11T13_33_25.526889Z.rcd_sig

````