# G2 on Onekey > 7 endpoints for G2 (0 stable, 7 beta), 2 credits each. Category: E-commerce & marketplaces. One key, one JSON shape. Base URL: https://api.onekey.dev Auth: header `x-api-key: `. Call shape: `GET /v1/{platform}/{endpoint}?{params}`. Every response is `{success, data, metadata, error}`; check `success` first. Cost is in `metadata.credits_charged`. Free when served from cache (0.2 credit for a cached response over 100 KB). Failed and not-found calls are refunded. Status: stable = verified against the live source; beta = not yet verified, fields may be missing. Access: 7 of 7 endpoints are marked "needs a pack" or "may need a pack": free-grant credits reach only the open fetch path; a verified email and a purchased pack unlock the rest. Page: https://onekey.dev/platforms/g2 Reference (Markdown): https://onekey.dev/docs/api/g2.md All docs: https://onekey.dev/llms.txt ## Canonical fields returned Unified-schema fields (same names on every platform), with how many of the 7 mapped G2 endpoints return each: - `entity.id` (string): 5 - `entity.name` (string): 5 - `entity.url` (URL): 5 - `entity.description` (string): 4 - `entity.stats.rating` (number): 4 - `entity.stats.ratingCount` (integer): 4 - `media.thumbnailUrl` (URL): 4 - `author.displayName` (string): 2 - `listing.brand` (string): 2 - `listing.currency` (string): 2 - `listing.price` (number): 2 - `author.bio` (string): 1 - `author.id` (string): 1 - `author.location` (string): 1 - `author.url` (URL): 1 - `content.createdAt` (ISO 8601 date): 1 - `content.id` (string): 1 - `content.text` (string): 1 - `content.title` (string): 1 - `engagement.votes` (integer): 1 - `entity.slug` (string): 1 - `place.address` (string): 1 - `place.city` (string): 1 - `place.lat` (number): 1 - `place.lon` (number): 1 - plus 4 platform-specific fields under `ext.` ## Endpoints ### g2.categories List every G2 software category. - Price: 2 credits per fresh call. Status: beta. Access: needs a pack. Returns: a list. - Request: `GET https://api.onekey.dev/v1/g2/categories` with header `x-api-key: YOUR_API_KEY` - Parameters: none - Fields returned: `entity.id`, `entity.name`, `entity.url`, `entity.slug` - Reference: https://onekey.dev/docs/api/g2/categories.md ### g2.category Products in a G2 category. - Price: 2 credits per fresh call. Status: beta. Access: needs a pack. Returns: a list. - Request: `GET https://api.onekey.dev/v1/g2/category?category=marketing-automation` with header `x-api-key: YOUR_API_KEY` - Parameters: - `category` (string, required): Category slug or full category URL - `cursor` (string, optional): Opaque cursor from a previous response's `pagination.next_cursor`. Omit for the first page. - Fields returned: `entity.id`, `entity.name`, `entity.url`, `entity.description`, `media.thumbnailUrl`, `listing.price`, `listing.currency`, `listing.brand`, `entity.stats.rating`, `entity.stats.ratingCount` - Reference: https://onekey.dev/docs/api/g2/category.md ### g2.product A G2 product by slug. - Price: 2 credits per fresh call. Status: beta. Access: needs a pack. Returns: one record. - Request: `GET https://api.onekey.dev/v1/g2/product?slug=slack` with header `x-api-key: YOUR_API_KEY` - Parameters: - `slug` (string, required): Product or seller slug - Fields returned: `entity.id`, `entity.name`, `entity.url`, `entity.description`, `entity.stats.rating`, `entity.stats.ratingCount`, `media.thumbnailUrl`, `place.address`, `place.city`, `place.lat`, `place.lon`, `ext.phone`, `ext.priceRange` - Reference: https://onekey.dev/docs/api/g2/product.md ### g2.product_index Index of G2 product URLs. - Price: 2 credits per fresh call. Status: beta. Access: needs a pack. Returns: a list. - Request: `GET https://api.onekey.dev/v1/g2/product_index` with header `x-api-key: YOUR_API_KEY` - Parameters: - `cursor` (string, optional): Opaque cursor from a previous response's `pagination.next_cursor`. Omit for the first page. - Fields returned: `entity.id`, `entity.name`, `entity.url`, `entity.description`, `entity.stats.rating`, `entity.stats.ratingCount`, `media.thumbnailUrl` - Reference: https://onekey.dev/docs/api/g2/product_index.md ### g2.reviews Reviews of a G2 product. - Price: 2 credits per fresh call. Status: beta. Access: needs a pack. Returns: a list. - Request: `GET https://api.onekey.dev/v1/g2/reviews?slug=slack` with header `x-api-key: YOUR_API_KEY` - Parameters: - `slug` (string, required): Product or seller slug - `cursor` (string, optional): Opaque cursor from a previous response's `pagination.next_cursor`. Omit for the first page. - Fields returned: `content.id`, `content.title`, `content.text`, `content.createdAt`, `author.displayName`, `engagement.votes`, `ext.rating` - Reference: https://onekey.dev/docs/api/g2/reviews.md ### g2.seller A G2 seller profile. - Price: 2 credits per fresh call. Status: beta. Access: needs a pack. Returns: one record. - Request: `GET https://api.onekey.dev/v1/g2/seller?slug=slack` with header `x-api-key: YOUR_API_KEY` - Parameters: - `slug` (string, required): Product or seller slug - Fields returned: `author.id`, `author.displayName`, `author.url`, `author.bio`, `author.location`, `ext.rating`, `ext.reviewCount` - Reference: https://onekey.dev/docs/api/g2/seller.md ### g2.seller_products Products of a G2 seller. - Price: 2 credits per fresh call. Status: beta. Access: needs a pack. Returns: a list. - Request: `GET https://api.onekey.dev/v1/g2/seller_products?slug=slack` with header `x-api-key: YOUR_API_KEY` - Parameters: - `slug` (string, required): Product or seller slug - `cursor` (string, optional): Opaque cursor from a previous response's `pagination.next_cursor`. Omit for the first page. - Fields returned: `entity.id`, `entity.name`, `entity.url`, `entity.description`, `media.thumbnailUrl`, `listing.price`, `listing.currency`, `listing.brand`, `entity.stats.rating`, `entity.stats.ratingCount` - Reference: https://onekey.dev/docs/api/g2/seller_products.md ## Sample request ```bash curl "https://api.onekey.dev/v1/g2/product?slug=slack" \ -H "x-api-key: YOUR_API_KEY" ```