---
title: "Update product by external ID"
method: PUT
path: "/products/external/{externalId}"
tags: ["products"]
---

# Update product by external ID

`PUT /products/external/{externalId}`

## Request

- Base URL: `https://api.agentpaid.io/api/v1`
- URL: `https://api.agentpaid.io/api/v1/products/external/{externalId}`
- Auth: HTTP bearer

## Path parameters

- `externalId` string, required

## Request body

- ProductUpdate
  - `name` string
  - `description` string
  - `externalId` string
  - `type` 'agent' | 'product' | 'prepaidCreditBundle'
  - `active` boolean
  - `productCode` string
  - `ProductAttribute` AgentAttribute[]: Pricing attributes for this product
    - `name` string, required
    - `active` boolean, required
    - `pricing` Pricing, required
      - `eventName` string
      - `taxable` boolean, required
      - `creditCost` number, double
      - `chargeType` 'oneTime' | 'recurring' | 'usage' | 'seatBased', required
      - `pricingModel` 'PerUnit' | 'VolumePricing' | 'GraduatedPricing' | 'PrepaidCredits', required
      - `billingFrequency` 'monthly' | 'quarterly' | 'annual', required
      - `pricePoints` object, required
  - `metadata` object

## Response `200`

Success response

- Product: A product in the Paid system (previously called Agent)
  - `id` string, uuid, required
  - `externalId` string, nullable
  - `displayId` string: Human-readable display ID
  - `organizationId` string, uuid, required
  - `name` string, required
  - `description` string, nullable
  - `type` 'agent' | 'product' | 'prepaidCreditBundle', required: The type of product
  - `active` boolean, required
  - `productCode` string, nullable
  - `ProductAttribute` AgentAttribute[]: Pricing attributes for this product
    - `name` string, required
    - `active` boolean, required
    - `pricing` Pricing, required
      - `eventName` string
      - `taxable` boolean, required
      - `creditCost` number, double
      - `chargeType` 'oneTime' | 'recurring' | 'usage' | 'seatBased', required
      - `pricingModel` 'PerUnit' | 'VolumePricing' | 'GraduatedPricing' | 'PrepaidCredits', required
      - `billingFrequency` 'monthly' | 'quarterly' | 'annual', required
      - `pricePoints` object, required
  - `metadata` object, nullable
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

---

[API](https://skmtc.dev/paid/apis/paid-2.md) - [All operations](https://skmtc.dev/paid/apis/paid-2/llms.txt) - [OpenAPI document](https://skmtc.dev/paid/apis/paid-2/revisions/dbdf4a60ed27?raw)
