---
title: "Add a new product to G2"
method: POST
path: "/api/v2/products"
tags: ["Products"]
---

# Add a new product to G2

`POST /api/v2/products`

## Request

- Base URL: `https://data.g2.com`
- URL: `https://data.g2.com/api/v2/products`
- Auth: OAuth 2 (authorization code, authorization URL `https://www.g2.com/oauth/authorize`, token URL `https://www.g2.com/oauth/token`, scopes: `products.write`)

**Requires `products.write` scope.**

Submits a new product with the same rules and side effects as the "Add a Product" wizard. Invalid fields return 400 with one error per field (`source.pointer`). Three advisory checks also return 400, with `code` `possible_duplicate`, `b2c_or_ineligible_classification` or `vendor_domain_mismatch`; resubmit with `meta.acknowledge_warnings: true` to create anyway. Vendor restrictions (sanctioned headquarters, frozen profile listings) return 422. Requires a user OAuth token.

## Query parameters

- `fields[products]` string[]
- `include` string[]

## Response `201`

Product created

## Other responses

- `400`: With an unacknowledged warning
- `401`: Unauthenticated
- `403`: With an organization token
- `422`: Vendor located in a sanctioned country

## Changes

- **2026-10-15** `1d01962697b7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/g2/apis/g2-api/changes/api/v2/products/post.md)

---

[API](https://skmtc.dev/g2/apis/g2-api.md) · [All operations](https://skmtc.dev/g2/apis/g2-api/llms.txt) · [OpenAPI document](https://skmtc.dev/g2/apis/g2-api/revisions/ab4256a5f503?raw)
