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

# Update a redirect

> Atualiza as configurações para um redirecionamento de URL existente.

export const ScopesList = ({scopes = [], description = "Esta API requer um dos seguintes escopos:"}) => {
  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: "Produtos suportados",
    description: "Requer um dos seguintes produtos ou superior.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Grátis",
      starter: "Starter",
      professional: "Professional",
      enterprise: "Enterprise"
    }
  };
  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="STARTER" />
  </Accordion>

  <Accordion title="Required Scopes" icon="key">
    <ScopesList
      scopes={[
  'content'
]}
    />
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml specs/2026-03/cms-url-redirects-v2026-03.json PATCH /cms/url-redirects/2026-03/{urlRedirectId}
openapi: 3.0.1
info:
  title: Redirecionamentos de URL
  description: Basepom for all HubSpot Projects
  version: 2026-03
  x-hubspot-product-tier-requirements:
    marketing: PROFESSIONAL
    sales: FREE
    service: FREE
    cms: STARTER
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
  x-hubspot-api-use-case: >-
    Redirecione uma página para outra, ou redirecione um blog inteiro com um URL
    usando variáveis de padrão flexíveis.
  x-hubspot-introduction: >-
    Use a API de redirecionamento de URL para redirecionar o tráfego de uma
    página ou post do blog no HubSpot para qualquer URL. Redirecione páginas
    para URLs específicos ou use redirecionamentos flexíveis para várias páginas
    com variáveis. Saiba mais sobre como gerenciar redirecionamentos no HubSpot.
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Basic
paths:
  /cms/url-redirects/2026-03/{urlRedirectId}:
    patch:
      tags:
        - Basic
      summary: Atualizar um redirecionamento
      description: Atualiza as configurações para um redirecionamento de URL existente.
      operationId: patch-/cms/url-redirects/2026-03/{urlRedirectId}_update
      parameters:
        - name: urlRedirectId
          in: path
          description: ''
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UrlMapping'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UrlMapping'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - content
components:
  schemas:
    UrlMapping:
      required:
        - created
        - destination
        - id
        - isMatchFullUrl
        - isMatchQueryString
        - isOnlyAfterNotFound
        - isPattern
        - isProtocolAgnostic
        - isTrailingSlashOptional
        - precedence
        - redirectStyle
        - routePrefix
        - updated
      type: object
      properties:
        created:
          type: string
          description: A data e a hora da criação inicial do mapamento de URL.
          format: date-time
        destination:
          type: string
          description: >-
            O URL de destino, onde o URL deve ser redirecionado se corresponder
            a "routePrefix".
        id:
          type: string
          description: O ID exclusivo deste redirecionamento de URL.
        isMatchFullUrl:
          type: boolean
          description: >-
            Se "routePrefix" deve corresponder a todo o URL, incluindo o
            domínio.
        isMatchQueryString:
          type: boolean
          description: >-
            Se "routePrefix" deve corresponder ao caminho completo do URL,
            incluindo a string de consulta.
        isOnlyAfterNotFound:
          type: boolean
          description: >-
            Se o mapeamento do redirecionamento de URL deve ser aplicado apenas
            se uma página ativa no URL não for encontrada. Se falso, o
            mapeamento do redirecionamento de URL terá precedência sobre
            qualquer página existente.
        isPattern:
          type: boolean
          description: Se "routePrefix" deve corresponder com base no padrão.
        isProtocolAgnostic:
          type: boolean
          description: Se "routePrefix" deve corresponder aos protocolos HTTP e HTTPS.
        isTrailingSlashOptional:
          type: boolean
          description: Se uma barra final será ignorada.
        precedence:
          type: integer
          description: >-
            Usado para priorizar o redirecionamento de URL. Se um URL fornecido
            corresponder a mais de um redirecionamento, o redirecionamento com
            **menor** precedência será usado.
          format: int32
        redirectStyle:
          type: integer
          description: >-
            O tipo de redirecionamento a ser criado. As opções incluem: 301
            (permanente), 302 (temporário) ou 305 (proxy). Encontre mais
            detalhes
            [aqui](https://knowledge.hubspot.com/cos-general/how-to-redirect-a-hubspot-page).
          format: int32
        routePrefix:
          type: string
          description: >-
            O URL de entrada, caminho ou padrão de destino a ser correspondido
            para redirecionar.
        updated:
          type: string
          description: A data e a hora da última modificação do mapeamento de URL.
          format: date-time
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: A categoria de erro
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto sobre a condição do erro
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Um identificador exclusivo para a solicitação. Inclua este valor em
            relatórios de erro ou tickets de suporte
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: mais informações sobre o erro
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um mapa de nomes de links para URIs associados que contêm
            documentação sobre o erro ou as etapas de correção recomendadas
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém mais detalhes específicos sobre
            o erro
      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: O código de status associado ao detalhe do erro
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto sobre a condição do erro
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: O nome do campo ou parâmetro no qual o erro foi encontrado.
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém mais detalhes específicos sobre
            o erro
  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:
            cms-url-redirects-delete: ''
            content: ''

````