> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.fr/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve budget totals

> Récupérez des informations détaillées sur le budget et les postes de dépenses pour une campagne spécifiée, y compris le budget total, les dépenses totales et le budget restant.
Les postes de budget et de dépenses peuvent être affichés dans n'importe quel ordre, mais le champ d'ordre spécifie leur séquence en fonction de la date de création. L'élément avec l'ordre ​0 est le plus ancien, et les éléments avec des valeurs d'ordre plus élevées sont plus récents.

export const ScopesList = ({scopes = [], description = "Cette API requiert l'une des portées suivantes :"}) => {
  if (!scopes || scopes.length === 0) {
    return null;
  }
  const sortedScopes = scopes.sort((a, b) => a.localeCompare(b));
  return <div>
      <div className="text-sm mb-2">{description}</div>
      <div>
        {sortedScopes.map((scope, index) => <div key={index}>
            <code>
              <span className="text-xs">{scope}</span>
            </code>
          </div>)}
      </div>
    </div>;
};

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Produits pris en charge",
    description: "Exige l'un des produits suivants ou un produit supérieur.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Gratuit",
      starter: "Starter",
      professional: "Pro",
      enterprise: "Entreprise"
    }
  };
  const translateTier = tier => {
    if (!tier) return '';
    const lowerTier = tier.toLowerCase();
    return translations.tiers[lowerTier] || tier;
  };
  const products = [{
    name: marketing ? translations.productNames.marketing : '',
    level: translateTier(marketingLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/marketing-bolt.svg",
    alt: "Marketing Hub"
  }, {
    name: sales ? translations.productNames.sales : '',
    level: translateTier(salesLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/sales-star.svg",
    alt: "Sales Hub"
  }, {
    name: service ? translations.productNames.service : '',
    level: translateTier(serviceLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/service-heart.svg",
    alt: "Service Hub"
  }, {
    name: cms ? translations.productNames.cms : '',
    level: translateTier(cmsLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/content-play.svg",
    alt: "Content Hub"
  }].filter(product => product.name && product.level);
  if (products.length === 0) return null;
  return <div>
      <div className="text-sm mb-2">{translations.description}</div>
      <div className={`grid ${products.length === 1 ? 'grid-cols-1' : 'grid-cols-2'} gap-1.5`}>
        {products.map((product, index) => <div key={index} style={{
    display: 'flex',
    alignItems: 'center'
  }}>
            <img src={product.icon} alt={product.alt} className="w-3.5 h-3.5 mr-1.5 mt-2.5 mb-2.5 flex-shrink-0 align-middle" />
            <span className="font-medium mr-1 text-sm">{product.name} -</span>
            <span className="text-sm">{product.level}</span>
          </div>)}
      </div>
    </div>;
};

<AccordionGroup>
  <Accordion title="Supported products" defaultOpen="true" icon="cubes">
    <SupportedProducts marketing={true} sales={true} service={true} cms={true} marketingLevel="PROFESSIONAL" salesLevel="FREE" serviceLevel="FREE" cmsLevel="FREE" />
  </Accordion>

  <Accordion title="Required Scopes" icon="key">
    <ScopesList
      scopes={[
  'marketing.campaigns.read'
]}
    />
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml specs/legacy/v3/marketing-campaigns-public-api-v3.json GET /marketing/v3/campaigns/{campaignGuid}/budget/totals
openapi: 3.0.1
info:
  title: Marketing Campaigns Public Api
  description: Basepom for all HubSpot Projects
  version: v3
  x-hubspot-product-tier-requirements:
    marketing: PROFESSIONAL
    sales: FREE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
  x-hubspot-related-documentation:
    - name: Campaigns
      url: https://developers.hubspot.com/docs/guides/api/marketing/campaigns
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Assets
  - name: Basic
  - name: Batch
  - name: Budget
  - name: Metrics
  - name: Spend
paths:
  /marketing/v3/campaigns/{campaignGuid}/budget/totals:
    get:
      tags:
        - Budget
      summary: Lire le budget
      description: "Récupérez des informations détaillées sur le budget et les postes de dépenses pour une campagne spécifiée, y compris le budget total, les dépenses totales et le budget restant.\nLes postes de budget et de dépenses peuvent être affichés dans n'importe quel ordre, mais le champ d'ordre spécifie leur séquence en fonction de la date de création. L'élément avec l'ordre\_​0 est le plus ancien, et les éléments avec des valeurs d'ordre plus élevées sont plus récents."
      operationId: get-/marketing/v3/campaigns/{campaignGuid}/budget/totals
      parameters:
        - name: campaignGuid
          in: path
          description: "L'UUID de la campagne, requis\nExemple\_: 9dbec438-53e2-4b28-8c0f-38f56574a6e8"
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBudgetTotals'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - marketing.campaigns.read
components:
  schemas:
    PublicBudgetTotals:
      required:
        - budgetItems
        - currencyCode
        - spendItems
      type: object
      properties:
        budgetItems:
          type: array
          description: >-
            Un tableau d'éléments budgétaires associés à la campagne. Chaque
            élément est représenté par un objet PublicBudgetItem.
          items:
            $ref: '#/components/schemas/PublicBudgetItem'
        budgetTotal:
          type: number
          description: Le budget total attribué à la campagne.
        currencyCode:
          type: string
          description: "Le code de devise utilisé pour le budget et les montants dépensés, conformément à la norme ISO\_4217."
          enum:
            - AED
            - AFN
            - ALL
            - AMD
            - ANG
            - AOA
            - ARS
            - AUD
            - AWG
            - AZN
            - BAM
            - BBD
            - BDT
            - BGN
            - BHD
            - BIF
            - BMD
            - BND
            - BOB
            - BOV
            - BRL
            - BSD
            - BTN
            - BWP
            - BYN
            - BZD
            - CAD
            - CDF
            - CHE
            - CHF
            - CHW
            - CLF
            - CLP
            - CNY
            - COP
            - COU
            - CRC
            - CUC
            - CUP
            - CVE
            - CZK
            - DJF
            - DKK
            - DOP
            - DZD
            - EGP
            - ERN
            - ETB
            - EUR
            - FJD
            - FKP
            - GBP
            - GEL
            - GHS
            - GIP
            - GMD
            - GNF
            - GTQ
            - GYD
            - HKD
            - HNL
            - HRK
            - HTG
            - HUF
            - IDR
            - ILS
            - INR
            - IQD
            - IRR
            - ISK
            - JMD
            - JOD
            - JPY
            - KES
            - KGS
            - KHR
            - KMF
            - KPW
            - KRW
            - KWD
            - KYD
            - KZT
            - LAK
            - LBP
            - LKR
            - LRD
            - LSL
            - LYD
            - MAD
            - MDL
            - MGA
            - MKD
            - MMK
            - MNT
            - MOP
            - MRU
            - MUR
            - MVR
            - MWK
            - MXN
            - MXV
            - MYR
            - MZN
            - NAD
            - NGN
            - NIO
            - NOK
            - NPR
            - NZD
            - OMR
            - PAB
            - PEN
            - PGK
            - PHP
            - PKR
            - PLN
            - PYG
            - QAR
            - RON
            - RSD
            - RUB
            - RWF
            - SAR
            - SBD
            - SCR
            - SDG
            - SEK
            - SGD
            - SHP
            - SLL
            - SOS
            - SRD
            - SSP
            - STN
            - SVC
            - SYP
            - SZL
            - THB
            - TJS
            - TMT
            - TND
            - TOP
            - TRY
            - TTD
            - TWD
            - TZS
            - UAH
            - UGX
            - USD
            - USN
            - UYI
            - UYU
            - UZS
            - VEF
            - VND
            - VUV
            - WST
            - XAF
            - XAG
            - XAU
            - XBA
            - XBB
            - XBC
            - XBD
            - XCD
            - XDR
            - XOF
            - XPD
            - XPF
            - XPT
            - XSU
            - XUA
            - YER
            - ZAR
            - ZMW
            - ZWL
        remainingBudget:
          type: number
          description: >-
            Budget restant disponible pour la campagne après prise en compte de
            tous les postes de dépenses.
        spendItems:
          type: array
          description: >-
            Un tableau d'éléments de dépenses associés à la campagne. Chaque
            élément est représenté par un objet PublicSpendItem.
          items:
            $ref: '#/components/schemas/PublicSpendItem'
        spendTotal:
          type: number
          description: >-
            Montant total dépensé pour tous les postes de dépenses de la
            campagne.
    PublicBudgetItem:
      required:
        - amount
        - createdAt
        - id
        - name
        - order
        - updatedAt
      type: object
      properties:
        amount:
          type: number
          description: Le montant monétaire attribué au poste budgétaire.
        createdAt:
          type: integer
          description: L'horodatage au moment de la création du poste budgétaire.
          format: int64
        description:
          type: string
          description: Une description du poste budgétaire.
        id:
          type: string
          description: L'identifiant unique du poste budgétaire.
        name:
          type: string
          description: Le nom du poste budgétaire.
        order:
          type: integer
          description: >-
            L'ordre du poste budgétaire indiquant sa séquence en fonction de sa
            date de création.
          format: int32
        updatedAt:
          type: integer
          description: >-
            L'horodatage au moment de la dernière mise à jour du poste
            budgétaire.
          format: int64
    PublicSpendItem:
      required:
        - amount
        - createdAt
        - id
        - name
        - order
        - updatedAt
      type: object
      properties:
        amount:
          type: number
          description: La valeur monétaire associée au poste de dépense.
        createdAt:
          type: integer
          description: L'horodatage indiquant la date de création du poste de dépense.
          format: int64
        description:
          type: string
          description: Explication détaillée ou remarques concernant le poste de dépense.
        id:
          type: string
          description: Identifiant unique du poste de dépense.
        name:
          type: string
          description: Nom attribué au poste de dépense.
        order:
          type: integer
          description: "Ordre séquentiel des dépenses, où 0\_correspond à la plus ancienne."
          format: int32
        updatedAt:
          type: integer
          description: >-
            L'horodatage indiquant la date de la dernière mise à jour du poste
            de dépense.
          format: int64
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: La catégorie d'erreur
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexte concernant la condition d'erreur
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Un identifiant unique pour la demande. Incluez cette valeur dans
            tous les rapports d'erreurs ou tickets d'assistance
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: informations supplémentaires à propos de l'erreur
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Une carte des noms de liens vers les URI associés contenant de la
            documentation sur l'erreur ou les mesures correctives recommandées
        message:
          type: string
          description: >-
            Un message lisible par la personne décrivant l'erreur ainsi que les
            mesures correctives possibles, le cas échéant
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur
      description: >-
        Représente une réponse d'erreur renvoyée par l'API lorsqu'une opération
        échoue. Ce composant est utilisé dans divers points de terminaison pour
        fournir des informations détaillées sur l'erreur rencontrée.
      example:
        message: Invalid input (details will vary based on the error)
        correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf
        category: VALIDATION_ERROR
        links:
          knowledge-base: https://www.hubspot.com/products/service/knowledge-base
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: Le code du statut associé au détail de l'erreur
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexte concernant la condition d'erreur
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: Le nom du champ ou du paramètre dans lequel l'erreur a été trouvée.
        message:
          type: string
          description: >-
            Un message lisible par la personne décrivant l'erreur ainsi que les
            mesures correctives possibles, le cas échéant
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur
      description: >-
        Représente des informations détaillées sur une erreur survenue dans
        l'API. Ce composant est utilisé pour fournir un contexte et des
        spécificités supplémentaires sur les erreurs, généralement dans le cadre
        d'une réponse d'erreur.
  responses:
    Error:
      description: An error occurred.
      content:
        '*/*':
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.hubspot.com/oauth/authorize
          tokenUrl: https://api.hubapi.com/oauth/v1/token
          scopes:
            marketing.campaigns.read: ''
            marketing.campaigns.revenue.read: ''
            marketing.campaigns.write: ''

````