> ## 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 permissions

> Récupérer les autorisations de modification des étapes pour un pipeline spécifique dans votre compte HubSpot. Ce point de terminaison vous permet de consulter les autorisations définies pour la modification des étapes au sein d'un pipeline donné, identifié par son type d'objet et son ID de pipeline. Cela peut être utile pour gérer l'accès et garantir que seuls les utilisateurs autorisés peuvent modifier les étapes du pipeline.

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} data={true} marketingLevel="professional" salesLevel="professional" serviceLevel="professional" cmsLevel="professional" dataLevel="professional" />
  </Accordion>

  <Accordion title="Required Scopes" icon="key">
    <ScopesList
      scopes={[
  'crm-pipelines-locked-stages-access',
  'pipeline-level-permissions-access'
]}
    />
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml specs/2026-09/crm-pipeline-governance-v2026-09.json GET /crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}/stage-edit-permissions
openapi: 3.0.1
info:
  title: CRM Pipeline Governance
  description: Basepom for all HubSpot Projects
  version: 2026-09
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: FREE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Advanced
  - name: Basic
paths:
  /crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}/stage-edit-permissions:
    get:
      tags:
        - Basic
      summary: Récupérer les autorisations
      description: >-
        Récupérer les autorisations de modification des étapes pour un pipeline
        spécifique dans votre compte HubSpot. Ce point de terminaison vous
        permet de consulter les autorisations définies pour la modification des
        étapes au sein d'un pipeline donné, identifié par son type d'objet et
        son ID de pipeline. Cela peut être utile pour gérer l'accès et garantir
        que seuls les utilisateurs autorisés peuvent modifier les étapes du
        pipeline.
      operationId: >-
        get-/crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}/stage-edit-permissions
      parameters:
        - name: objectTypeId
          in: path
          description: >-
            L'identifiant unique du type d'objet pour lequel les autorisations
            de modification des étapes du pipeline sont récupérées.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: pipelineId
          in: path
          description: >-
            L'identifiant unique du pipeline dont les autorisations de
            modification des étapes sont récupérées.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicPipelineStagePermissions'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - crm.pipelines.stage_permissions.read
components:
  schemas:
    PublicPipelineStagePermissions:
      required:
        - createdAt
        - id
        - objectTypeId
        - pipelineId
        - stages
        - updatedAt
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            La date et l'heure de création de ces autorisations, au format ISO
            8601.
          format: date-time
        id:
          type: string
          description: >-
            L'identifiant unique de cet ensemble d'autorisations d'étape de
            pipeline.
        objectTypeId:
          type: string
          description: L'identifiant du type d'objet associé à ces autorisations.
        pipelineId:
          type: string
          description: >-
            L'identifiant unique du pipeline auquel s'appliquent ces
            autorisations d'étape.
        stages:
          type: array
          description: >-
            Un tableau de permissions d'étape, chacune définissant les règles
            d'accès pour une étape spécifique au sein du pipeline.
          items:
            $ref: '#/components/schemas/PublicStagePermission'
        updatedAt:
          type: string
          description: >-
            La date et l'heure de la dernière mise à jour de ces autorisations,
            au format ISO 8601.
          format: date-time
    PublicStagePermission:
      required:
        - label
        - permissionMode
        - pipelineStageId
        - superAdmin
        - teamIds
        - userIds
      type: object
      properties:
        label:
          type: string
          description: >-
            Une étiquette descriptive pour l'étape, utilisée comme affichage. Il
            s'agit d'une chaîne qui aide à identifier le but ou la fonction de
            l'étape.
        permissionMode:
          type: string
          description: "Définit le mode d'autorisation pour l'étape. Il s'agit d'une chaîne de caractères qui peut être «\_OUVERT\_» ou «\_RESTREINT\_», indiquant si l'étape est accessible à tous les utilisateurs ou restreinte à certains utilisateurs ou équipes."
          enum:
            - OPEN
            - RESTRICTED
        pipelineStageId:
          type: string
          description: >-
            L'identifiant unique de l'étape du pipeline. Il s'agit d'une chaîne
            qui distingue cette étape des autres au sein du pipeline.
        superAdmin:
          type: boolean
          description: "Une valeur booléenne indiquant si les super administrateurs ont accès à cette étape. Si la valeur est «\_true\_», les super administrateurs peuvent accéder à l'étape, quelles que soient les autres permissions."
        teamIds:
          type: array
          description: >-
            Un tableau de chaînes représentant les identifiants des équipes
            ayant accès à cette étape. Cette propriété est utilisée pour
            spécifier quelles équipes sont autorisées à interagir avec l'étape.
          items:
            type: string
        userIds:
          type: array
          description: >-
            Un tableau de chaînes représentant les identifiants des utilisateurs
            individuels ayant accès à cette étape. Cette propriété permet de
            spécifier le contrôle d'accès au niveau de l'utilisateur.
          items:
            type: string
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: Une chaîne représentant la catégorie générale de l'erreur.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Un objet contenant un contexte additionnel sur la condition
            d'erreur, avec des propriétés sous forme de tableaux de chaînes de
            caractères.
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Une chaîne qui identifie de manière unique la requête à des fins de
            suivi et de débogage.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: >-
            Un tableau d'objets ErrorDetail qui fournissent des informations
            détaillées sur chaque erreur rencontrée.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Un objet contenant des liens connexes, où chaque clé est une chaîne
            de caractères et la valeur est une chaîne de caractères représentant
            une URL.
        message:
          type: string
          description: Message lisible par l'être humain décrivant l'erreur.
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Une chaîne fournissant des détails plus spécifiques sur la catégorie
            d'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 de statut associé au détail de l'erreur. Il s'agit d'une
            propriété de chaîne.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Contexte de la condition d'erreur, représenté comme un objet avec
            des propriétés supplémentaires. Chaque propriété est un tableau de
            chaînes fournissant des détails supplémentaires.
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: >-
            Le nom du champ ou du paramètre dans lequel l'erreur a été trouvée.
            Il s'agit d'une propriété de chaîne.
        message:
          type: string
          description: >-
            Un message lisible par l'utilisateur décrivant l'erreur, accompagné,
            le cas échéant, des étapes de correction. Il s'agit d'une propriété
            de chaîne obligatoire.
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur. Il s'agit d'une propriété de chaîne.
      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:
            crm.pipelines.approval.read: ''
            crm.pipelines.governance.read: ''
            crm.pipelines.governance.write: ''
            crm.pipelines.stage_permissions.read: ''
            crm.pipelines.stage_permissions.write: ''

````