--- openapi: 3.0.1 info: title: G2 API version: v2 description: | ## Rate Limiting Cloudflare limits requests to the G2 API to **100 requests per second** per source IP address. paths: "/api/sandbox/products/{subject_product_id}/buyer_intent": get: summary: Browse sandbox buyer intent interactions for a product operationId: getSandboxBuyerIntentInteractions tags: - Buyer Intent description: | **No scope is required to access this sandbox endpoint** **⚠️ Sandbox API**: This endpoint is a sandbox endpoint and is data limited. Only data between 6 months to 1 year ago will be available. Query buyer intent data using an analytical query interface. ## Query Language This endpoint uses an OLAP-style query language that supports: - **Dimensions**: Group and categorize data (e.g., company_name, company_domain, day) - **Measures**: Aggregate numerical values (e.g., total_activity, visitor_count) - **Filters**: Apply conditions to limit results ### Filter Operators Filters use the format `dimension_filters[name_suffix]` where `name` is the dimension name and `suffix` indicates the operation: - `_eq`: Equals (exact match) - `_not_eq`: Not equals - `_cont`: Contains (substring match) - `_not_cont`: Does not contain - `_gt`: Greater than - `_gteq`: Greater than or equal - `_lt`: Less than - `_lteq`: Less than or equal - `_present`: Field has a value - `_empty`: Field is empty ### Time Series vs Aggregated Data - **Aggregated**: Request dimensions without `day` for company-level summaries - **Time Series**: Include `day` dimension for daily breakdowns over time ### Sorting Results Use the `sort` parameter to order results by any dimension or measure: - **Ascending**: `sort=company_name` or `sort=total_activity` - **Descending**: `sort=-company_intent_score` (prefix with `-`) - **Default**: Results are sorted by `-company_intent_score` (highest intent first) Available sort fields include all dimensions and measures listed above. ### Examples - Company summary: `dimensions=company_name,company_domain&measures=total_activity` - Time series: `dimensions=company_name,day&measures=company_intent_score` - Filtered: `dimension_filters[company_name_cont]=Acme&dimensions=company_name` - Sorted by activity: `dimensions=company_name&measures=total_activity&sort=-total_activity` security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: subject_product_id in: path description: Identifier for the subject product required: true schema: type: string - name: dimensions in: query explode: false description: Comma separated list of dimensions schema: type: array items: type: string enum: - signal_type - time - day - week - month - company_id - company_name - company_domain - company_country - company_state - company_city - company_employees - company_industry - visitor_id - visitor_country - visitor_state - visitor_city - company_intent_score - product_id - product_slug - product_name - category_id - category_slug - category_name - left_product_id - left_product_slug - left_product_name - right_product_id - right_product_slug - right_product_name - vendor_id - vendor_slug - vendor_name - provider - name: measures in: query explode: false description: Comma separated list of measures schema: type: array items: type: string enum: - total_activity - visitor_count - company_count - last_seen_at - name: sort in: query description: Sort field with optional direction prefix. Use "-" for descending (e.g., "-day") schema: type: string - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: dimension_filters in: query style: deepObject explode: true description: Filters represented as query object (e.g., dimension_filters[company_name_cont]=Acme) schema: type: object additionalProperties: oneOf: - type: string - type: number - type: string format: date-time example: company_name_cont: Acme company_intent_score_gteq: 75 day_gteq: '2024-01-01' responses: '200': description: Successful responses content: application/vnd.api+json: examples: Company-level intent score: value: data: - id: 602674427a5e0384ac2b5a911062a284 type: buyer_intent attributes: total_activity: 150 company_name: Enterprise Corp company_domain: enterprise.com company_state: New York company_intent_score: 85.5 subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002 subject_product_slug: test-product-6 links: self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=company_name,company_domain,company_state,company_intent_score&measures=total_activity&sort=-company_intent_score&dimension_filters%5Bcompany_intent_score_gteq%5D=75 next: prev: Company-level intent score by day: value: data: - id: a6b2c88e1321dbb7b45d8575d0fea75b type: buyer_intent attributes: total_activity: 25 day: '2024-01-15' company_intent_score: 75.0 subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002 subject_product_slug: test-product-7 - id: 610adfa9282f00fd355147a410aaa154 type: buyer_intent attributes: total_activity: 35 day: '2024-01-16' company_intent_score: 82.5 subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002 subject_product_slug: test-product-7 links: self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=company_intent_score,day&measures=total_activity&sort=-company_intent_score&dimension_filters%5Bcompany_id_eq%5D=uuid-456&dimension_filters%5Bday_gteq%5D=2024-01-01 next: prev: Company-level activity by signal type: value: data: - id: 5bd5e51817ee7d50eded19d61a0e5d10 type: buyer_intent attributes: total_activity: 10 signal_type: profile company_name: Enterprise Corp company_domain: enterprise.com company_state: New York subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002 subject_product_slug: test-product-8 - id: 6f864c4b6221d1241cab0bc3295c8fbb type: buyer_intent attributes: total_activity: 5 signal_type: pricing company_name: Enterprise Corp company_domain: enterprise.com company_state: New York subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002 subject_product_slug: test-product-8 links: self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=company_name,company_domain,company_state,signal_type&measures=total_activity&sort=-company_intent_score& next: prev: Visitor-level daily behavior: value: data: - id: 1e4bd6a7464c9637a09a7836daa6a6a3 type: buyer_intent attributes: total_activity: 5 signal_type: pricing day: '2024-01-15' company_name: Tech Solutions Inc company_domain: techsolutions.com visitor_id: visitor-123 visitor_country: United States visitor_state: subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002 subject_product_slug: test-product-9 links: self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=visitor_id,visitor_country,visitor_state,company_name,company_domain,signal_type,day&measures=total_activity&sort=-company_intent_score&dimension_filters%5Bday_gteq%5D=2024-01-01 next: prev: Summary of data volume: value: data: - id: 53617a1aa24939effc7778828ba770d2 type: buyer_intent attributes: total_activity: 1250 visitor_count: 450 company_count: 150 subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002 subject_product_slug: test-product-10 links: self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=&measures=company_count,visitor_count,total_activity&sort=-company_intent_score& next: prev: Data volume by topic (Product and Category): value: data: - id: f03aa0a9a87e5c684a685b314be1c068 type: buyer_intent attributes: total_activity: 30 visitor_count: 20 company_count: 10 product_slug: acme-product category_slug: acme-category subject_product_id: f6d9f6d6-3ec1-4380-8525-000000000002 subject_product_slug: test-product-11 links: self: http://data.example.com/api/sandbox/products/f6d9f6d6-3ec1-4380-8525-000000000002/buyer_intent?dimensions=product_slug,category_slug&measures=company_count,visitor_count,total_activity&sort=-company_intent_score&dimension_filters%5Bcompany_intent_score_gteq%5D=50 next: prev: schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: company_id: type: string description: Unique company identifier company_name: type: string description: Company name company_domain: type: string description: Company website domain company_state: type: string description: Company location state visitor_id: type: string description: Unique visitor identifier company_intent_score: type: number description: Intent score (0-100) total_activity: type: integer description: Total page views and interactions day: type: string format: date description: Date for time-series data product_id: type: string nullable: true description: Product UUID category_id: type: string nullable: true description: Category UUID subject_product_id: type: string description: Subject product UUID subject_product_slug: type: string description: Subject product slug required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/screenshots": get: summary: Lists screenshots operationId: getScreenshots tags: - Screenshots description: "**Requires `screenshots.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: filter[created_at_gt] in: query schema: type: string description: Min time for when a record was created. Using rfc3339 format. - name: filter[created_at_lt] in: query schema: type: string description: Max time for when a record was last updated. Using rfc3339 format. - name: filter[updated_at_gt] in: query schema: type: string description: Min time for when a record was last updated. Using rfc3339 format. - name: filter[updated_at_lt] in: query schema: type: string description: Max time for when a record was last updated. Using rfc3339 format. - name: fields[screenshots] in: query explode: false description: Comma separated list of fields for screenshots to include in response schema: type: array items: type: string enum: - id - product_id - url - created_at - updated_at - file_name - title - description - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. product,vendor) schema: type: array items: type: string enum: - product - vendor responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: example: data: - id: 1dadd35b-0e33-46db-8377-000000000002 type: screenshots attributes: product_id: 1dadd35b-0e33-46db-8377-000000000001 url: https://d3cat1s0n6zlx1.cloudfront.net/uploads/attachment/file/47/g2.png created_at: '2021-12-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' file_name: g2.png title: G2.com description: links: self: http://data.example.com/api/v2/screenshots?filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&fields%5Bscreenshots%5D=id,product_id,url,created_at,updated_at,file_name,title,description&include=product,vendor next: prev: meta: record_count: 1 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object required: - created_at - product_id - url properties: id: type: string product_id: type: string url: type: string created_at: type: string format: date-time updated_at: type: string format: date-time file_name: type: string title: type: string description: type: string nullable: true required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/screenshots/{id}": get: summary: Shows a screenshot operationId: getScreenshot tags: - Screenshots description: "**Requires `screenshots.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: id in: path required: true schema: type: string - name: fields[screenshots] in: query explode: false description: Comma separated list of fields for screenshots to include in response schema: type: array items: type: string enum: - id - product_id - url - created_at - updated_at - file_name - title - description - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. product,vendor) schema: type: array items: type: string enum: - product - vendor responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: example: data: id: 1dadd35b-0e33-46db-8377-000000000002 type: screenshots attributes: product_id: 1dadd35b-0e33-46db-8377-000000000001 url: https://d3cat1s0n6zlx1.cloudfront.net/uploads/attachment/file/52/g2.png created_at: '2021-12-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' file_name: g2.png title: G2.com description: schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object required: - created_at - url properties: id: type: string product_id: type: string url: type: string created_at: type: string format: date-time updated_at: type: string format: date-time file_name: type: string title: type: string description: type: string nullable: true included: "$ref": "#/components/schemas/included" "/api/v2/buyer_intent": get: summary: Browse buyer intent interactions (product-agnostic) operationId: getGlobalBuyerIntentInteractions tags: - Buyer Intent description: | **Requires `buyer_intent.read` scope.** Query buyer intent data across one or more products in a single request. Pass product_id to specify which products, or omit to use your assigned products. Supports multi-product queries — the data is not scoped to a single subject product. security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: dimensions in: query explode: false description: Comma separated list of dimensions schema: type: array items: type: string enum: - signal_type - time - day - week - month - company_id - company_name - company_domain - company_country - company_state - company_city - company_employees - company_industry - visitor_id - visitor_country - visitor_state - visitor_city - product_id - product_slug - product_name - category_id - category_slug - category_name - left_product_id - left_product_slug - left_product_name - right_product_id - right_product_slug - right_product_name - vendor_id - vendor_slug - vendor_name - provider - name: measures in: query explode: false description: Comma separated list of measures schema: type: array items: type: string enum: - total_activity - visitor_count - company_count - last_seen_at - name: subject_product_ids in: query description: One or more product IDs, UUIDs, or URL slugs (comma-separated) that scope the permissions of this query. Defaults to your assigned products. schema: type: string - name: sort in: query description: Sort field with optional direction prefix. Use "-" for descending (e.g., "-day") schema: type: string - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: dimension_filters in: query style: deepObject explode: true description: Filters represented as query object (e.g., dimension_filters[company_name_cont]=Acme) schema: type: object additionalProperties: oneOf: - type: string - type: number - type: string format: date-time example: company_name_cont: Acme provider_in: g2 audience_product_id_in: "" responses: '200': description: Successful responses content: application/vnd.api+json: examples: Company-level activity: value: data: - id: 4e461029a40e1748cb562a87a581125d type: buyer_intent attributes: total_activity: 150 company_name: Enterprise Corp company_domain: enterprise.com links: self: http://data.example.com/api/v2/buyer_intent?dimensions=company_name,company_domain&measures=total_activity&subject_product_ids=4d4226d5-4959-4648-8fd2-000000000001&sort=& next: prev: With provider dimension: value: data: - id: c72be8462054890d1a74760c5919cfe2 type: buyer_intent attributes: total_activity: 80 company_name: Enterprise Corp provider: g2 - id: 57a93f21a6b22c62794813e31c9aabf5 type: buyer_intent attributes: total_activity: 70 company_name: Enterprise Corp provider: capterra links: self: http://data.example.com/api/v2/buyer_intent?dimensions=company_name,provider&measures=total_activity&subject_product_ids=4d4226d5-4959-4648-8fd2-000000000001&sort=& next: prev: Summary of data volume: value: data: - id: 075541525d161a64bcfeaf1315997704 type: buyer_intent attributes: total_activity: 1250 visitor_count: 450 company_count: 150 links: self: http://data.example.com/api/v2/buyer_intent?dimensions=&measures=company_count,visitor_count,total_activity&subject_product_ids=4d4226d5-4959-4648-8fd2-000000000001&sort=& next: prev: schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: company_id: type: string description: Unique company identifier company_name: type: string description: Company name company_domain: type: string description: Company website domain total_activity: type: integer description: Total page views and interactions provider: type: string description: Data provider (g2, capterra) required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/products/{subject_product_id}/buyer_intent": get: summary: Browse buyer intent interactions for a product operationId: getBuyerIntentInteractions tags: - Buyer Intent description: | **Requires `buyer_intent.read` scope.** Query buyer intent data using an analytical query interface. ## Query Language This endpoint uses an OLAP-style query language that supports: - **Dimensions**: Group and categorize data (e.g., company_name, company_domain, day) - **Measures**: Aggregate numerical values (e.g., total_activity, visitor_count) - **Filters**: Apply conditions to limit results ### Filter Operators Filters use the format `dimension_filters[name_suffix]` where `name` is the dimension name and `suffix` indicates the operation: - `_eq`: Equals (exact match) - `_not_eq`: Not equals - `_cont`: Contains (substring match) - `_not_cont`: Does not contain - `_gt`: Greater than - `_gteq`: Greater than or equal - `_lt`: Less than - `_lteq`: Less than or equal - `_present`: Field has a value - `_empty`: Field is empty ### Time Series vs Aggregated Data - **Aggregated**: Request dimensions without `day` for company-level summaries - **Time Series**: Include `day` dimension for daily breakdowns over time ### Sorting Results Use the `sort` parameter to order results by any dimension or measure: - **Ascending**: `sort=company_name` or `sort=total_activity` - **Descending**: `sort=-company_intent_score` (prefix with `-`) - **Default**: Results are sorted by `-company_intent_score` (highest intent first) Available sort fields include all dimensions and measures listed above. ### Signal Types The `signal_type` dimension identifies the type of buyer activity on G2 (e.g., `profile`, `pricing`, `compare`). ### Competitive Signals Results include activity on both your product and competitor products in your categories. Compare `left_product_id` to `subject_product_id` to distinguish the two: - **`left_product_id` = `subject_product_id`**: Direct signal — activity on your product. - **`left_product_id` ≠ `subject_product_id`**: Competitive signal — activity on a competitor. The `signal_type` indicates what the buyer did (e.g., viewed the competitor's `profile` or `pricing` page). Use `left_product_name` / `left_product_slug` to identify the competitor. ### Examples - Company summary: `dimensions=company_name,company_domain&measures=total_activity` - Time series: `dimensions=company_name,day&measures=company_intent_score` - Filtered: `dimension_filters[company_name_cont]=Acme&dimensions=company_name` - Sorted by activity: `dimensions=company_name&measures=total_activity&sort=-total_activity` - Competitive activity: `dimensions=company_name,signal_type,left_product_name,left_product_id&measures=total_activity` security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: subject_product_id in: path description: Identifier for the subject product required: true schema: type: string - name: dimensions in: query explode: false description: Comma separated list of dimensions schema: type: array items: type: string enum: - signal_type - time - day - week - month - company_id - company_name - company_domain - company_country - company_state - company_city - company_employees - company_industry - visitor_id - visitor_country - visitor_state - visitor_city - company_intent_score - product_id - product_slug - product_name - category_id - category_slug - category_name - left_product_id - left_product_slug - left_product_name - right_product_id - right_product_slug - right_product_name - vendor_id - vendor_slug - vendor_name - provider - name: measures in: query explode: false description: Comma separated list of measures schema: type: array items: type: string enum: - total_activity - visitor_count - company_count - last_seen_at - name: sort in: query description: Sort field with optional direction prefix. Use "-" for descending (e.g., "-day") schema: type: string - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: dimension_filters in: query style: deepObject explode: true description: Filters represented as query object (e.g., dimension_filters[company_name_cont]=Acme) schema: type: object additionalProperties: oneOf: - type: string - type: number - type: string format: date-time example: company_name_cont: Acme company_intent_score_gteq: 75 day_gteq: '2024-01-01' audience_product_id_in: "" responses: '200': description: Successful responses content: application/vnd.api+json: examples: Company-level intent score: value: data: - id: 62e395c5d0733560080b7902d1d136b6 type: buyer_intent attributes: total_activity: 150 company_name: Enterprise Corp company_domain: enterprise.com company_state: New York company_intent_score: 85.5 subject_product_id: 6406acf7-d22b-49b0-8e37-000000000001 subject_product_slug: test-product-46 links: self: http://data.example.com/api/v2/products/6406acf7-d22b-49b0-8e37-000000000001/buyer_intent?dimensions=company_name,company_domain,company_state,company_intent_score&measures=total_activity&sort=-company_intent_score&dimension_filters%5Bcompany_intent_score_gteq%5D=75 next: prev: Company-level intent score by day: value: data: - id: 36df3af9aeb6fd3a93dff39c65fafc2a type: buyer_intent attributes: total_activity: 25 day: '2024-01-15' company_intent_score: 75.0 subject_product_id: 6406acf7-d22b-49b0-8e37-000000000001 subject_product_slug: test-product-47 - id: ba5315d52a5a0e5f50afc9f169df3acb type: buyer_intent attributes: total_activity: 35 day: '2024-01-16' company_intent_score: 82.5 subject_product_id: 6406acf7-d22b-49b0-8e37-000000000001 subject_product_slug: test-product-47 links: self: http://data.example.com/api/v2/products/6406acf7-d22b-49b0-8e37-000000000001/buyer_intent?dimensions=company_intent_score,day&measures=total_activity&sort=-company_intent_score&dimension_filters%5Bcompany_id_eq%5D=uuid-456&dimension_filters%5Bday_gteq%5D=2024-01-01 next: prev: Company-level activity by signal type: value: data: - id: cc3df53a3d279ec18b7628f859b13d4f type: buyer_intent attributes: total_activity: 10 signal_type: profile company_name: Enterprise Corp company_domain: enterprise.com company_state: New York subject_product_id: 6406acf7-d22b-49b0-8e37-000000000001 subject_product_slug: test-product-48 - id: 21bd63c1db213985095dedc7cf50e5c7 type: buyer_intent attributes: total_activity: 5 signal_type: pricing company_name: Enterprise Corp company_domain: enterprise.com company_state: New York subject_product_id: 6406acf7-d22b-49b0-8e37-000000000001 subject_product_slug: test-product-48 links: self: http://data.example.com/api/v2/products/6406acf7-d22b-49b0-8e37-000000000001/buyer_intent?dimensions=company_name,company_domain,company_state,signal_type&measures=total_activity&sort=-company_intent_score& next: prev: Visitor-level daily behavior: value: data: - id: 1af1869515853cb5f35f6e0c4fa8e4cb type: buyer_intent attributes: total_activity: 5 signal_type: pricing day: '2024-01-15' company_name: Tech Solutions Inc company_domain: techsolutions.com visitor_id: visitor-123 visitor_country: United States visitor_state: subject_product_id: 6406acf7-d22b-49b0-8e37-000000000001 subject_product_slug: test-product-49 links: self: http://data.example.com/api/v2/products/6406acf7-d22b-49b0-8e37-000000000001/buyer_intent?dimensions=visitor_id,visitor_country,visitor_state,company_name,company_domain,signal_type,day&measures=total_activity&sort=-company_intent_score&dimension_filters%5Bday_gteq%5D=2024-01-01 next: prev: Summary of data volume: value: data: - id: c9dae63ea0fb4cbc55354ec85d5a6abb type: buyer_intent attributes: total_activity: 1250 visitor_count: 450 company_count: 150 subject_product_id: 6406acf7-d22b-49b0-8e37-000000000001 subject_product_slug: test-product-50 links: self: http://data.example.com/api/v2/products/6406acf7-d22b-49b0-8e37-000000000001/buyer_intent?dimensions=&measures=company_count,visitor_count,total_activity&sort=-company_intent_score& next: prev: Data volume by topic (Product and Category): value: data: - id: 2cf5a7e39bfc2dcb8587cb7eaf228d5f type: buyer_intent attributes: total_activity: 30 visitor_count: 20 company_count: 10 product_slug: acme-product category_slug: acme-category subject_product_id: 6406acf7-d22b-49b0-8e37-000000000001 subject_product_slug: test-product-51 links: self: http://data.example.com/api/v2/products/6406acf7-d22b-49b0-8e37-000000000001/buyer_intent?dimensions=product_slug,category_slug&measures=company_count,visitor_count,total_activity&sort=-company_intent_score&dimension_filters%5Bcompany_intent_score_gteq%5D=50 next: prev: schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: company_id: type: string description: Unique company identifier company_name: type: string description: Company name company_domain: type: string description: Company website domain company_state: type: string description: Company location state visitor_id: type: string description: Unique visitor identifier company_intent_score: type: number description: Intent score (0-100) total_activity: type: integer description: Total page views and interactions day: type: string format: date description: Date for time-series data product_id: type: string nullable: true description: Product UUID category_id: type: string nullable: true description: Category UUID subject_product_id: type: string description: Subject product UUID subject_product_slug: type: string description: Subject product slug required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/categories/{category_id}/features": get: summary: List features for a specific category operationId: getCategoryFeatures tags: - Product Features description: "**Requires `product_features.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: category_id in: path required: true description: Category UUID or Slug schema: type: string - name: filter[product_uuid_eq] description: G2 product ID default: in: query schema: type: string - name: filter[is_verified_eq] schema: type: boolean in: query - name: filter[functionality_eq] description: Filter by functionality in: query schema: type: string - name: filter[created_at_gt] schema: type: string format: date-time description: Min created_at value (RFC3339 format) in: query - name: filter[created_at_lt] schema: type: string format: date-time description: Max created_at value (RFC3339 format) in: query - name: filter[updated_at_gt] schema: type: string format: date-time description: Min updated_at value (RFC3339 format) in: query - name: filter[updated_at_lt] schema: type: string format: date-time description: Max updated_at value (RFC3339 format) in: query - name: fields[product_features] in: query explode: false description: Comma separated list of fields for product_features to include in response schema: type: array items: type: string enum: - section_title - feature_id - feature - description - review_count - rating - functionality - is_verified - available - created_at - updated_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. product) schema: type: array items: type: string enum: - product responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: List of category product features content: application/vnd.api+json: example: data: objects: - id: ded54ee0-9577-4623-84ec-000000000001 name: test product_features: - section_title: test section feature_id: 937 feature: Grouped Feature description: review_count: rating: functionality: native is_verified: true available: true created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' product: id: ded54ee0-9577-4623-84ec-000000000002 name: test product 63 slug: test-product-63 - section_title: test section feature_id: 936 feature: Category Feature description: review_count: rating: functionality: native is_verified: true available: true created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' product: id: ded54ee0-9577-4623-84ec-000000000002 name: test product 63 slug: test-product-63 meta_aggs: feature_count_per_group: 2 avg_rating: review_count: links: self: http://data.example.com/api/v2/categories/ded54ee0-9577-4623-84ec-000000000001/features?filter%5Bproduct_uuid_eq%5D=&filter%5Bis_verified_eq%5D=true&filter%5Bfunctionality_eq%5D=native&filter%5Bcreated_at_gt%5D=2021-01-01T00%3A00%3A00Z&filter%5Bcreated_at_lt%5D=2023-01-01T00%3A00%3A00Z&filter%5Bupdated_at_gt%5D=2021-01-01T00%3A00%3A00Z&filter%5Bupdated_at_lt%5D=2023-01-01T00%3A00%3A00Z&fields%5Bproduct_features%5D=section_title,feature_id,feature,description,review_count,rating,functionality,is_verified,available,created_at,updated_at&include=product next: prev: schema: type: object properties: data: type: object properties: objects: type: array items: type: object properties: id: type: string name: type: string product_features: type: array items: type: object properties: section_title: type: string nullable: true feature_id: type: integer feature: type: string nullable: true description: type: string nullable: true review_count: type: integer nullable: true rating: type: number nullable: true functionality: type: string is_verified: type: boolean available: type: boolean created_at: type: string format: date-time updated_at: type: string format: date-time meta_aggs: type: object properties: feature_count_per_group: type: integer avg_rating: type: number nullable: true review_count: type: integer nullable: true links: type: object properties: self: type: string next: type: string nullable: true prev: type: string nullable: true "/api/v2/categories/features": get: summary: List all category product features grouped by category operationId: getAllCategoryFeatures tags: - Product Features description: "**Requires `product_features.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: filter[product_uuid_eq] description: Filter by G2 product ID default: in: query schema: type: string - name: filter[is_verified_eq] schema: type: boolean in: query - name: filter[functionality_eq] description: Filter by functionality in: query schema: type: string - name: filter[created_at_gt] schema: type: string format: date-time description: Min created_at value (RFC3339 format) in: query - name: filter[created_at_lt] schema: type: string format: date-time description: Max created_at value (RFC3339 format) in: query - name: filter[updated_at_gt] schema: type: string format: date-time description: Min updated_at value (RFC3339 format) in: query - name: filter[updated_at_lt] schema: type: string format: date-time description: Max updated_at value (RFC3339 format) in: query - name: fields[product_features] in: query explode: false description: Comma separated list of fields for product_features to include in response schema: type: array items: type: string enum: - section_title - feature_id - feature - description - review_count - rating - functionality - is_verified - available - created_at - updated_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. product) schema: type: array items: type: string enum: - product responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: Grouped category product features content: application/vnd.api+json: example: data: objects: - id: ded54ee0-9577-4623-84ec-000000000001 name: test product_features: - section_title: test section feature_id: 1057 feature: Grouped Feature description: review_count: rating: functionality: native is_verified: true available: true created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' product: id: ded54ee0-9577-4623-84ec-000000000002 name: test product 73 slug: test-product-73 - section_title: test section feature_id: 1056 feature: Category Feature description: review_count: rating: functionality: native is_verified: true available: true created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' product: id: ded54ee0-9577-4623-84ec-000000000002 name: test product 73 slug: test-product-73 meta_aggs: feature_count_per_group: 2 avg_rating: review_count: links: self: http://data.example.com/api/v2/categories/features?filter%5Bproduct_uuid_eq%5D=&filter%5Bis_verified_eq%5D=true&filter%5Bfunctionality_eq%5D=native&filter%5Bcreated_at_gt%5D=2021-01-01T00%3A00%3A00Z&filter%5Bcreated_at_lt%5D=2023-01-01T00%3A00%3A00Z&filter%5Bupdated_at_gt%5D=2021-01-01T00%3A00%3A00Z&filter%5Bupdated_at_lt%5D=2023-01-01T00%3A00%3A00Z&fields%5Bproduct_features%5D=section_title,feature_id,feature,description,review_count,rating,functionality,is_verified,available,created_at,updated_at&include=product next: prev: schema: type: object properties: data: type: object properties: objects: type: array items: type: object properties: id: type: string name: type: string product_features: type: array items: type: object properties: section_title: type: string nullable: true feature_id: type: integer feature: type: string nullable: true description: type: string nullable: true review_count: type: integer nullable: true rating: type: number nullable: true functionality: type: string is_verified: type: boolean available: type: boolean created_at: type: string format: date-time updated_at: type: string format: date-time meta_aggs: type: object properties: feature_count_per_group: type: integer avg_rating: type: number nullable: true review_count: type: integer nullable: true links: type: object properties: self: type: string next: type: string nullable: true prev: type: string nullable: true "/api/v2/categories": get: summary: List of categories operationId: getCategories tags: - Categories description: |+ **No scope required.** security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: filter[updated_at_gt] description: Filter records updated after this date schema: type: string format: date-time in: query - name: filter[updated_at_lt] description: Filter records updated before this date schema: type: string format: date-time in: query - name: filter[created_at_gt] description: Filter records created after this date schema: type: string format: date-time in: query - name: filter[created_at_lt] description: Filter records created before this date schema: type: string format: date-time in: query - name: filter[name_eq] description: Filter by exact name match in: query schema: type: string - name: filter[name_cont] description: Filter by partial name match in: query schema: type: string - name: filter[slug_eq] description: Filter by exact slug match in: query schema: type: string - name: filter[slug_cont] description: Filter by partial slug match in: query schema: type: string - name: fields[categories] in: query explode: false description: Comma separated list of fields for categories to include in response schema: type: array items: type: string enum: - uuid - name - slug - description - updated_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. products,children,ancestors,descendants,parent) schema: type: array items: type: string enum: - products - children - ancestors - descendants - parent responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: Successful responses content: application/vnd.api+json: example: data: - id: c6ef5673-90ca-4ddd-8c78-000000000003 type: categories attributes: uuid: c6ef5673-90ca-4ddd-8c78-000000000003 name: Buyer Intent Data Providers slug: buyer-intent-data-providers description: Description updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: [] links: related: http://data.lvh.me:63479/api/v2/products?filter%5Bcategory_id%5D=c6ef5673-90ca-4ddd-8c78-000000000003 children: data: [] ancestors: data: - id: c6ef5673-90ca-4ddd-8c78-000000000001 type: product_categories - id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories descendants: data: [] parent: data: id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories included: - id: c6ef5673-90ca-4ddd-8c78-000000000001 type: product_categories attributes: name: test slug: test description: test updated_at: '2022-01-01T00:00:00.000-06:00' - id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories attributes: name: test slug: test-aaaaaaaa-bbbb-4ccc-8ddd-000000000004 description: test updated_at: '2022-01-01T00:00:00.000-06:00' links: self: http://data.example.com/api/v2/categories?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&filter%5Bname_eq%5D=&filter%5Bname_cont%5D=&filter%5Bslug_eq%5D=&filter%5Bslug_cont%5D=&fields%5Bcategories%5D=uuid,name,slug,description,updated_at&include=products,children,ancestors,descendants,parent next: prev: meta: record_count: 1 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: uuid: type: string description: Category UUID example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 nullable: false name: type: string description: Category name example: CRM Software nullable: false slug: type: string description: Category slug example: crm nullable: false description: type: string description: Category description nullable: true updated_at: type: string description: Last updated timestamp format: date-time nullable: false relationships: type: object required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/categories/{id}": get: summary: Shows a single category operationId: getCategory tags: - Categories description: |+ **No scope required.** security: - AccountAPIToken: [] parameters: - name: fields[categories] in: query explode: false description: Comma separated list of fields for categories to include in response schema: type: array items: type: string enum: - uuid - name - slug - description - updated_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. products,children,ancestors,descendants,parent) schema: type: array items: type: string enum: - products - children - ancestors - descendants - parent - name: id in: path description: Category UUID or Slug required: true schema: type: string responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: Category details with all fields included content: application/vnd.api+json: schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: name: type: string description: Category name example: CRM Software nullable: false slug: type: string description: Category slug example: crm nullable: false relationships: type: object included: "$ref": "#/components/schemas/included" examples: when requesting by UUID: value: data: id: c6ef5673-90ca-4ddd-8c78-000000000003 type: categories attributes: uuid: c6ef5673-90ca-4ddd-8c78-000000000003 name: Buyer Intent Data Providers slug: buyer-intent-data-providers description: Description updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: [] links: related: http://data.lvh.me:63479/api/v2/products?filter%5Bcategory_id%5D=c6ef5673-90ca-4ddd-8c78-000000000003 children: data: [] ancestors: data: - id: c6ef5673-90ca-4ddd-8c78-000000000001 type: product_categories - id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories descendants: data: [] parent: data: id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories included: - id: c6ef5673-90ca-4ddd-8c78-000000000001 type: product_categories attributes: name: test slug: test description: test updated_at: '2022-01-01T00:00:00.000-06:00' - id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories attributes: name: test slug: test-aaaaaaaa-bbbb-4ccc-8ddd-000000000004 description: test updated_at: '2022-01-01T00:00:00.000-06:00' when requesting with specific fields: value: data: id: c6ef5673-90ca-4ddd-8c78-000000000003 type: categories attributes: name: Buyer Intent Data Providers slug: buyer-intent-data-providers relationships: products: data: [] links: related: http://data.lvh.me:63479/api/v2/products?filter%5Bcategory_id%5D=c6ef5673-90ca-4ddd-8c78-000000000003 children: data: [] ancestors: data: - id: c6ef5673-90ca-4ddd-8c78-000000000001 type: product_categories - id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories descendants: data: [] parent: data: id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories included: - id: c6ef5673-90ca-4ddd-8c78-000000000001 type: product_categories attributes: name: test slug: test description: test updated_at: '2022-01-01T00:00:00.000-06:00' - id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories attributes: name: test slug: test-aaaaaaaa-bbbb-4ccc-8ddd-000000000004 description: test updated_at: '2022-01-01T00:00:00.000-06:00' example: data: id: c6ef5673-90ca-4ddd-8c78-000000000003 type: categories attributes: name: Buyer Intent Data Providers slug: buyer-intent-data-providers relationships: products: data: [] links: related: http://data.lvh.me:63479/api/v2/products?filter%5Bcategory_id%5D=c6ef5673-90ca-4ddd-8c78-000000000003 children: data: [] ancestors: data: - id: c6ef5673-90ca-4ddd-8c78-000000000001 type: product_categories - id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories descendants: data: [] parent: data: id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories included: - id: c6ef5673-90ca-4ddd-8c78-000000000001 type: product_categories attributes: name: test slug: test description: test updated_at: '2022-01-01T00:00:00.000-06:00' - id: c6ef5673-90ca-4ddd-8c78-000000000002 type: product_categories attributes: name: test slug: test-aaaaaaaa-bbbb-4ccc-8ddd-000000000004 description: test updated_at: '2022-01-01T00:00:00.000-06:00' "/api/v2/products/{product_id}/g2_activate/industry_search": post: summary: Match a free-text business description to NAICS industry names operationId: createG2ActivateIndustrySearch tags: - G2 Activate description: "**Requires `g2_activate.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - g2_activate.read parameters: - name: product_id in: path description: Product UUID or Slug required: true schema: type: string responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: With unknown product id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when missing g2_activate.read scope: value: errors: - status: '403' title: You do not have access to that resource when actor lacks intent_driven_leads component on product: value: errors: - status: '403' title: You do not have access to that resource example: errors: - status: '403' title: You do not have access to that resource '400': description: With too-short query content: application/vnd.api+json: example: errors: - status: '400' title: 'query: size cannot be less than 2' schema: "$ref": "#/components/schemas/Errors" '200': description: Returns matched industries content: application/vnd.api+json: example: data: - id: Payroll Services type: industry_matches attributes: industry: Payroll Services industry_group: Accounting, Tax Preparation, Bookkeeping, and Payroll Services sector: Professional, Scientific, and Technical Services confidence: 90 - id: Tax Preparation Services type: industry_matches attributes: industry: Tax Preparation Services industry_group: Accounting, Tax Preparation, Bookkeeping, and Payroll Services sector: Professional, Scientific, and Technical Services confidence: 85 '503': description: LLM or embedding backend failure content: application/vnd.api+json: example: errors: - status: '503' title: AI industry matcher is temporarily unavailable. Retry with backoff. schema: "$ref": "#/components/schemas/Errors" requestBody: content: application/json: schema: type: object required: - query properties: query: type: string minLength: 2 maxLength: 500 description: Free-text business description to match against NAICS industries limit: type: integer minimum: 1 maximum: 20 description: Maximum matches to return (default 8) "/api/v2/products/{product_id}/g2_activate/locked_companies": get: summary: Lists locked companies (masked) showing intent for a product operationId: getG2ActivateLockedCompanies tags: - G2 Activate description: "**Requires `g2_activate.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - g2_activate.read parameters: - name: product_id in: path description: Product UUID or Slug required: true schema: type: string - name: sort in: query required: false schema: type: string enum: - "-intent_score" - intent_score description: Sort order. Prefix with "-" for descending (e.g. "-intent_score"). - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: Actor lacks intent_driven_leads component on product content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '403': description: Missing g2_activate.read scope content: application/vnd.api+json: example: errors: - status: '403' title: You do not have access to that resource schema: "$ref": "#/components/schemas/Errors" '400': description: With disallowed sort value content: application/vnd.api+json: example: errors: - status: '400' title: 'sort: must be one of: -intent_score, intent_score' schema: "$ref": "#/components/schemas/Errors" '200': description: List of locked companies (masked) content: application/vnd.api+json: example: data: - id: ff6dcd83f6feb7f8ab82d06792acf6e20d851e2d66d4867650962b91c4181ad1 type: locked_companies attributes: product_id: 5029634d-be8e-49cd-82c9-000000000001 company_country: United States company_employees: 250 company_annual_revenue: 25000000 intent_score: 87 industry: Payroll Services industry_group: Accounting, Tax Preparation, Bookkeeping, and Payroll Services - id: 289d6dc95c56ec712cc9d6d62cbd075902339e6bb46b328e74b56ef896b7f588 type: locked_companies attributes: product_id: 5029634d-be8e-49cd-82c9-000000000001 company_country: Canada company_employees: 30 company_annual_revenue: 3000000 intent_score: 55 industry: Advertising Agencies industry_group: Advertising, Public Relations, and Related Services links: self: http://data.example.com/api/v2/products/5029634d-be8e-49cd-82c9-000000000001/g2_activate/locked_companies?sort= next: prev: "/api/v2/products/{product_id}/g2_activate/unlocked_companies": get: summary: Lists unlocked companies for a product operationId: getG2ActivateUnlockedCompanies tags: - G2 Activate description: "**Requires `g2_activate.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - g2_activate.read parameters: - name: product_id in: path description: Product UUID or Slug required: true schema: type: string - name: sort in: query required: false schema: type: string enum: - "-intent_score" - unlocked_at - "-unlocked_at" description: Sort order. Prefix with "-" for descending (e.g. "-intent_score"). - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: fields[unlocked_companies] in: query explode: false description: Comma separated list of fields for unlocked_companies to include in response schema: type: array items: type: string enum: - product_id - company_name - company_country - company_employees - intent_score - credit_cost - viewed_at - unlocked_at - contacts responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: Actor lacks intent_driven_leads component on product content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '403': description: Missing g2_activate.read scope content: application/vnd.api+json: example: errors: - status: '403' title: You do not have access to that resource schema: "$ref": "#/components/schemas/Errors" '400': description: With disallowed sort value content: application/vnd.api+json: example: errors: - status: '400' title: 'sort: must be one of: -intent_score, unlocked_at, -unlocked_at' schema: "$ref": "#/components/schemas/Errors" '200': description: List of unlocked companies content: application/vnd.api+json: example: data: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000003 type: unlocked_companies attributes: product_id: 23cf363c-eabb-455c-8f4f-000000000001 company_name: Gamma Ltd company_country: United Kingdom company_employees: 51-200 intent_score: 25 credit_cost: 1 viewed_at: unlocked_at: '2021-12-31T00:00:00-06:00' contacts: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000002 type: unlocked_companies attributes: product_id: 23cf363c-eabb-455c-8f4f-000000000001 company_name: Beta Industries company_country: Canada company_employees: 201-500 intent_score: 60 credit_cost: 3 viewed_at: unlocked_at: '2021-12-30T00:00:00-06:00' contacts: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: unlocked_companies attributes: product_id: 23cf363c-eabb-455c-8f4f-000000000001 company_name: Acme Corp company_country: United States company_employees: 1001-5000 intent_score: 92 credit_cost: 5 viewed_at: unlocked_at: '2021-12-29T00:00:00-06:00' contacts: links: self: http://data.example.com/api/v2/products/23cf363c-eabb-455c-8f4f-000000000001/g2_activate/unlocked_companies?sort=&fields%5Bunlocked_companies%5D=product_id,company_name,company_country,company_employees,intent_score,credit_cost,viewed_at,unlocked_at,contacts next: prev: schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: product_id: type: string description: UUID of the product this company was unlocked for format: uuid nullable: false company_name: type: string description: Display name of the unlocked company example: Salesforce nullable: false company_country: type: string description: Country of the company, if known example: United States nullable: true company_employees: type: string description: Employee count band, if known example: 1001-5000 nullable: true intent_score: type: integer description: G2 intent score at the time of unlock (0-100) example: 87 nullable: true credit_cost: type: integer description: Activate credits spent to unlock this company nullable: true viewed_at: type: string description: When the seller first viewed the unlocked company format: date-time nullable: true unlocked_at: type: string description: When the company was unlocked format: date-time nullable: false contacts: type: array items: type: object description: Resolved contacts at the company. Excludes email and phone in v1. Null on index; populated array of contact objects on show. nullable: true relationships: type: object required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/products/{product_id}/g2_activate/unlocked_companies/{id}": get: summary: Shows a single unlocked company with resolved contacts operationId: getG2ActivateUnlockedCompany tags: - G2 Activate description: "**Requires `g2_activate.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - g2_activate.read parameters: - name: product_id in: path description: Product UUID or Slug required: true schema: type: string - name: id in: path description: Ahoy g2_company_id (UUID) required: true schema: type: string - name: fields[unlocked_companies] in: query explode: false description: Comma separated list of fields for unlocked_companies to include in response schema: type: array items: type: string enum: - product_id - company_name - company_country - company_employees - intent_score - credit_cost - viewed_at - unlocked_at - contacts responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: Company exists but has no unlock for this product content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '403': description: Missing g2_activate.read scope content: application/vnd.api+json: example: errors: - status: '403' title: You do not have access to that resource schema: "$ref": "#/components/schemas/Errors" '200': description: Unlocked company with resolved contacts content: application/vnd.api+json: example: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: unlocked_companies attributes: product_id: 23cf363c-eabb-455c-8f4f-000000000001 company_name: Acme Corp company_country: United States company_employees: 1001-5000 intent_score: 92 credit_cost: 5 viewed_at: unlocked_at: '2021-12-29T00:00:00-06:00' contacts: - id: '13' full_name: Jane Doe job_title: Head of Growth departments: - Marketing job_functions: - Growth management_level: director country: United States state: California schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: product_id: type: string description: UUID of the product this company was unlocked for format: uuid nullable: false company_name: type: string description: Display name of the unlocked company example: Salesforce nullable: false company_country: type: string description: Country of the company, if known example: United States nullable: true company_employees: type: string description: Employee count band, if known example: 1001-5000 nullable: true intent_score: type: integer description: G2 intent score at the time of unlock (0-100) example: 87 nullable: true credit_cost: type: integer description: Activate credits spent to unlock this company nullable: true viewed_at: type: string description: When the seller first viewed the unlocked company format: date-time nullable: true unlocked_at: type: string description: When the company was unlocked format: date-time nullable: false contacts: type: array items: type: object description: Resolved contacts at the company. Excludes email and phone in v1. Null on index; populated array of contact objects on show. nullable: true relationships: type: object included: "$ref": "#/components/schemas/included" "/api/v2/market_signals": get: summary: Retrieve buyer intent signals for a date range operationId: getMarketSignalsIndex tags: - Market Signals description: | **Requires `market_signals.read` scope.** Retrieve buyer intent signals (interactions) for specific categories. Returns one result per buyer intent interaction within the specified date range. Each interaction includes the category UUID, company name, and domain. If no dates are provided, defaults to today for both start and end date. Results are paginated using cursor-based pagination (default 25, max 250 per page). security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: category_ids[] in: query required: true explode: true schema: type: array items: type: string description: List of category UUIDs or slugs - name: start_date in: query required: false schema: type: string format: date description: Start date of range to check for signals (YYYY-MM-DD). Defaults to today. - name: end_date in: query required: false schema: type: string format: date description: End date of range to check for signals (YYYY-MM-DD). Defaults to today. - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string responses: '200': description: Signals retrieved successfully content: application/json: schema: type: object properties: data: type: array items: type: object properties: type: type: string enum: - market_signals attributes: type: object properties: category_uuid: type: string company_name: type: string company_domain: type: string start_date: type: string format: date end_date: type: string format: date required: - category_uuid - company_name - company_domain - start_date - end_date required: - type - attributes required: - data '400': description: Invalid parameters '404': description: Category not found "/api/v2/organization/{organization_id}/credit_account": get: summary: Retrieve credit account details for an organization operationId: getOrganizationCreditAccount tags: - Credit Account description: | **No scope required.** Retrieve API metering credit account details including balance and total credits. Use `?include=deductions` to include the last month of deductions in the response. security: - AccountAPIToken: [] parameters: - name: organization_id in: path description: Organization UUID or slug required: true schema: type: string - name: fields[credit_account] in: query explode: false description: Comma separated list of fields for credit_account to include in response schema: type: array items: type: string enum: - name - slug - available_balance - purchased_credits - total_deductions - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. deductions) schema: type: array items: type: string enum: - deductions responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: Organization not found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: Credit account details content: application/vnd.api+json: schema: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string description: Organization UUID type: type: string example: credit_account attributes: type: object properties: name: type: string description: Organization name slug: type: string description: Organization slug available_balance: type: number format: float description: Current available credit balance purchased_credits: type: number format: float description: Total credits purchased total_deductions: type: number format: float description: Total credits consumed relationships: type: object properties: deductions: type: object properties: data: type: array items: type: object properties: id: type: string type: type: string example: deductions included: type: array description: Included deduction resources items: type: object required: - id - type - attributes properties: id: type: string description: Deduction ID type: type: string example: deductions attributes: type: object properties: amount: type: number format: float request_count: type: integer nullable: true description: type: string nullable: true credit_usage_by_entity: type: object description: Breakdown of credits consumed by record type additionalProperties: type: number format: float example: reviews: 50.0 products: 20.0 nullable: true aasm_state: type: string enum: - pending - processed - failed created_at: type: string format: date-time updated_at: type: string format: date-time examples: without includes: value: data: id: 4e342c16-8e21-444a-8101-000000000001 type: credit_account attributes: name: Teams Org slug: teams-org-3 available_balance: 100.0 purchased_credits: 100.0 total_deductions: 100.0 relationships: deductions: data: - id: '26' type: deductions - id: '27' type: deductions with included deductions: value: data: id: 4e342c16-8e21-444a-8101-000000000001 type: credit_account attributes: name: Teams Org slug: teams-org-4 available_balance: 100.0 purchased_credits: 100.0 total_deductions: 100.0 relationships: deductions: data: - id: '29' type: deductions - id: '30' type: deductions included: - id: '29' type: deductions attributes: amount: 70.0 description: Processed 5 metered request(s) for organization request_count: 5 credit_usage_by_entity: reviews: 50.0 products: 20.0 created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' aasm_state: processed - id: '30' type: deductions attributes: amount: 30.0 description: Processed 2 metered request(s) for organization request_count: 2 credit_usage_by_entity: products: 30.0 created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' aasm_state: processed example: data: id: 4e342c16-8e21-444a-8101-000000000001 type: credit_account attributes: name: Teams Org slug: teams-org-4 available_balance: 100.0 purchased_credits: 100.0 total_deductions: 100.0 relationships: deductions: data: - id: '29' type: deductions - id: '30' type: deductions included: - id: '29' type: deductions attributes: amount: 70.0 description: Processed 5 metered request(s) for organization request_count: 5 credit_usage_by_entity: reviews: 50.0 products: 20.0 created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' aasm_state: processed - id: '30' type: deductions attributes: amount: 30.0 description: Processed 2 metered request(s) for organization request_count: 2 credit_usage_by_entity: products: 30.0 created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' aasm_state: processed "/api/v2/organization/{organization_id}/credit_deductions": get: summary: Retrieve aggregated credit deductions by month and year operationId: getOrganizationCreditDeductions tags: - Credit Account description: | **No scope required.** Retrieve credit account deductions aggregated by month and year. Use filter parameters to narrow results: - `filter[month]`: Filter by month (1-12) - `filter[year]`: Filter by year (e.g., 2024) security: - AccountAPIToken: [] parameters: - name: organization_id in: path description: Organization UUID or slug required: true schema: type: string - name: filter[month] in: query required: false description: Filter by month (1-12) schema: type: integer - name: filter[year] in: query required: false description: Filter by year schema: type: integer - name: fields[credit_deduction_aggregations] in: query explode: false description: Comma separated list of fields for credit_deduction_aggregations to include in response schema: type: array items: type: string enum: - month - year - total_amount - deduction_count responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: Organization not found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: Aggregated credit deductions content: application/vnd.api+json: schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: month: type: integer description: Month (1-12) example: 1 nullable: false year: type: integer description: Year example: 2024 nullable: false total_amount: type: number description: Total credits deducted in this month example: 75.0 nullable: false deduction_count: type: integer description: Number of deductions in this month example: 2 nullable: false relationships: type: object required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" examples: without filters: value: data: - id: 2024-02 type: credit_deduction_aggregations attributes: month: 2 year: 2024 total_amount: 30.0 deduction_count: 1 - id: 2024-01 type: credit_deduction_aggregations attributes: month: 1 year: 2024 total_amount: 75.0 deduction_count: 2 links: {} with year filter: value: data: - id: 2024-02 type: credit_deduction_aggregations attributes: month: 2 year: 2024 total_amount: 30.0 deduction_count: 1 - id: 2024-01 type: credit_deduction_aggregations attributes: month: 1 year: 2024 total_amount: 75.0 deduction_count: 2 links: {} example: data: - id: 2024-01 type: credit_deduction_aggregations attributes: month: 1 year: 2024 total_amount: 75.0 deduction_count: 2 links: {} "/api/v2/partners/{partner_id}/data_subscriptions": get: summary: Lists data subscriptions for given partner and account operationId: getPartnerDataSubscriptions tags: - Data Subscriptions description: | **Requires `data_subscriptions.read` scope.** Data Subscriptions require a Partner ID and appropriate scope. Contact G2 for a unique Partner ID. security: - AccountAPIToken: [] G2OAuth: - data_subscriptions.read - data_subscriptions.read_write - openid - profile - partner:partner-id.read parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: partner_id in: path required: true schema: type: string - name: fields[data_subscriptions] in: query explode: false description: Comma separated list of fields for data_subscriptions to include in response schema: type: array items: type: string enum: - topic - target - schedule - status - payload responses: '200': description: With all fields included content: application/vnd.api+json: example: data: - id: 8dffcb37-9ff7-4e15-8440-000000000003 type: data_subscriptions attributes: topic: buyer-intent target: type: s3 params: bucket: data-subscription-test-bucket region: us-east-1 object_key: test-object-key schedule: 0 10 * * 6 status: active payload: format: default product_ids: - 8dffcb37-9ff7-4e15-8440-000000000002 links: self: http://data.example.com/api/v2/partners/test-partner/data_subscriptions?fields%5Bdata_subscriptions%5D=topic,target,schedule,status,payload next: prev: schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: topic: type: string target: type: object schedule: type: string status: type: string payload: type: object nullable: true properties: format: type: string enum: - default - legacy - competitive - analytical product_ids: type: array items: type: string required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" post: summary: Creates a data subscription operationId: createPartnerDataSubscription tags: - Data Subscriptions description: | **Requires `data_subscriptions.write` scope.** Data Subscriptions require a Partner ID and appropriate scope. Contact G2 for a unique Partner ID. security: - G2OAuth: - data_subscriptions.write - data_subscriptions.read_write - openid - profile - partner:partner-id.read parameters: - name: partner_id in: path required: true schema: type: string responses: '201': description: created content: application/vnd.api+json: example: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000033 type: data_subscriptions '400': description: bad request content: application/vnd.api+json: example: errors: - status: '400' title: 'Missing required parameter: "topic"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: forbidden content: application/vnd.api+json: example: errors: - status: '403' title: You do not have access to that resource schema: "$ref": "#/components/schemas/Errors" requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: type: type: string example: data_subscription attributes: type: object properties: topic: type: string target: type: object schedule: type: string required: - topic - target - schedule required: - type - attributes required: - data "/api/v2/partners/{partner_id}/data_subscriptions/{data_subscription_id}": delete: summary: Deletes the data subscription for a given partner and account operationId: deletePartnerDataSubscription tags: - Data Subscriptions description: | **Requires `data_subscriptions.write` scope.** Data Subscriptions require a Partner ID and appropriate scope. Contact G2 for a unique Partner ID. security: - G2OAuth: - data_subscriptions.read - data_subscriptions.read_write - openid - profile - partner:partner-id.read parameters: - name: partner_id in: path required: true schema: type: string - name: data_subscription_id in: path required: true schema: type: string responses: '204': description: '' "/api/v2/products/{product_id}/performance_analytics/integrations/{integration_type}/data_quality": get: summary: Show CRM data quality operationId: getPerformanceAnalyticsDataQuality tags: - Performance Analytics description: | **Requires `performance_analytics.read` scope.** Report data-quality counts (missing currency, hidden outliers, duplicates) for one CRM integration. security: - G2OAuth: - performance_analytics.read parameters: - name: product_id in: path description: The UUID or slug of the product required: true schema: type: string - name: integration_type in: path schema: type: string enum: - hubspot - salesforce description: The CRM provider required: true responses: '200': description: Data quality content: application/vnd.api+json: example: data: id: f8769005-4794-4db3-8592-000000000001-hubspot type: performance_analytics_integration_data_quality attributes: provider: hubspot active_authenticated: false missing_currency_count: 2 outliers_hidden_count: 1 duplicate_deals_count: 1 schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: provider: type: string description: The CRM provider this data-quality block describes example: hubspot nullable: false active_authenticated: type: boolean description: Whether the integration is currently live and authenticated. When false, the counts describe stale synced rows from a disconnected integration example: true nullable: false missing_currency_count: type: integer description: Synced deal rows with no currency on the CRM payload, so their amount could not be reliably converted to USD example: 12 nullable: false outliers_hidden_count: type: integer description: Deal rows auto-archived as outliers (excluded from ROI math) that the vendor has not confirmed or restored example: 3 nullable: false duplicate_deals_count: type: integer description: Active synced rows beyond distinct CRM deal ids — the surplus from the same deal syncing more than once. > 0 means the ROI totals may be inflated example: 11217 nullable: false relationships: type: object included: "$ref": "#/components/schemas/included" '400': description: When the provider is unsupported content: application/vnd.api+json: example: errors: - status: '400' title: 'integration_type: is not a supported provider' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Missing performance_analytics.read scope content: application/vnd.api+json: example: errors: - status: '403' title: You do not have access to that resource schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid product id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" "/api/v2/products/{product_id}/performance_analytics/integrations/{integration_type}/roi_summary": get: summary: Show ROI summary operationId: getPerformanceAnalyticsRoiSummary tags: - Performance Analytics description: | **Requires `performance_analytics.read` scope.** Summarize G2-influenced ROI tiles for one CRM integration over a date window. security: - G2OAuth: - performance_analytics.read parameters: - name: product_id in: path description: The UUID or slug of the product required: true schema: type: string - name: integration_type in: path schema: type: string enum: - hubspot - salesforce description: The CRM provider required: true - name: date_from in: query required: false schema: type: string format: date description: Window start (ISO8601 date); defaults to a trailing 12 months - name: date_to in: query required: false schema: type: string format: date description: Window end (ISO8601 date); defaults to today responses: '200': description: ROI summary content: application/vnd.api+json: example: data: id: 4e5f1e9c-4597-4e3b-8a72-000000000001-hubspot type: performance_analytics_roi_summary attributes: provider: hubspot status: connected date_from: '2021-01-01' date_to: '2022-01-01' currency: USD base: g2_influenced_pipeline: 400000.0 g2_influenced_closed_won: 100000.0 non_influenced_pipeline: 100000.0 deals_total_count: 20 deals_influenced_count: 4 deals_influenced_closed_won_count: 3 deals_non_influenced_count: 16 avg_deal_size: 100000.0 influenced_close_rate: 0.25 influenced_sales_cycle_length: 94 attribution_rate: 80.0 uplift_pct: 100.0 high_intent: status: not_available high_intent_pipeline: high_intent_closed_won: deals_high_intent_count: deals_high_intent_closed_won_count: non_influenced_closed_won: created: status: available g2_created_pipeline: 55000.0 deals_created_count: 2 deals_created_closed_won_count: 1 attribution_window: influence_analyzer_days: 180 deal_calculation_days: 90 last_synced_at: connect_url: schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: provider: type: string description: The CRM provider this ROI summary describes example: hubspot nullable: false status: type: string description: connected (real data) or not_connected (provider not active+authenticated; the metric groups are null — never sample data) example: connected nullable: false date_from: type: string description: Resolved window start (ISO8601 date) example: '2025-07-08' format: date nullable: false date_to: type: string description: Resolved window end (ISO8601 date) example: '2026-07-08' format: date nullable: false currency: type: string description: Currency of all money tiles (pinned; the data layer stores amount_in_usd) example: USD nullable: false base: type: object description: 'Always-present tiles: influenced/non-influenced pipeline & counts plus derived ratios. Null only when status is not_connected.' example: g2_influenced_pipeline: 405000.0 g2_influenced_closed_won: 98000.0 non_influenced_pipeline: 500500.0 deals_total_count: 10739 deals_influenced_count: 42 deals_influenced_closed_won_count: 346 deals_non_influenced_count: 7982 avg_deal_size: 9642.85 influenced_close_rate: 0.17 influenced_sales_cycle_length: 94 attribution_rate: 44.73 uplift_pct: 34.85 properties: {} nullable: true high_intent: type: object description: 'Directly-influenced (High-Intent) tiles with a status: available on the preview/Salesforce path, not_available where the read path omits them (never a Buyer Intent upsell). Tiles are null when not available.' example: status: available high_intent_pipeline: 120000.0 high_intent_closed_won: 185000.0 deals_high_intent_count: 2524 deals_high_intent_closed_won_count: 313 non_influenced_closed_won: 210000.0 properties: {} nullable: true created: type: object description: 'G2-created/sourced tiles with a status: available (Buyer Intent + HubSpot), requires_upgrade (non-BI vendor — carries an {message, upgrade_url} prompt), or not_available (Salesforce has no sourced concept). Tiles null unless available.' example: status: requires_upgrade g2_created_pipeline: deals_created_count: deals_created_closed_won_count: upgrade: message: Upgrade to G2 Buyer Intent… upgrade_url: https://… properties: {} nullable: true attribution_window: type: object description: 'Per-engine attribution windows in days (HubSpot runs two engines: 180-day InfluenceAnalyzer and 90-day DealCalculation; Salesforce: 180 only)' example: influence_analyzer_days: 180 deal_calculation_days: 90 properties: {} nullable: true last_synced_at: type: string description: ISO8601 timestamp of the last successful sync, or null if never synced example: '2026-07-05T01:57:47-05:00' format: date-time nullable: true connect_url: type: string description: Link into the connection flow (present when status is not_connected) example: https://my.g2.com/example-product/integrations nullable: true relationships: type: object included: "$ref": "#/components/schemas/included" '400': description: When date_from is after date_to content: application/vnd.api+json: example: errors: - status: '400' title: 'date_from: must be before or equal to date_to' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Missing performance_analytics.read scope content: application/vnd.api+json: example: errors: - status: '403' title: You do not have access to that resource schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid product id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" "/api/v2/products/{product_id}/performance_analytics/integrations/{integration_type}/roi_trend": get: summary: Show ROI trend operationId: getPerformanceAnalyticsRoiTrend tags: - Performance Analytics description: | **Requires `performance_analytics.read` scope.** Return a time series of one ROI metric bucketed by month or quarter. security: - G2OAuth: - performance_analytics.read parameters: - name: product_id in: path description: The UUID or slug of the product required: true schema: type: string - name: integration_type in: path schema: type: string enum: - hubspot - salesforce description: The CRM provider required: true - name: metric in: query required: true schema: type: string enum: - g2_influenced_pipeline - high_intent_pipeline - g2_influenced_closed_won - deals_influenced_count - non_influenced_pipeline description: The trended ROI tile (raw tiles only; derived ratios are summary-only) - name: interval in: query required: false schema: type: string enum: - month - quarter description: Bucket size (defaults to month) - name: lookback in: query required: false schema: type: integer description: Number of buckets to return (defaults to 12, capped at 36) - name: date_to in: query required: false schema: type: string format: date description: Anchor end date for the series (defaults to today) responses: '200': description: ROI trend content: application/vnd.api+json: example: data: id: c4101714-8eb1-4066-893e-000000000001-hubspot type: performance_analytics_roi_trend attributes: provider: hubspot status: connected metric: g2_influenced_pipeline interval: month currency: USD series: - period: 2021-02 value: 400000.0 - period: 2021-03 value: 400000.0 - period: 2021-04 value: 400000.0 - period: 2021-05 value: 400000.0 - period: 2021-06 value: 400000.0 - period: 2021-07 value: 400000.0 - period: 2021-08 value: 400000.0 - period: 2021-09 value: 400000.0 - period: 2021-10 value: 400000.0 - period: 2021-11 value: 400000.0 - period: 2021-12 value: 400000.0 - period: 2022-01 value: 400000.0 attribution_window: influence_analyzer_days: 180 deal_calculation_days: 90 last_synced_at: connect_url: schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: provider: type: string description: The CRM provider this trend describes example: salesforce nullable: false status: type: string description: connected (real data) or not_connected (provider not active+authenticated; series is empty — never sample data) example: connected nullable: false metric: type: string description: The trended tile (raw tiles only; derived ratios are summary-only) example: g2_influenced_pipeline nullable: false interval: type: string description: 'Bucket size: month or quarter' example: month nullable: false currency: type: string description: Currency of money metrics (pinned; the data layer stores amount_in_usd) example: USD nullable: false series: type: array items: type: object description: Oldest-first [{period, value}] buckets; value is null where the metric is unavailable for the read path. Each bucket reconciles to the summary over the same window by construction. example: - period: 2026-06 value: 405000.0 nullable: false attribution_window: type: object description: 'Per-engine attribution windows in days (HubSpot: 180 + 90; Salesforce: 180)' example: influence_analyzer_days: 180 properties: {} nullable: true last_synced_at: type: string description: ISO8601 timestamp of the last successful sync, or null if never synced example: '2026-06-28T01:26:01-05:00' format: date-time nullable: true connect_url: type: string description: Link into the connection flow (present when status is not_connected) example: https://my.g2.com/example-product/integrations nullable: true relationships: type: object included: "$ref": "#/components/schemas/included" '400': description: When the metric is not trendable content: application/vnd.api+json: example: errors: - status: '400' title: 'metric: must be one of: g2_influenced_pipeline, high_intent_pipeline, g2_influenced_closed_won, deals_influenced_count, non_influenced_pipeline' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Missing performance_analytics.read scope content: application/vnd.api+json: example: errors: - status: '403' title: You do not have access to that resource schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid product id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" "/api/v2/products/{product_id}/performance_analytics/integrations/{integration_type}": get: summary: Show CRM integration health operationId: getPerformanceAnalyticsIntegrationHealth tags: - Performance Analytics description: | **Requires `performance_analytics.read` scope.** Report connection health and synced-deal volume for one CRM integration. security: - G2OAuth: - performance_analytics.read parameters: - name: product_id in: path description: The UUID or slug of the product required: true schema: type: string - name: integration_type in: path schema: type: string enum: - hubspot - salesforce description: The CRM provider required: true responses: '200': description: Integration health content: application/vnd.api+json: example: data: id: b1150f4f-6611-4a02-8582-000000000001-hubspot type: performance_analytics_integration_health attributes: provider: hubspot active_authenticated: false last_synced_at: '2022-01-01T00:00:00.000-06:00' sync_cadence: weekly deals_synced_count: 2 schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: provider: type: string description: The CRM provider this health block describes example: hubspot nullable: false active_authenticated: type: boolean description: Whether the integration is live and authenticated (real data flows) example: true nullable: false last_synced_at: type: string description: ISO8601 timestamp of the last successful sync, or null if never synced example: '2026-07-05T01:57:47-05:00' format: date-time nullable: true sync_cadence: type: string description: Configured sync frequency example: weekly nullable: false deals_synced_count: type: integer description: Count of synced deals (deduped by resource_id, archived excluded) example: 128 nullable: false relationships: type: object included: "$ref": "#/components/schemas/included" '400': description: When the provider is unsupported content: application/vnd.api+json: example: errors: - status: '400' title: 'integration_type: is not a supported provider' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Missing performance_analytics.read scope content: application/vnd.api+json: example: errors: - status: '403' title: You do not have access to that resource schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid product id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" "/api/v2/products/{product_id}/performance_analytics": get: summary: Show Performance Analytics activation status operationId: getPerformanceAnalyticsActivationStatus tags: - Performance Analytics description: | **Requires `performance_analytics.read` scope.** Report whether a supported CRM is connected for a PA-licensed product. security: - G2OAuth: - performance_analytics.read parameters: - name: product_id in: path description: The UUID or slug of the product required: true schema: type: string responses: '200': description: Activation status content: application/vnd.api+json: example: data: id: d797efd1-b921-4831-8686-000000000001 type: performance_analytics_activation_status attributes: status: connected connected_providers: - hubspot subscription_tier: connect_url: http://my.lvh.me:63479/test-product-188/integrations schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: status: type: string enum: - connected - not_connected description: 'CRM connection state for the (PA-licensed) product: connected / not_connected' example: connected nullable: false connected_providers: type: array items: type: string x-nullable: false description: Live, supported CRM providers (subset of hubspot, salesforce) example: - hubspot nullable: false subscription_tier: type: string description: Vendor plan tier, or null for a free/base product example: enterprise nullable: true connect_url: type: string description: myG2 URL to connect/manage a CRM integration example: https://my.g2.com/acme-crm/integrations nullable: true relationships: type: object included: "$ref": "#/components/schemas/included" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Missing performance_analytics.read scope content: application/vnd.api+json: example: errors: - status: '403' title: You do not have access to that resource schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid product id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" "/api/v2/product_mappings": get: summary: List of product mappings operationId: getProductMappings tags: - Product Mappings description: |+ **No scope required.** security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: filter[product_id] description: G2 product ID in: query schema: type: string - name: filter[external_id] description: Non-G2 ID mapped to the G2 product in: query schema: type: string - name: filter[deleted_at_lt] schema: type: string format: date-time description: Max deleted_at value (RFC3339 format) in: query - name: filter[deleted_at_gt] schema: type: string format: date-time description: Min deleted_at value (RFC3339 format) in: query - name: filter[created_at_gt] schema: type: string format: date-time description: Min created_at value (RFC3339 format) in: query - name: filter[created_at_lt] schema: type: string format: date-time description: Max created_at value (RFC3339 format) in: query - name: filter[updated_at_gt] schema: type: string format: date-time description: Min updated_at value (RFC3339 format) in: query - name: filter[updated_at_lt] schema: type: string format: date-time description: Max updated_at value (RFC3339 format) in: query - name: fields[product_mappings] in: query explode: false description: Comma separated list of fields for product_mappings to include in response schema: type: array items: type: string enum: - created_at - updated_at - match_score - external_id - product_id - product_name - partner_product_name - deleted_at responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields and relationships content: application/vnd.api+json: example: data: [] links: self: http://data.example.com/api/v2/product_mappings?filter%5Bproduct_id%5D=&filter%5Bexternal_id%5D=&filter%5Bdeleted_at_lt%5D=&filter%5Bdeleted_at_gt%5D=&filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&fields%5Bproduct_mappings%5D=created_at,updated_at,match_score,external_id,product_id,product_name,partner_product_name,deleted_at next: prev: meta: record_count: 0 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: created_at: type: string updated_at: type: string match_score: type: number external_id: type: string product_id: type: string product_name: type: string partner_product_name: type: string nullable: true deleted_at: type: string nullable: true required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" post: summary: Create a product mapping operationId: createProductMapping tags: - Product Mappings description: |+ **No scope required.** security: - AccountAPIToken: [] parameters: [] responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '201': description: Product mapping created successfully content: application/vnd.api+json: example: data: id: 98323a15-6439-4490-a271-98fa177f7158 type: product_mappings attributes: created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' match_score: 0.95 match_type: manual external_id: ext123 product_id: 89368b1f-c347-4a44-8599-000000000002 product_name: test product 202 partner_product_name: Sample Partner Product deleted_at: requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object required: - type - attributes properties: type: type: string enum: - product_mappings attributes: type: object required: - external_id - product_id properties: external_id: type: string product_id: type: string match_score: type: number nullable: true partner_product_name: type: string nullable: true "/api/v2/product_mappings/{id}": parameters: - name: id in: path description: Product mapping ID required: true schema: type: string put: summary: Update a product mapping operationId: updateProductMapping tags: - Product Mappings description: |+ **No scope required.** security: - AccountAPIToken: [] parameters: [] responses: '200': description: Product mapping updated successfully content: application/vnd.api+json: example: data: id: 89368b1f-c347-4a44-8599-000000000001 type: product_mappings attributes: created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' match_score: 0.85 match_type: manual external_id: updated_ext123 product_id: 89368b1f-c347-4a44-8599-000000000002 product_name: test product 204 partner_product_name: Updated Partner Product deleted_at: requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object required: - type - id - attributes properties: type: type: string enum: - product_mappings id: type: string attributes: type: object properties: external_id: type: string nullable: true product_id: type: string nullable: true match_score: type: number nullable: true partner_product_name: type: string nullable: true "/api/v2/product_ratings/{product_id}": get: summary: A product's ratings operationId: getProductRatings tags: - Product Ratings description: "**Requires `products.ratings.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: product_id in: path description: G2 Product UUID or Slug required: true - name: fields[products] in: query explode: false description: Comma separated list of fields for products to include in response schema: type: array items: type: string enum: - ease_of_use - quality_of_support - meets_requirements - ease_of_setup - ease_of_doing_business_with - direction - ease_of_admin responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when user does not have access to the product: value: errors: - status: '403' title: You do not have access to that resource when user has product access but lacks the required license: value: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none example: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields and relationships content: application/vnd.api+json: example: data: id: 100bcbe8-b458-426a-83b6-000000000001 type: products attributes: ease_of_use: 0 quality_of_support: 1.7 ease_of_setup: 8.3 meets_requirements: 5.0 ease_of_doing_business_with: 10 direction: 10 ease_of_admin: 10 schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: ease_of_use: type: number quality_of_support: type: number ease_of_setup: type: number meets_requirements: type: number ease_of_doing_business_with: type: number direction: type: number ease_of_admin: type: number included: "$ref": "#/components/schemas/included" "/api/v2/products/{product_id}/screenshots": get: summary: Lists Screenshots related to given product operationId: getProductScreenshots tags: - Screenshots description: "**Requires `products.screenshots.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: product_id in: path required: true schema: type: string - name: filter[created_at_gt] in: query description: Min time for when a record was created. Using rfc3339 format. - name: filter[created_at_lt] in: query description: Max time for when a record was last updated. Using rfc3339 format. - name: filter[updated_at_gt] in: query description: Min time for when a record was last updated. Using rfc3339 format. - name: filter[updated_at_lt] in: query description: Max time for when a record was last updated. Using rfc3339 format. - name: fields[screenshots] in: query explode: false description: Comma separated list of fields for screenshots to include in response schema: type: array items: type: string enum: - id - product_id - url - created_at - updated_at - file_name - title - description - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. product,vendor) schema: type: array items: type: string enum: - product - vendor responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when user does not have access to the product: value: errors: - status: '403' title: You do not have access to that resource when user has product access but lacks the required license: value: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none example: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: example: data: - id: a89fa6e8-f5f4-47a2-8746-000000000002 type: screenshots attributes: product_id: a89fa6e8-f5f4-47a2-8746-000000000001 url: https://d3cat1s0n6zlx1.cloudfront.net/uploads/attachment/file/64/g2.png created_at: '2021-12-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' file_name: g2.png title: G2.com description: links: self: http://data.example.com/api/v2/products/a89fa6e8-f5f4-47a2-8746-000000000001/screenshots?filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&fields%5Bscreenshots%5D=id,product_id,url,created_at,updated_at,file_name,title,description&include=product,vendor next: prev: meta: record_count: 1 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object required: - created_at - product_id - url properties: product_id: type: string url: type: string created_at: type: string format: date-time updated_at: type: string format: date-time file_name: type: string title: type: string description: type: string nullable: true required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/products/{product_id}/downloads": get: summary: Lists Downloads related to given product operationId: getProductDownloads tags: - Downloads description: "**Requires `products.downloads.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: product_id in: path required: true schema: type: string - name: filter[created_at_gt] in: query description: Min time for when a record was created. Using rfc3339 format. - name: filter[created_at_lt] in: query description: Max time for when a record was last updated. Using rfc3339 format. - name: filter[updated_at_gt] in: query description: Min time for when a record was last updated. Using rfc3339 format. - name: filter[updated_at_lt] in: query description: Max time for when a record was last updated. Using rfc3339 format. - name: fields[downloads] in: query explode: false description: Comma separated list of fields for downloads to include in response schema: type: array items: type: string enum: - id - product_id - url - created_at - updated_at - file_name - title - description - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. product,vendor) schema: type: array items: type: string enum: - product - vendor responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when user does not have access to the product: value: errors: - status: '403' title: You do not have access to that resource when user has product access but lacks the required license: value: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none example: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: example: data: - id: a89fa6e8-f5f4-47a2-8746-000000000002 type: downloads attributes: product_id: a89fa6e8-f5f4-47a2-8746-000000000001 url: https://d3cat1s0n6zlx1.cloudfront.net/uploads/attachment/file/76/example.zip created_at: '2021-12-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' file_name: example.zip title: G2.com description: relationships: product: data: id: a89fa6e8-f5f4-47a2-8746-000000000001 type: products vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors included: - id: a89fa6e8-f5f4-47a2-8746-000000000001 type: products attributes: type: Software detail_description: Description domain: example.com g2_url: http://www.lvh.me:63479/products/product-one/reviews name: Product One public_detail_url: review_count: 0 slug: product-one write_review_url: http://www.lvh.me:63479/products/product-one/take_survey image_url: pricing_tiers: [] star_rating: 2.5 relationships: categories: data: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000006 type: product_categories discussions: data: [] links: related: http://data.lvh.me:63479/api/v2/products/a89fa6e8-f5f4-47a2-8746-000000000001/discussions screenshots: data: [] vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors attributes: name: Test Vendor description: company_website: https://example.com slug: test-vendor public_products_count: 1 updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: - id: a89fa6e8-f5f4-47a2-8746-000000000001 type: products links: self: http://data.example.com/api/v2/products/a89fa6e8-f5f4-47a2-8746-000000000001/downloads?filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&fields%5Bdownloads%5D=id,product_id,url,created_at,updated_at,file_name,title,description&include=product,vendor next: prev: meta: record_count: 1 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object required: - created_at - product_id - url properties: product_id: type: string url: type: string created_at: type: string format: date-time updated_at: type: string format: date-time file_name: type: string title: type: string description: type: string nullable: true required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/products/{product_id}/competitors": get: summary: Lists competitors related to given product operationId: getProductCompetitors tags: - Competitors description: |+ **No scope required.** security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: product_id in: path description: Product UUID or Slug required: true schema: type: string - name: per in: query deprecated: true description: Deprecated alias for page[size] (max 50). page[size] takes precedence. schema: type: integer minimum: 1 maximum: 50 - name: filter[category_uuid_eq] description: Filter competitors by category UUID in: query schema: type: string - name: fields[products] in: query explode: false description: Comma separated list of fields for products to include in response schema: type: array items: type: string enum: - type - detail_description - domain - g2_url - name - public_detail_url - review_count - slug - write_review_url - image_url - pricing_tiers - star_rating - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. categories) schema: type: array items: type: string enum: - categories responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when user does not have access to the product: value: errors: - status: '403' title: You do not have access to that resource when user has product access but lacks the required license: value: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none example: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none '200': description: With all fields included content: application/vnd.api+json: example: data: - id: 2274f156-9a91-4d8a-857f-000000000004 type: products attributes: type: Software detail_description: Competitor Description domain: competitor3.com g2_url: http://www.lvh.me:63479/products/competitor-product-3/reviews name: Competitor Product 3 public_detail_url: https://www.competitor3.com review_count: 0 slug: competitor-product-3 write_review_url: http://www.lvh.me:63479/products/competitor-product-3/take_survey image_url: pricing_tiers: [] star_rating: 2.5 relationships: categories: data: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000090 type: product_categories discussions: data: [] links: related: http://data.lvh.me:63479/api/v2/products/2274f156-9a91-4d8a-857f-000000000004/discussions screenshots: data: [] vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000085 type: vendors - id: 2274f156-9a91-4d8a-857f-000000000003 type: products attributes: type: Software detail_description: Competitor Description domain: competitor2.com g2_url: http://www.lvh.me:63479/products/competitor-product-2/reviews name: Competitor Product 2 public_detail_url: https://www.competitor2.com review_count: 0 slug: competitor-product-2 write_review_url: http://www.lvh.me:63479/products/competitor-product-2/take_survey image_url: pricing_tiers: [] star_rating: 2.5 relationships: categories: data: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000047 type: product_categories discussions: data: [] links: related: http://data.lvh.me:63479/api/v2/products/2274f156-9a91-4d8a-857f-000000000003/discussions screenshots: data: [] vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000043 type: vendors - id: 2274f156-9a91-4d8a-857f-000000000002 type: products attributes: type: Software detail_description: Competitor Description domain: competitor1.com g2_url: http://www.lvh.me:63479/products/competitor-product-1/reviews name: Competitor Product 1 public_detail_url: https://www.competitor1.com review_count: 0 slug: competitor-product-1 write_review_url: http://www.lvh.me:63479/products/competitor-product-1/take_survey image_url: pricing_tiers: [] star_rating: 2.5 relationships: categories: data: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000006 type: product_categories discussions: data: [] links: related: http://data.lvh.me:63479/api/v2/products/2274f156-9a91-4d8a-857f-000000000002/discussions screenshots: data: [] vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors included: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000090 type: product_categories attributes: name: test slug: test-aaaaaaaa-bbbb-4ccc-8ddd-000000000091 description: test updated_at: '2022-01-01T00:00:00.000-06:00' - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000047 type: product_categories attributes: name: test slug: test-aaaaaaaa-bbbb-4ccc-8ddd-000000000048 description: test updated_at: '2022-01-01T00:00:00.000-06:00' - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000006 type: product_categories attributes: name: test slug: test description: test updated_at: '2022-01-01T00:00:00.000-06:00' links: self: http://data.example.com/api/v2/products/2274f156-9a91-4d8a-857f-000000000001/competitors?per=10&filter%5Bcategory_uuid_eq%5D=&fields%5Bproducts%5D=type,detail_description,domain,g2_url,name,public_detail_url,review_count,slug,write_review_url,image_url,pricing_tiers,star_rating&include=categories next: prev: meta: record_count: 3 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: type: type: string description: Type of product (e.g., "Software", "Hardware") nullable: false detail_description: type: string description: Detailed description of the product nullable: false domain: type: string description: Primary domain of the product website example: salesforce.com nullable: false g2_url: type: string description: Full URL to the product page on G2 example: https://www.g2.com/products/salesforce-sales-cloud/reviews format: uri nullable: false name: type: string description: Name of the product example: Salesforce Sales Cloud nullable: false public_detail_url: type: string description: Vendor website URL for the product example: https://www.salesforce.com format: uri nullable: false review_count: type: integer description: Total number of reviews for the product example: 15234 nullable: false slug: type: string description: URL-friendly identifier for the product example: salesforce-sales-cloud nullable: false write_review_url: type: string description: URL to write a review for this product on G2 format: uri nullable: false image_url: type: string description: URL to the product logo or favicon format: uri nullable: true pricing_tiers: type: array items: type: string x-nullable: false description: List of pricing tiers with prices example: - Free - Pro ($7.25 per user Per Month) - Enterprise (Contact Us) nullable: false star_rating: type: number description: Average star rating (1-5 scale) example: 4.3 nullable: true relationships: type: object required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/products/{product_id}/discussions": get: summary: Lists discussions related to given product operationId: getProductDiscussions tags: - Discussions description: "**Requires `products.discussions.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: product_id in: path description: Product UUID or Slug required: true schema: type: string - name: fields[discussions] in: query explode: false description: Comma separated list of fields for discussions to include in response schema: type: array items: type: string enum: - attribution - comments_count - comments_present - content - created_at - is_public - official_response_present - product_id - product_name - report_url - seeded - slug - title - type - url - vendor_question - verified_current_user - votes_down - votes_up - votes_total - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. user,comments) schema: type: array items: type: string enum: - user - comments responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when user does not have access to the product: value: errors: - status: '403' title: You do not have access to that resource when user has product access but lacks the required license: value: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none example: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: example: data: - id: e8fdabd8-2397-4ce5-8161-000000000002 type: discussions attributes: attribution: text: Verified by G2 url: http://www.lvh.me:63479/products/product-one/reviews logo: http://www.lvh.me:63479/assets/g2-logo-rorange.svg comments_count: 0 comments_present: false content: Some discussion stuff... created_at: '2021-12-01T00:00:00.000-06:00' is_public: true official_response_present: false product_id: e8fdabd8-2397-4ce5-8161-000000000001 product_name: Product One report_url: http://www.lvh.me:63479/discussions/a-discussion/concerns/new seeded: false slug: a-discussion title: A Discussion type: product_question url: http://www.lvh.me:63479/discussions/a-discussion vendor_question: false verified_current_user: true votes_down: 0 votes_up: 1 votes_total: 1 relationships: user: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040 type: users comments: data: [] included: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040 type: users attributes: industry: Internet name: alex smith first_name: alex last_name: smith image: company: ACME title: company_segment: " " links: self: http://data.example.com/api/v2/products/e8fdabd8-2397-4ce5-8161-000000000001/discussions?fields%5Bdiscussions%5D=attribution,comments_count,comments_present,content,created_at,is_public,official_response_present,product_id,product_name,report_url,seeded,slug,title,type,url,vendor_question,verified_current_user,votes_down,votes_up,votes_total&include=user,comments next: prev: meta: record_count: 1 products: - name: Product One domain: example.com slug: product-one product_type: Software star_rating: 2.5 avg_rating: '5.0' detail_description: Description review_count: 0 image_url: public_detail_url: g2crowd_url: http://www.lvh.me:63479/products/product-one/reviews write_review_url: http://www.lvh.me:63479/products/product-one/take_survey schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: attribution: type: object comments_count: type: integer comments_present: type: boolean content: type: string created_at: type: string is_public: type: boolean official_response_present: type: boolean product_id: type: string product_name: type: string report_url: type: string seeded: type: boolean slug: type: string title: type: string type: type: string enum: - product_question - category_question vendor_question: type: boolean verified_current_user: type: boolean votes_down: type: integer votes_total: type: integer votes_up: type: integer required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/products/{product_id}/integration_reviews": get: summary: Lists integration reviews for given product operationId: getProductIntegrationReviews tags: - Integration Reviews description: "**Requires `integration_reviews.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: product_id in: path description: Primary Product UUID or Slug required: true schema: type: string - name: filter[product_uuid_eq] description: Filter by integration product UUID in: query schema: type: string - name: filter[nps_eq] description: Filter by exact NPS score (0-10) in: query schema: type: string - name: filter[nps_gt] description: Filter by NPS greater than in: query schema: type: string - name: filter[nps_lt] description: Filter by NPS less than in: query schema: type: string - name: fields[integration_reviews] in: query description: 'Comma-separated list of fields to include. Available fields: nps, description, product_name, primary_product_name, user_name, created_at, updated_at' schema: type: string - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. product,primary_product,user) schema: type: array items: type: string enum: - product - primary_product - user responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when user does not have access to the product: value: errors: - status: '403' title: You do not have access to that resource when user has product access but lacks the required license: value: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none example: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none '404': description: With invalid product id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: example: data: - id: 65bd6c03-6ac8-4024-87ac-000000000005 type: integration_reviews attributes: primary_product_name: Primary Product product_name: Integration Product user_name: Verified User in Internet nps: 8 description: Great integration with the product created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' relationships: product: data: id: 65bd6c03-6ac8-4024-87ac-000000000001 type: products primary_product: data: id: 65bd6c03-6ac8-4024-87ac-000000000002 type: products user: data: id: 65bd6c03-6ac8-4024-87ac-000000000003 type: users included: - id: 65bd6c03-6ac8-4024-87ac-000000000001 type: products attributes: type: Software detail_description: domain: example.com g2_url: http://www.lvh.me:63479/products/integration-product/reviews name: Integration Product public_detail_url: review_count: 0 slug: integration-product write_review_url: http://www.lvh.me:63479/products/integration-product/take_survey image_url: pricing_tiers: [] star_rating: 2.5 relationships: categories: data: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000006 type: product_categories discussions: data: [] links: related: http://data.lvh.me:63479/api/v2/products/65bd6c03-6ac8-4024-87ac-000000000001/discussions screenshots: data: [] vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors - id: 65bd6c03-6ac8-4024-87ac-000000000002 type: products attributes: type: Software detail_description: domain: example.com g2_url: http://www.lvh.me:63479/products/primary-product/reviews name: Primary Product public_detail_url: review_count: 0 slug: primary-product write_review_url: http://www.lvh.me:63479/products/primary-product/take_survey image_url: pricing_tiers: [] star_rating: 2.5 relationships: categories: data: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000022 type: product_categories discussions: data: [] links: related: http://data.lvh.me:63479/api/v2/products/65bd6c03-6ac8-4024-87ac-000000000002/discussions screenshots: data: [] vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000018 type: vendors - id: 65bd6c03-6ac8-4024-87ac-000000000003 type: users attributes: industry: Internet name: alex smith first_name: alex last_name: smith image: company: title: company_segment: " " links: self: http://data.example.com/api/v2/products/65bd6c03-6ac8-4024-87ac-000000000002/integration_reviews?filter%5Bproduct_uuid_eq%5D=&filter%5Bnps_eq%5D=&filter%5Bnps_gt%5D=&filter%5Bnps_lt%5D=&fields%5Bintegration_reviews%5D=nps%2Cdescription%2Cproduct_name%2Cprimary_product_name%2Cuser_name%2Ccreated_at%2Cupdated_at&include=product,primary_product,user next: prev: meta: record_count: 1 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string enum: - integration_reviews attributes: type: object properties: nps: type: integer minimum: 0 maximum: 10 description: type: string nullable: true product_name: type: string primary_product_name: type: string user_name: type: string nullable: true created_at: type: string format: datetime updated_at: type: string format: datetime required: - nps - product_name - primary_product_name - created_at - updated_at relationships: type: object properties: product: type: object required: - data properties: data: type: object properties: id: type: string type: type: string enum: - products included: "$ref": "#/components/schemas/included" primary_product: type: object required: - data properties: data: type: object properties: id: type: string type: type: string enum: - products included: "$ref": "#/components/schemas/included" user: type: object required: - data properties: data: type: object properties: id: type: string type: type: string enum: - users included: "$ref": "#/components/schemas/included" required: - id - type - attributes included: type: array items: anyOf: - type: object properties: id: type: string type: type: string enum: - products attributes: type: object properties: name: type: string slug: type: string required: - id - type - attributes - type: object properties: id: type: string type: type: string enum: - users attributes: type: object properties: name: type: string first_name: type: string nullable: true last_name: type: string nullable: true company: type: string nullable: true required: - id - type - attributes links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/products/{product_id}/badges": get: summary: Lists medals (badges) awarded to given product operationId: getProductMedals tags: - Medals description: |+ **No scope required.** security: - AccountAPIToken: [] parameters: - name: product_id in: path description: Product UUID or Slug required: true schema: type: string - name: page[number] in: query schema: type: integer description: Page number to return (min 1). Defaults to 1. - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: filter[season] description: 'Report season. Valid values: spring, summer, fall, winter' example: spring in: query schema: type: string - name: filter[year] description: Report year example: '2024' in: query schema: type: string - name: filter[category_id] description: Category UUID to filter medals by category in: query schema: type: string - name: fields[medals] in: query explode: false description: Comma separated list of fields for medals to include in response schema: type: array items: type: string enum: - title - description - badge_type - image - alt_text - segment - full_title - geo_name - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. product,categories) schema: type: array items: type: string enum: - product - categories responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when user does not have access to the product: value: errors: - status: '403' title: You do not have access to that resource when user has product access but lacks the required license: value: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none example: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: example: data: - id: users_love_us type: medals attributes: title: Users Love Us description: The Users Love Us badge is earned after collecting 20 reviews with an average rating of 4.0 stars badge_type: static-badge image: png: https://example.com/image/fetch/h_1000,f_png/https%3A%2F%2Fwww.g2.test%2Fshared-assets%2Fproduct-badges%2Fusers-love-us.svg svg: https://www.g2.test/shared-assets/product-badges/users-love-us.svg alt_text: Users love Product One on G2 segment: '' full_title: Users love Product One on G2 geo_name: '' relationships: product: data: id: '997' type: software categories: data: [] included: - id: '997' type: software links: self: http://data.example.com/api/v2/products/83afb161-765c-4d7b-83c9-000000000001/badges?fields%5Bmedals%5D=title%2Cdescription%2Cbadge_type%2Cimage%2Calt_text%2Csegment%2Cfull_title%2Cgeo_name&filter%5Bcategory_id%5D=&filter%5Bseason%5D=&filter%5Byear%5D=&include=product%2Ccategories&page%5Bnumber%5D=1&page%5Bsize%5D=25 first: http://data.example.com/api/v2/products/83afb161-765c-4d7b-83c9-000000000001/badges?fields%5Bmedals%5D=title%2Cdescription%2Cbadge_type%2Cimage%2Calt_text%2Csegment%2Cfull_title%2Cgeo_name&filter%5Bcategory_id%5D=&filter%5Bseason%5D=&filter%5Byear%5D=&include=product%2Ccategories&page%5Bnumber%5D=1&page%5Bsize%5D=25 prev: next: last: http://data.example.com/api/v2/products/83afb161-765c-4d7b-83c9-000000000001/badges?fields%5Bmedals%5D=title%2Cdescription%2Cbadge_type%2Cimage%2Calt_text%2Csegment%2Cfull_title%2Cgeo_name&filter%5Bcategory_id%5D=&filter%5Bseason%5D=&filter%5Byear%5D=&include=product%2Ccategories&page%5Bnumber%5D=1&page%5Bsize%5D=25 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: title: type: string description: Medal title example: Leader nullable: false description: type: string description: Medal description nullable: false badge_type: type: string description: Badge type (e.g. best-product-badge) nullable: false image: type: object description: Medal image URLs (png and svg formats) properties: {} nullable: false alt_text: type: string description: Image alt text for accessibility nullable: false segment: type: string description: Market segment example: Enterprise nullable: false full_title: type: string description: Full medal title with segment nullable: false geo_name: type: string description: Geographic region name nullable: true relationships: type: object required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/products/{product_id}/features": get: summary: List features for a specific product operationId: getProductFeatures tags: - Product Features description: "**Requires `product_features.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: product_id in: path description: Product UUID or Slug required: true schema: type: string - name: filter[updated_at_gt] description: Filter records updated after this date schema: type: string format: date-time in: query - name: filter[updated_at_lt] description: Filter records updated before this date schema: type: string format: date-time in: query - name: filter[created_at_gt] description: Filter records created after this date schema: type: string format: date-time in: query - name: filter[created_at_lt] description: Filter records created before this date schema: type: string format: date-time in: query - name: filter[category_uuid_eq] description: Filter by category UUID in: query schema: type: string - name: filter[product_uuid_eq] description: Filter by product UUID in: query schema: type: string - name: filter[functionality_eq] description: Filter by feature functionality type in: query schema: type: string - name: filter[is_verified_eq] description: Filter by verification status in: query schema: type: string - name: fields[product_features] in: query explode: false description: Comma separated list of fields for product_features to include in response schema: type: array items: type: string enum: - section_title - feature_id - feature - description - review_count - rating - functionality - is_verified - available - created_at - updated_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. category) schema: type: array items: type: string enum: - category responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: List of product features with metadata content: application/vnd.api+json: example: data: objects: - id: 675259e2-9da0-4aff-8a61-000000000002 name: test product 214 product_features: - section_title: test section feature_id: 1316 feature: Grouped Feature description: review_count: rating: functionality: native is_verified: false available: true created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' categories: - id: 675259e2-9da0-4aff-8a61-000000000001 name: test - section_title: test section feature_id: 1315 feature: Feature A description: review_count: rating: functionality: native is_verified: false available: true created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' categories: - id: 675259e2-9da0-4aff-8a61-000000000001 name: test meta_aggs: feature_count_per_group: 2 avg_rating: review_count: links: self: http://data.example.com/api/v2/products/675259e2-9da0-4aff-8a61-000000000002/features?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&filter%5Bcategory_uuid_eq%5D=&filter%5Bproduct_uuid_eq%5D=&filter%5Bfunctionality_eq%5D=&filter%5Bis_verified_eq%5D=&fields%5Bproduct_features%5D=section_title,feature_id,feature,description,review_count,rating,functionality,is_verified,available,created_at,updated_at&include=category next: prev: schema: type: object properties: data: type: object properties: objects: type: array items: type: object properties: id: type: string name: type: string product_features: type: array items: type: object properties: section_title: type: string nullable: true feature_id: type: integer feature: type: string nullable: true description: type: string nullable: true review_count: type: integer nullable: true rating: type: number nullable: true functionality: type: string is_verified: type: boolean available: type: boolean created_at: type: string format: date-time updated_at: type: string format: date-time meta_aggs: type: object properties: feature_count_per_group: type: integer avg_rating: type: number nullable: true review_count: type: integer nullable: true links: type: object properties: self: type: string next: type: string nullable: true prev: type: string nullable: true "/api/v2/products/features": get: summary: List all product features grouped by product operationId: getAllProductFeatures tags: - Product Features description: "**Requires `product_features.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: filter[updated_at_gt] description: Filter records updated after this date schema: type: string format: date-time in: query - name: filter[updated_at_lt] description: Filter records updated before this date schema: type: string format: date-time in: query - name: filter[created_at_gt] description: Filter records created after this date schema: type: string format: date-time in: query - name: filter[created_at_lt] description: Filter records created before this date schema: type: string format: date-time in: query - name: filter[category_uuid_eq] description: Filter by category UUID in: query schema: type: string - name: filter[product_uuid_eq] description: Filter by product UUID in: query schema: type: string - name: filter[functionality_eq] description: Filter by feature functionality type in: query schema: type: string - name: filter[is_verified_eq] description: Filter by verification status in: query schema: type: string - name: fields[product_features] in: query explode: false description: Comma separated list of fields for product_features to include in response schema: type: array items: type: string enum: - section_title - feature_id - feature - description - review_count - rating - functionality - is_verified - available - created_at - updated_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. category) schema: type: array items: type: string enum: - category responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: List of grouped product features content: application/vnd.api+json: example: data: objects: - id: 675259e2-9da0-4aff-8a61-000000000002 name: test product 224 product_features: - section_title: test section feature_id: 1436 feature: Grouped Feature description: review_count: rating: functionality: native is_verified: false available: true created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' categories: - id: 675259e2-9da0-4aff-8a61-000000000001 name: test - section_title: test section feature_id: 1435 feature: Feature A description: review_count: rating: functionality: native is_verified: false available: true created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' categories: - id: 675259e2-9da0-4aff-8a61-000000000001 name: test meta_aggs: feature_count_per_group: 2 avg_rating: review_count: links: self: http://data.example.com/api/v2/products/features?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&filter%5Bcategory_uuid_eq%5D=&filter%5Bproduct_uuid_eq%5D=&filter%5Bfunctionality_eq%5D=&filter%5Bis_verified_eq%5D=&fields%5Bproduct_features%5D=section_title,feature_id,feature,description,review_count,rating,functionality,is_verified,available,created_at,updated_at&include=category next: prev: schema: type: object properties: data: type: object properties: objects: type: array items: type: object properties: id: type: string name: type: string product_features: type: array items: type: object properties: section_title: type: string nullable: true feature_id: type: integer feature: type: string nullable: true description: type: string nullable: true review_count: type: integer nullable: true rating: type: number nullable: true functionality: type: string is_verified: type: boolean available: type: boolean created_at: type: string format: date-time updated_at: type: string format: date-time meta_aggs: type: object properties: feature_count_per_group: type: integer avg_rating: type: number nullable: true review_count: type: integer nullable: true links: type: object properties: self: type: string next: type: string nullable: true prev: type: string nullable: true "/api/v2/products/{product_id}/video_reviews": get: summary: Lists video reviews related to given product operationId: getProductVideoReviews tags: - Video Reviews description: "**Requires `products.video_reviews.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: product_id in: path description: Product UUID or Slug required: true schema: type: string - name: filter[updated_at_gt] description: Filter records updated after this date schema: type: string format: date-time in: query - name: filter[updated_at_lt] description: Filter records updated before this date schema: type: string format: date-time in: query - name: filter[created_at_gt] description: Filter records created after this date schema: type: string format: date-time in: query - name: filter[created_at_lt] description: Filter records created before this date schema: type: string format: date-time in: query - name: fields[video_reviews] in: query explode: false description: Comma separated list of fields for video_reviews to include in response schema: type: array items: type: string enum: - product_id - url - created_at - updated_at - file_name - title - description - thumbnail_url - video_type - video_id - video_provider - video_transcript_text - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. product,vendor) schema: type: array items: type: string enum: - product - vendor responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when user does not have access to the product: value: errors: - status: '403' title: You do not have access to that resource when user has product access but lacks the required license: value: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none example: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: example: data: - id: vgra6n0r36 type: video_reviews attributes: product_id: ba369f74-e278-485d-8e39-000000000001 url: https://fast.wistia.net/embed/iframe/vgra6n0r36 created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' file_name: vgra6n0r36 title: description: Video description thumbnail_url: https://wistia.com/demo?wvideo=vgra6n0r88.jpg video_type: video_review video_id: vgra6n0r36 video_provider: wistia video_transcript_text: Video Transcription relationships: product: data: id: ba369f74-e278-485d-8e39-000000000001 type: products vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors - id: vgra6n0r35 type: video_reviews attributes: product_id: ba369f74-e278-485d-8e39-000000000001 url: https://fast.wistia.net/embed/iframe/vgra6n0r35 created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' file_name: vgra6n0r35 title: description: Video description thumbnail_url: https://wistia.com/demo?wvideo=vgra6n0r88.jpg video_type: video_review video_id: vgra6n0r35 video_provider: wistia video_transcript_text: Video Transcription relationships: product: data: id: ba369f74-e278-485d-8e39-000000000001 type: products vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors - id: vgra6n0r34 type: video_reviews attributes: product_id: ba369f74-e278-485d-8e39-000000000001 url: https://fast.wistia.net/embed/iframe/vgra6n0r34 created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' file_name: vgra6n0r34 title: description: Video description thumbnail_url: https://wistia.com/demo?wvideo=vgra6n0r88.jpg video_type: video_review video_id: vgra6n0r34 video_provider: wistia video_transcript_text: Video Transcription relationships: product: data: id: ba369f74-e278-485d-8e39-000000000001 type: products vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors included: - id: ba369f74-e278-485d-8e39-000000000001 type: products attributes: type: Software detail_description: Description domain: example.com g2_url: http://www.lvh.me:63479/products/product-one/reviews name: Product One public_detail_url: review_count: 0 slug: product-one write_review_url: http://www.lvh.me:63479/products/product-one/take_survey image_url: pricing_tiers: [] star_rating: 2.5 relationships: categories: data: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000006 type: product_categories discussions: data: [] links: related: http://data.lvh.me:63479/api/v2/products/ba369f74-e278-485d-8e39-000000000001/discussions screenshots: data: [] vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors attributes: name: Test Vendor description: company_website: https://example.com slug: test-vendor public_products_count: 1 updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: - id: ba369f74-e278-485d-8e39-000000000001 type: products links: self: http://data.example.com/api/v2/products/ba369f74-e278-485d-8e39-000000000001/video_reviews?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&fields%5Bvideo_reviews%5D=product_id,url,created_at,updated_at,file_name,title,description,thumbnail_url,video_type,video_id,video_provider,video_transcript_text&include=product,vendor next: prev: meta: record_count: 3 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: product_id: type: string description: UUID of the product this video review belongs to nullable: false url: type: string description: Embed URL for the video format: uri nullable: false created_at: type: string description: Timestamp when the video review was created format: date-time nullable: false updated_at: type: string description: Timestamp when the video review was last updated format: date-time nullable: false file_name: type: string description: File name identifier for the video nullable: false title: type: string description: Title of the video review nullable: true description: type: string description: Description of the video review nullable: true thumbnail_url: type: string description: URL for the video thumbnail image format: uri nullable: false video_type: type: string description: Type of video (e.g. video_review) nullable: false video_id: type: string description: Provider-specific video identifier nullable: false video_provider: type: string description: Video hosting provider name nullable: false video_transcript_text: type: string description: Transcript text of the video nullable: true relationships: type: object required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/products/{product_id}/videos": get: summary: Lists videos related to given product operationId: getProductVideos tags: - Product Videos description: "**Requires `products.videos.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: product_id in: path description: Product UUID or Slug required: true schema: type: string - name: filter[created_at_gt] in: query description: Min time for when a record was created. Using rfc3339 format. - name: filter[created_at_lt] in: query description: Max time for when a record was last updated. Using rfc3339 format. - name: filter[updated_at_gt] in: query description: Min time for when a record was last updated. Using rfc3339 format. - name: filter[updated_at_lt] in: query description: Max time for when a record was last updated. Using rfc3339 format. - name: fields[product_videos] in: query explode: false description: Comma separated list of fields for product_videos to include in response schema: type: array items: type: string enum: - id - product_id - url - created_at - updated_at - description - thumbnail_url - video_type - video_id - video_provider - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. product,vendor) schema: type: array items: type: string enum: - product - vendor responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when user does not have access to the product: value: errors: - status: '403' title: You do not have access to that resource when user has product access but lacks the required license: value: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none example: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: example: data: - id: video_id_3 type: product_videos attributes: product_id: 0c0cd1a1-77eb-44cc-8ae3-000000000001 url: https://sample-domain.wistia.com/medias/aad8x3z2cxx created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' description: Video Description thumbnail_url: https://placehold.it/50x50.png video_type: product_video video_id: video_id_3 video_provider: youtube relationships: product: data: id: 0c0cd1a1-77eb-44cc-8ae3-000000000001 type: products vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors - id: video_id_2 type: product_videos attributes: product_id: 0c0cd1a1-77eb-44cc-8ae3-000000000001 url: https://sample-domain.wistia.com/medias/aad8x3z2cxx created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' description: Video Description thumbnail_url: https://placehold.it/50x50.png video_type: product_video video_id: video_id_2 video_provider: youtube relationships: product: data: id: 0c0cd1a1-77eb-44cc-8ae3-000000000001 type: products vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors - id: video_id_1 type: product_videos attributes: product_id: 0c0cd1a1-77eb-44cc-8ae3-000000000001 url: https://sample-domain.wistia.com/medias/aad8x3z2cxx created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' description: Video Description thumbnail_url: https://placehold.it/50x50.png video_type: product_video video_id: video_id_1 video_provider: youtube relationships: product: data: id: 0c0cd1a1-77eb-44cc-8ae3-000000000001 type: products vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors included: - id: 0c0cd1a1-77eb-44cc-8ae3-000000000001 type: products attributes: type: Software detail_description: Description domain: example.com g2_url: http://www.lvh.me:63479/products/product-one/reviews name: Product One public_detail_url: review_count: 0 slug: product-one write_review_url: http://www.lvh.me:63479/products/product-one/take_survey image_url: pricing_tiers: [] star_rating: 2.5 relationships: categories: data: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000006 type: product_categories discussions: data: [] links: related: http://data.lvh.me:63479/api/v2/products/0c0cd1a1-77eb-44cc-8ae3-000000000001/discussions screenshots: data: [] vendor: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 type: vendors attributes: name: Test Vendor description: company_website: https://example.com slug: test-vendor public_products_count: 1 updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: - id: 0c0cd1a1-77eb-44cc-8ae3-000000000001 type: products links: self: http://data.example.com/api/v2/products/0c0cd1a1-77eb-44cc-8ae3-000000000001/videos?filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&fields%5Bproduct_videos%5D=id,product_id,url,created_at,updated_at,description,thumbnail_url,video_type,video_id,video_provider&include=product,vendor next: prev: meta: record_count: 3 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object required: - created_at - product_id - url properties: id: type: string product_id: type: string url: type: string created_at: type: string format: date-time updated_at: type: string format: date-time description: type: string nullable: true thumbnail_url: type: string video_type: type: string video_id: type: string video_provider: type: string required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/products": get: summary: Browse list of G2 products operationId: getProducts tags: - Products description: "**Requires `products.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: filter[category_id][] description: Filter products by category id in: query schema: type: array items: type: string - name: filter[product_id][] description: Filter products by one or more product UUIDs example: - a1b2c3d4-e5f6-7890-abcd-ef1234567890 in: query schema: type: array items: type: string - name: filter[review_count_gteq] description: Filter products by minimum review count in: query schema: type: string - name: filter[slug][] description: Filter products by one or more product slugs (exact match) example: - salesforce-sales-cloud - hubspot-crm in: query schema: type: array items: type: string - name: filter[star_rating][] description: Filter products by star rating in: query schema: type: array items: type: string - name: filter[vendor_name] description: Filter products by vendor name in: query schema: type: string - name: filter[product_name_cont] description: Filter products by partial name match in: query schema: type: string - name: filter[product_name_eq] description: Filter products by exact name match in: query schema: type: string - name: filter[public_detail_url][] description: Filter products by exact vendor website URL (case-sensitive) example: - https://www.salesforce.com - https://www.hubspot.com in: query schema: type: array items: type: string - name: filter[public_detail_url_cont][] description: Filter by partial URL/domain match (substring) example: - salesforce.com - hubspot.com in: query schema: type: array items: type: string - name: filter[query] description: Search for products using full-text search in: query schema: type: string - name: fields[products] in: query explode: false description: Comma separated list of fields for products to include in response schema: type: array items: type: string enum: - type - detail_description - domain - g2_url - name - public_detail_url - review_count - slug - write_review_url - image_url - pricing_tiers - star_rating - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. categories,discussions,screenshots,vendor) schema: type: array items: type: string enum: - categories - discussions - screenshots - vendor responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: Successful responses content: application/vnd.api+json: example: data: - id: c18638bd-f0fa-48e3-89a1-000000000005 type: products attributes: type: Software detail_description: Description domain: example.com g2_url: http://www.lvh.me:63479/products/product-one/reviews name: Product One public_detail_url: https://www.example.com review_count: 0 slug: product-one write_review_url: http://www.lvh.me:63479/products/product-one/take_survey image_url: pricing_tiers: [] star_rating: 2.5 relationships: categories: data: - id: c18638bd-f0fa-48e3-89a1-000000000002 type: product_categories discussions: data: - id: c18638bd-f0fa-48e3-89a1-000000000004 type: discussions links: related: http://data.lvh.me:63479/api/v2/products/c18638bd-f0fa-48e3-89a1-000000000005/discussions screenshots: data: [] vendor: data: id: c18638bd-f0fa-48e3-89a1-000000000001 type: vendors included: - id: c18638bd-f0fa-48e3-89a1-000000000002 type: product_categories attributes: name: test slug: test description: test updated_at: '2022-01-01T00:00:00.000-06:00' - id: c18638bd-f0fa-48e3-89a1-000000000004 type: discussions attributes: attribution: text: Verified by G2 url: http://www.lvh.me:63479/products/product-one/reviews logo: http://www.lvh.me:63479/assets/g2-logo-rorange.svg comments_count: 0 comments_present: false content: Some discussion stuff... created_at: '2022-01-01T00:00:00.000-06:00' is_public: true official_response_present: false product_id: c18638bd-f0fa-48e3-89a1-000000000005 product_name: Product One report_url: http://www.lvh.me:63479/discussions/a-discussion/concerns/new seeded: false slug: a-discussion title: A Discussion type: product_question url: http://www.lvh.me:63479/discussions/a-discussion vendor_question: false verified_current_user: true votes_down: 0 votes_up: 1 votes_total: 1 relationships: user: data: id: c18638bd-f0fa-48e3-89a1-000000000003 type: users comments: data: [] - id: c18638bd-f0fa-48e3-89a1-000000000001 type: vendors attributes: name: Test Vendor description: company_website: https://example.com slug: test-vendor public_products_count: 1 updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: - id: c18638bd-f0fa-48e3-89a1-000000000005 type: products links: self: http://data.example.com/api/v2/products?&&filter%5Breview_count_gteq%5D=&&&filter%5Bvendor_name%5D=&filter%5Bproduct_name_cont%5D=&filter%5Bproduct_name_eq%5D=&&&filter%5Bquery%5D=&fields%5Bproducts%5D=type,detail_description,domain,g2_url,name,public_detail_url,review_count,slug,write_review_url,image_url,pricing_tiers,star_rating&include=categories,discussions,screenshots,vendor next: prev: meta: aggregates: - filter_name: star_rating collection: - id: 0 text: Unrated count: 0 - id: 1 text: 1 Star count: 0 - id: 2 text: 2 Stars count: 0 - id: 3 text: 3 Stars count: 1 - id: 4 text: 4 Stars count: 0 - id: 5 text: 5 Stars count: 0 record_count: 1 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: type: type: string description: Type of product (e.g., "Software", "Hardware") nullable: false detail_description: type: string description: Detailed description of the product nullable: false domain: type: string description: Primary domain of the product website example: salesforce.com nullable: false g2_url: type: string description: Full URL to the product page on G2 example: https://www.g2.com/products/salesforce-sales-cloud/reviews format: uri nullable: false name: type: string description: Name of the product example: Salesforce Sales Cloud nullable: false public_detail_url: type: string description: Vendor website URL for the product example: https://www.salesforce.com format: uri nullable: false review_count: type: integer description: Total number of reviews for the product example: 15234 nullable: false slug: type: string description: URL-friendly identifier for the product example: salesforce-sales-cloud nullable: false write_review_url: type: string description: URL to write a review for this product on G2 format: uri nullable: false image_url: type: string description: URL to the product logo or favicon format: uri nullable: true pricing_tiers: type: array items: type: string x-nullable: false description: List of pricing tiers with prices example: - Free - Pro ($7.25 per user Per Month) - Enterprise (Contact Us) nullable: false star_rating: type: number description: Average star rating (1-5 scale) example: 4.3 nullable: true relationships: type: object required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/products/{product_id}": get: summary: Show single product operationId: getProduct tags: - Products description: "**Requires `products.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: fields[products] in: query explode: false description: Comma separated list of fields for products to include in response schema: type: array items: type: string enum: - type - detail_description - domain - g2_url - name - public_detail_url - review_count - slug - write_review_url - image_url - pricing_tiers - star_rating - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. categories,discussions,screenshots,vendor) schema: type: array items: type: string enum: - categories - discussions - screenshots - vendor - name: product_id in: path description: The UUID or slug of the product required: true schema: type: string responses: '200': description: Successful responses content: application/vnd.api+json: schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: type: type: string description: Type of product (e.g., "Software", "Hardware") nullable: false detail_description: type: string description: Detailed description of the product nullable: false domain: type: string description: Primary domain of the product website example: salesforce.com nullable: false g2_url: type: string description: Full URL to the product page on G2 example: https://www.g2.com/products/salesforce-sales-cloud/reviews format: uri nullable: false name: type: string description: Name of the product example: Salesforce Sales Cloud nullable: false public_detail_url: type: string description: Vendor website URL for the product example: https://www.salesforce.com format: uri nullable: false review_count: type: integer description: Total number of reviews for the product example: 15234 nullable: false slug: type: string description: URL-friendly identifier for the product example: salesforce-sales-cloud nullable: false write_review_url: type: string description: URL to write a review for this product on G2 format: uri nullable: false image_url: type: string description: URL to the product logo or favicon format: uri nullable: true pricing_tiers: type: array items: type: string x-nullable: false description: List of pricing tiers with prices example: - Free - Pro ($7.25 per user Per Month) - Enterprise (Contact Us) nullable: false star_rating: type: number description: Average star rating (1-5 scale) example: 4.3 nullable: true relationships: type: object included: "$ref": "#/components/schemas/included" examples: Single product by UUID: value: data: id: c18638bd-f0fa-48e3-89a1-000000000005 type: products attributes: type: Software detail_description: Description domain: example.com g2_url: http://www.lvh.me:63479/products/product-one/reviews name: Product One public_detail_url: https://www.example.com review_count: 0 slug: product-one write_review_url: http://www.lvh.me:63479/products/product-one/take_survey image_url: pricing_tiers: [] star_rating: 2.5 relationships: categories: data: - id: c18638bd-f0fa-48e3-89a1-000000000002 type: product_categories discussions: data: - id: c18638bd-f0fa-48e3-89a1-000000000004 type: discussions links: related: http://data.lvh.me:63479/api/v2/products/c18638bd-f0fa-48e3-89a1-000000000005/discussions screenshots: data: [] vendor: data: id: c18638bd-f0fa-48e3-89a1-000000000001 type: vendors included: - id: c18638bd-f0fa-48e3-89a1-000000000002 type: product_categories attributes: name: test slug: test description: test updated_at: '2022-01-01T00:00:00.000-06:00' - id: c18638bd-f0fa-48e3-89a1-000000000004 type: discussions attributes: attribution: text: Verified by G2 url: http://www.lvh.me:63479/products/product-one/reviews logo: http://www.lvh.me:63479/assets/g2-logo-rorange.svg comments_count: 0 comments_present: false content: Some discussion stuff... created_at: '2022-01-01T00:00:00.000-06:00' is_public: true official_response_present: false product_id: c18638bd-f0fa-48e3-89a1-000000000005 product_name: Product One report_url: http://www.lvh.me:63479/discussions/a-discussion/concerns/new seeded: false slug: a-discussion title: A Discussion type: product_question url: http://www.lvh.me:63479/discussions/a-discussion vendor_question: false verified_current_user: true votes_down: 0 votes_up: 1 votes_total: 1 relationships: user: data: id: c18638bd-f0fa-48e3-89a1-000000000003 type: users comments: data: [] - id: c18638bd-f0fa-48e3-89a1-000000000001 type: vendors attributes: name: Test Vendor description: company_website: https://example.com slug: test-vendor public_products_count: 1 updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: - id: c18638bd-f0fa-48e3-89a1-000000000005 type: products 'When requesting specific fields: (name, domain)': value: data: id: c18638bd-f0fa-48e3-89a1-000000000005 type: products attributes: domain: example.com name: Product One relationships: categories: data: - id: c18638bd-f0fa-48e3-89a1-000000000002 type: product_categories discussions: data: - id: c18638bd-f0fa-48e3-89a1-000000000004 type: discussions links: related: http://data.lvh.me:63479/api/v2/products/c18638bd-f0fa-48e3-89a1-000000000005/discussions screenshots: data: [] vendor: data: id: c18638bd-f0fa-48e3-89a1-000000000001 type: vendors included: - id: c18638bd-f0fa-48e3-89a1-000000000002 type: product_categories attributes: name: test slug: test description: test updated_at: '2022-01-01T00:00:00.000-06:00' - id: c18638bd-f0fa-48e3-89a1-000000000004 type: discussions attributes: attribution: text: Verified by G2 url: http://www.lvh.me:63479/products/product-one/reviews logo: http://www.lvh.me:63479/assets/g2-logo-rorange.svg comments_count: 0 comments_present: false content: Some discussion stuff... created_at: '2022-01-01T00:00:00.000-06:00' is_public: true official_response_present: false product_id: c18638bd-f0fa-48e3-89a1-000000000005 product_name: Product One report_url: http://www.lvh.me:63479/discussions/a-discussion/concerns/new seeded: false slug: a-discussion title: A Discussion type: product_question url: http://www.lvh.me:63479/discussions/a-discussion vendor_question: false verified_current_user: true votes_down: 0 votes_up: 1 votes_total: 1 relationships: user: data: id: c18638bd-f0fa-48e3-89a1-000000000003 type: users comments: data: [] - id: c18638bd-f0fa-48e3-89a1-000000000001 type: vendors attributes: name: Test Vendor description: company_website: https://example.com slug: test-vendor public_products_count: 1 updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: - id: c18638bd-f0fa-48e3-89a1-000000000005 type: products example: data: id: c18638bd-f0fa-48e3-89a1-000000000005 type: products attributes: domain: example.com name: Product One type: Software detail_description: Description g2_url: http://www.lvh.me:63479/products/product-one/reviews public_detail_url: https://www.example.com review_count: 0 slug: product-one write_review_url: http://www.lvh.me:63479/products/product-one/take_survey image_url: pricing_tiers: [] star_rating: 2.5 relationships: categories: data: - id: c18638bd-f0fa-48e3-89a1-000000000002 type: product_categories discussions: data: - id: c18638bd-f0fa-48e3-89a1-000000000004 type: discussions links: related: http://data.lvh.me:63479/api/v2/products/c18638bd-f0fa-48e3-89a1-000000000005/discussions screenshots: data: [] vendor: data: id: c18638bd-f0fa-48e3-89a1-000000000001 type: vendors included: - id: c18638bd-f0fa-48e3-89a1-000000000002 type: product_categories attributes: name: test slug: test description: test updated_at: '2022-01-01T00:00:00.000-06:00' - id: c18638bd-f0fa-48e3-89a1-000000000004 type: discussions attributes: attribution: text: Verified by G2 url: http://www.lvh.me:63479/products/product-one/reviews logo: http://www.lvh.me:63479/assets/g2-logo-rorange.svg comments_count: 0 comments_present: false content: Some discussion stuff... created_at: '2022-01-01T00:00:00.000-06:00' is_public: true official_response_present: false product_id: c18638bd-f0fa-48e3-89a1-000000000005 product_name: Product One report_url: http://www.lvh.me:63479/discussions/a-discussion/concerns/new seeded: false slug: a-discussion title: A Discussion type: product_question url: http://www.lvh.me:63479/discussions/a-discussion vendor_question: false verified_current_user: true votes_down: 0 votes_up: 1 votes_total: 1 relationships: user: data: id: c18638bd-f0fa-48e3-89a1-000000000003 type: users comments: data: [] - id: c18638bd-f0fa-48e3-89a1-000000000001 type: vendors attributes: name: Test Vendor description: company_website: https://example.com slug: test-vendor public_products_count: 1 updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: - id: c18638bd-f0fa-48e3-89a1-000000000005 type: products '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" "/api/v2/questions": get: summary: List of questions operationId: getQuestions tags: - Questions description: "**Requires `questions.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: filter[updated_at_gt] description: Filter records updated after this date schema: type: string format: date-time in: query - name: filter[updated_at_lt] description: Filter records updated before this date schema: type: string format: date-time in: query - name: filter[created_at_gt] description: Filter records created after this date schema: type: string format: date-time in: query - name: filter[created_at_lt] description: Filter records created before this date schema: type: string format: date-time in: query - name: fields[questions] in: query explode: false description: Comma separated list of fields for questions to include in response schema: type: array items: type: string enum: - title - text_template - is_required - description - question_type - input_type - updated_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. categories) schema: type: array items: type: string enum: - categories responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: Successful responses content: application/vnd.api+json: example: data: - id: '1445' type: questions attributes: title: For which purposes do you use this product? text_template: For which purposes do you use %{product_name}? is_required: true description: description question_type: categories input_type: categories updated_at: '2022-01-01T00:00:00.000-06:00' relationships: categories: data: [] links: self: http://data.example.com/api/v2/questions?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&fields%5Bquestions%5D=title,text_template,is_required,description,question_type,input_type,updated_at&include=categories next: prev: meta: record_count: 1 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: title: type: string description: Question title nullable: true text_template: type: string description: Question text template nullable: true is_required: type: boolean description: Whether the question is required nullable: false description: type: string description: Question description nullable: true question_type: type: string description: Question type nullable: true input_type: type: string description: Input type for the question nullable: true updated_at: type: string description: Last updated timestamp format: date-time nullable: false relationships: type: object required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/questions/{id}": get: summary: Shows a single question operationId: getQuestion tags: - Questions description: "**Requires `questions.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: fields[questions] in: query explode: false description: Comma separated list of fields for questions to include in response schema: type: array items: type: string enum: - title - text_template - is_required - description - question_type - input_type - updated_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. categories) schema: type: array items: type: string enum: - categories - name: id in: path description: Question ID required: true schema: type: string responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: Question details with all fields included content: application/vnd.api+json: example: data: id: '1450' type: questions attributes: title: For which purposes do you use this product? text_template: For which purposes do you use %{product_name}? is_required: true description: description question_type: categories input_type: categories updated_at: '2022-01-01T00:00:00.000-06:00' relationships: categories: data: [] schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: title: type: string description: Question title nullable: true text_template: type: string description: Question text template nullable: true is_required: type: boolean description: Whether the question is required nullable: false description: type: string description: Question description nullable: true question_type: type: string description: Question type nullable: true input_type: type: string description: Input type for the question nullable: true updated_at: type: string description: Last updated timestamp format: date-time nullable: false relationships: type: object included: "$ref": "#/components/schemas/included" "/api/v2/reports/grid/{product_id}": get: summary: Get grid reports for a product operationId: getGridReports tags: - Reports description: "**Requires `reports.read` scope.**\n" security: - AccountAPIToken: - reports.read parameters: - name: product_id in: path description: Product UUID or slug required: true schema: type: string - name: filter[category_id] description: Filter by category UUID or slug in: query schema: type: string - name: filter[quarter] description: Report quarter in YYYY-QN format (e.g., 2025-Q4). Defaults to most recent published quarter. example: 2025-Q4 in: query schema: type: string - name: fields[grid_reports] in: query explode: false description: Comma separated list of fields for grid_reports to include in response schema: type: array items: type: string enum: - id - name - slug - category_name - category_id - quarter - segment - grid_position - satisfaction_score - market_presence_score - badge_url responses: '200': description: Successful responses content: application/vnd.api+json: examples: Grid report data for product: value: data: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000005 type: grid_reports attributes: name: test product 265 slug: test-product-265 category_name: Test Category category_id: aaaaaaaa-bbbb-4ccc-8ddd-000000000001 quarter: Q4 2024 segment: grid_position: Leader satisfaction_score: 85.5 market_presence_score: 72.3 badge_url: meta: total: 1 quarter: Q4 2024 schema: type: object required: - data - meta properties: data: type: array items: type: object required: - id - type - attributes properties: id: type: string type: type: string attributes: type: object properties: id: type: string description: Product UUID example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 nullable: false name: type: string description: Product name example: Acme Software nullable: false slug: type: string description: Product slug example: acme-software nullable: false category_name: type: string description: Category name nullable: true category_id: type: string description: Category UUID example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 nullable: true quarter: type: string description: Report quarter in QN YYYY format example: Q1 2026 nullable: true segment: type: string description: Report segment example: Small Business nullable: true grid_position: type: string description: Product grid position example: Leader nullable: true satisfaction_score: type: number description: Product satisfaction score out of 100 example: 95.9 nullable: true market_presence_score: type: number description: Product market presence score out of 100 example: 86.1 nullable: true badge_url: type: string description: Product badge URL nullable: true relationships: type: object meta: type: object required: - total - quarter properties: total: type: integer description: Total number of reports returned quarter: type: string description: Report quarter label (e.g., Q4 2025) nullable: true '400': description: Bad Request content: application/vnd.api+json: schema: type: object properties: errors: type: array items: type: object properties: status: type: string example: '400' title: type: string example: Bad Request detail: type: string example: Invalid parameter format '401': description: Unauthorized content: application/vnd.api+json: schema: type: object properties: errors: type: array items: type: object properties: status: type: string example: '401' title: type: string example: Bad Credentials '404': description: Not Found content: application/vnd.api+json: schema: type: object properties: errors: type: array items: type: object properties: status: type: string example: '404' title: type: string example: Not Found '403': description: Forbidden content: application/vnd.api+json: schema: type: object properties: errors: type: array items: type: object properties: status: type: string example: '403' title: type: string example: Forbidden detail: type: string example: Insufficient permissions or missing required scope "/api/v2/products/{product_id}/reviews": get: summary: Lists reviews of given product operationId: getProductReviews tags: - Reviews description: | **Requires `products.reviews.read` scope.** For filters that require integer IDs, the appropriate IDs are available in the meta aggregates of this endpoint. Suggestion: Query reviews for your product and then use filtering based on data returned to narrow results. security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: product_id in: path description: Product UUID or Slug required: true schema: type: string - name: filter[updated_at_gt] description: Filter records updated after this date schema: type: string format: date-time in: query - name: filter[updated_at_lt] description: Filter records updated before this date schema: type: string format: date-time in: query - name: filter[category_ids][] description: Filter reviews by category IDs in: query schema: type: array items: type: string - name: filter[comment_answer_values_exclude] description: Exclude reviews with specific comment answer values in: query schema: type: string - name: filter[company_segment][] description: |+ Filter by company size segment - Company Segment ID: `179` => `Small-Business` *(0-50 employees)* - Company Segment ID: `180` => `Mid-Market` *(51-1000 employees)* - Company Segment ID: `181` => `Enterprise` *(1001-Infinity employees)* in: query schema: type: array items: type: string - name: filter[country][] description: Filter by country names in: query schema: type: array items: type: string - name: filter[industry][] description: Filter by industry IDs in: query schema: type: array items: type: string - name: filter[nps_score][] description: Filter by NPS scores (0-10) in: query schema: type: array items: type: string - name: filter[region][] description: Filter by geographic regions in: query schema: type: array items: type: string - name: filter[role][] description: Filter by user role IDs in: query schema: type: array items: type: string - name: filter[removed] description: Filter to show only removed reviews in: query schema: type: string - name: serializer in: query type: string required: false description: Serializer type (market_intelligence or default) schema: enum: - market_intelligence - name: fields[reviews] in: query description: |- Comma-separated list of fields to include. Available fields vary based on context: - Default (standard serializer): answers, attribution, comments_present, country_name, default_sort, is_public, official_response_present, percent_complete, product_name, published_at, regions, review_incentive, slug, source, star_rating, submitted_at, title, url, user_updated_at, verified_current_user. - With serializer=market_intelligence: answers, category_names, company_segment_name, country_code, country_name, feature_ratings, industry_name, primary_region_name, product_name, rating, switched_from_products, switched_theme, title, url, user_company_name, user_updated_at. - With filter[removed]=true: product_name, removed_at, slug, submitted_at schema: oneOf: - type: array items: type: string enum: - answers - attribution - comments_present - country_name - default_sort - is_public - official_response_present - percent_complete - product_name - published_at - regions - review_incentive - slug - source - star_rating - submitted_at - title - url - user_updated_at - verified_current_user title: Standard serializer fields - type: array items: type: string enum: - answers - category_names - company_segment_name - country_code - country_name - feature_ratings - industry_name - primary_region_name - product_name - rating - switched_from_products - switched_theme - title - url - user_company_name - user_updated_at title: Market intelligence serializer fields - type: array items: type: string enum: - product_name - removed_at - slug - submitted_at title: Removed reviews fields explode: false - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. user) schema: type: array items: type: string enum: - user responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when user does not have access to the product: value: errors: - status: '403' title: You do not have access to that resource when user has product access but lacks the required license: value: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none example: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: answers: type: object description: Formatted question answers (pros, cons, etc.) properties: {} nullable: false attribution: type: object description: Attribution information for syndication properties: {} nullable: false comments_present: type: boolean description: Whether comments are present on the review nullable: false country_name: type: string description: Country of the reviewer nullable: false default_sort: type: number description: Default sort score for the review nullable: false is_public: type: boolean description: Whether the review is public nullable: false official_response_present: type: boolean description: Whether vendor has responded nullable: false percent_complete: type: number description: Completion percentage of the review example: 85.9 nullable: false product_name: type: string description: Name of the reviewed product nullable: false published_at: type: string description: When the review was published format: date-time nullable: false regions: type: array items: type: string description: Geographic regions associated with the reviewer nullable: false review_incentive: type: boolean description: Whether the review was incentivized nullable: false slug: type: string description: URL-friendly identifier example: great-product-for-our-team nullable: false source: type: string description: Source of the review (e.g., "G2", "Incentivized") nullable: false star_rating: type: number description: Star rating (1-5 scale) example: 4.5 nullable: false submitted_at: type: string description: When the review was submitted format: date-time nullable: false title: type: string description: Review title example: Great product for our team nullable: false url: type: string description: Full URL to the review on G2 format: uri nullable: false user_updated_at: type: string description: When the user profile was last updated format: date-time nullable: false verified_current_user: type: boolean description: Whether the reviewer is a verified current user nullable: false relationships: type: object required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" examples: with standard G2 reviews: value: data: - id: 41eb24b6-81ac-4269-8ec9-000000000002 type: reviews attributes: answers: love: text: What do you like best? value: I like... hate: text: What do you dislike? value: I dislike... recommendations: text: What recommendations would you have? value: I recommend... benefits: text: What benefits have you realized? value: I benefit... attribution: text: Verified by G2 url: http://www.lvh.me:63479/products/product-one/reviews/product-one-review-194 logo: http://www.lvh.me:63479/assets/g2-logo-rorange.svg comments_present: false country_name: United States default_sort: 0.8 is_public: true official_response_present: false percent_complete: 0.9 product_name: Product One published_at: '2021-12-01T00:00:00.000-06:00' regions: [] review_incentive: false slug: product-one-review-194 source: Organic review. This review was written entirely without invitation or incentive from G2, a seller, or an affiliate. star_rating: 2.5 submitted_at: '2022-01-01T00:00:00.000-06:00' title: Review title url: http://www.lvh.me:63479/products/product-one/reviews/product-one-review-194 user_updated_at: '2022-01-01T00:00:00.000-06:00' verified_current_user: false relationships: user: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040 type: users included: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040 type: users attributes: industry: Internet name: alex smith first_name: alex last_name: smith image: company: title: company_segment: " " links: self: http://data.example.com/api/v2/products/41eb24b6-81ac-4269-8ec9-000000000001/reviews?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&&filter%5Bcomment_answer_values_exclude%5D=&&&&&&&filter%5Bremoved%5D=&fields%5Breviews%5D=answers%2Cattribution%2Ccomments_present%2Ccountry_name%2Cdefault_sort%2Cis_public%2Cofficial_response_present%2Cpercent_complete%2Cproduct_name%2Cpublished_at%2Cregions%2Creview_incentive%2Cslug%2Csource%2Cstar_rating%2Csubmitted_at%2Ctitle%2Curl%2Cuser_updated_at%2Cverified_current_user&include=user next: prev: meta: aggregates: - filter_name: nps_score nested_filter_name: collection: - id: 5 text: 5 star count: 0 checked: false nested_boxes: [] - id: 4 text: 4 star count: 0 checked: false nested_boxes: [] - id: 3 text: 3 star count: 1 checked: false nested_boxes: [] - id: 2 text: 2 star count: 0 checked: false nested_boxes: [] - id: 1 text: 1 star count: 0 checked: false nested_boxes: [] expanded: true record_count: 1 products: - name: Product One domain: example.com slug: product-one product_type: Software star_rating: 2.5 avg_rating: '5.0' detail_description: Description review_count: 0 image_url: public_detail_url: g2crowd_url: http://www.lvh.me:63479/products/product-one/reviews write_review_url: http://www.lvh.me:63479/products/product-one/take_survey with Market Intelligence reviews: value: data: - id: 41eb24b6-81ac-4269-8ec9-000000000002 type: reviews attributes: url: http://www.lvh.me:63479/products/product-one/reviews/product-one-review-196 title: Review title rating: 5.0 user_updated_at: '2022-01-01T00:00:00.000-06:00' user_company_name: product_name: Product One company_segment_name: Mid-Market industry_name: Accounting primary_region_name: country_name: United States country_code: US switched_theme: [] category_names: [] switched_from_products: [] answers: nps: text: How likely is it that you would recommend the product to a friend or colleague? value: 5.0 ease_of_setup: text: Ease of Setup value: 0.0 ease_of_doing_business_with: text: Ease of Doing Business With value: 0.5 meets_requirements: text: Meets Requirements value: 1.0 ease_of_admin: text: Ease of Admin value: 1.5 ease_of_use: text: Ease of Use value: 2.0 quality_of_support: text: Quality of Support value: 2.5 love: text: What do you like best? value: I like... hate: text: What do you dislike? value: I dislike... recommendations: text: What recommendations would you have? value: I recommend... benefits: text: What benefits have you realized? value: I benefit... price: text: simplistic value: 3.0 product_role: text: What is your primary role when using the product? value: User time_used: text: What is your level of experience with the product? value: Failed to go Live implementation_year: text: When did you implement the product? value: 2006-07 implementation: text: How did you implement? value: Vendor Services Team deployment: text: Did you deploy in the cloud? value: 'No' go_live_time: text: How long did it take you to go live? value: "< 1 day" investment_level: text: What were your one-time costs for setting up the product? value: "$250,000-499,999" annual_cost: text: What is your annual recurring cost for using the product? value: "$250,000-499,999" contract_length: text: simplistic value: 1 Year discount: text: simplistic value: 21-30% users_purchased: text: How many users purchased the product in your company? value: 5,000-9,999 adoption: text: What % of your users have fully adopted the system? value: 11-30% roi: text: simplistic value: 24-36 months switched_from_other_product: text: simplistic value: Don't know direction: text: simplistic value: Don't know implementation_consultant: text: value: switched_reason: text: value: feature_ratings: - category: Category Name section: Section Name question_title: Feature Question Title question_text: Feature Question Text answer_value: 5.0 relationships: user: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040 type: users included: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040 type: users attributes: industry: Accounting name: alex smith first_name: alex last_name: smith image: company: title: company_segment: Mid-Market (51-1,000 emp.) links: self: http://data.example.com/api/v2/products/41eb24b6-81ac-4269-8ec9-000000000001/reviews?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&&filter%5Bcomment_answer_values_exclude%5D=&&&&&&&filter%5Bremoved%5D=&serializer=market_intelligence&fields%5Breviews%5D=url%2Ctitle%2Crating%2Cuser_updated_at%2Cuser_company_name%2Cproduct_name%2Ccompany_segment_name%2Cindustry_name%2Cprimary_region_name%2Ccountry_name%2Ccountry_code%2Cswitched_theme%2Ccategory_names%2Cswitched_from_products%2Canswers%2Cfeature_ratings&include=user next: prev: meta: aggregates: - filter_name: nps_score nested_filter_name: collection: - id: 5 text: 5 star count: 0 checked: false nested_boxes: [] - id: 4 text: 4 star count: 0 checked: false nested_boxes: [] - id: 3 text: 3 star count: 1 checked: false nested_boxes: [] - id: 2 text: 2 star count: 0 checked: false nested_boxes: [] - id: 1 text: 1 star count: 0 checked: false nested_boxes: [] expanded: true record_count: 1 products: - name: Product One domain: example.com slug: product-one product_type: Software star_rating: 2.5 avg_rating: '5.0' detail_description: Description review_count: 0 image_url: public_detail_url: g2crowd_url: http://www.lvh.me:63479/products/product-one/reviews write_review_url: http://www.lvh.me:63479/products/product-one/take_survey example: data: [] included: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000040 type: users attributes: industry: Accounting name: alex smith first_name: alex last_name: smith image: company: title: company_segment: Mid-Market (51-1,000 emp.) links: self: http://data.example.com/api/v2/products/41eb24b6-81ac-4269-8ec9-000000000001/reviews?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&&filter%5Bcomment_answer_values_exclude%5D=&&&&&&&filter%5Bremoved%5D=true&fields%5Breviews%5D=slug%2Cproduct_name%2Cremoved_at%2Csubmitted_at&include= next: prev: meta: aggregates: - filter_name: nps_score nested_filter_name: collection: - id: 5 text: 5 star count: 0 checked: false nested_boxes: [] - id: 4 text: 4 star count: 0 checked: false nested_boxes: [] - id: 3 text: 3 star count: 1 checked: false nested_boxes: [] - id: 2 text: 2 star count: 0 checked: false nested_boxes: [] - id: 1 text: 1 star count: 0 checked: false nested_boxes: [] expanded: true record_count: 0 products: - name: Product One domain: example.com slug: product-one product_type: Software star_rating: 2.5 avg_rating: '5.0' detail_description: Description review_count: 0 image_url: public_detail_url: g2crowd_url: http://www.lvh.me:63479/products/product-one/reviews write_review_url: http://www.lvh.me:63479/products/product-one/take_survey "/api/v2/products/{product_id}/snippets": get: summary: Lists reviews of given product operationId: getProductSnippets tags: - Snippets description: "**Requires `products.snippets.read` scope.**\n" security: - AccountAPIToken: [] G2OAuth: - snippets parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: product_id in: path description: Product UUID or Slug required: true schema: type: string - name: filter[nps_score] in: query schema: type: string - name: filter[company_segment] in: query schema: type: string - name: filter[industry] in: query schema: type: string - name: filter[category_ids] in: query schema: type: string - name: filter[role] in: query schema: type: string - name: filter[tags] in: query schema: type: string - name: fields[snippets] in: query explode: false description: Comma separated list of fields for snippets to include in response schema: type: array items: type: string enum: - content - review_url - stars_image_url - star_rating - submitted_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. user,review) schema: type: array items: type: string enum: - user - review responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Forbidden content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" examples: when user does not have access to the product: value: errors: - status: '403' title: You do not have access to that resource when user has product access but lacks the required license: value: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none example: errors: - status: '403' title: Your current plan does not provide access to this resource. To unlock it, explore your upgrade options. Talk to G2 at the link below links: type: - https://sell.g2.com/strategy-session-with-customers?utm_source=g2&utm_medium=product&utm_campaign=g2-mcp-demo-request&utm_content=none&utm_term=none '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: example: data: - id: 3b5b85f8-dbaa-4d27-88a9-000000000003 type: snippets attributes: content: Love it review_url: http://www.lvh.me:63479/survey_responses/test-product-328-review-218 stars_image_url: http://www.g2.test/assets/rorange-stars/stars-0.svg star_rating: 0.0 submitted_at: '2022-01-01T00:00:00.000-06:00' relationships: user: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000046 type: users review: data: id: 3b5b85f8-dbaa-4d27-88a9-000000000002 type: reviews included: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000046 type: users attributes: industry: Internet name: alex smith first_name: alex last_name: smith image: company: title: company_segment: " " - id: 3b5b85f8-dbaa-4d27-88a9-000000000002 type: reviews attributes: answers: {} attribution: text: Verified by G2 url: http://www.lvh.me:63479/products/test-product-328/reviews/test-product-328-review-218 logo: http://www.lvh.me:63479/assets/g2-logo-rorange.svg comments_present: false country_name: default_sort: 0.0 is_public: true official_response_present: false percent_complete: product_name: test product 328 published_at: regions: [] review_incentive: false slug: test-product-328-review-218 source: Organic review. This review was written entirely without invitation or incentive from G2, a seller, or an affiliate. star_rating: 0.0 submitted_at: '2022-01-01T00:00:00.000-06:00' title: url: http://www.lvh.me:63479/products/test-product-328/reviews/test-product-328-review-218 user_updated_at: '2022-01-01T00:00:00.000-06:00' verified_current_user: false relationships: user: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000020 type: users links: self: http://data.example.com/api/v2/products/3b5b85f8-dbaa-4d27-88a9-000000000001/snippets?filter%5Bnps_score%5D=&filter%5Bcompany_segment%5D=&filter%5Bindustry%5D=&filter%5Bcategory_ids%5D=&filter%5Brole%5D=&filter%5Btags%5D=&fields%5Bsnippets%5D=content,review_url,stars_image_url,star_rating,submitted_at&include=user,review next: prev: meta: aggregates: - filter_name: nps_score nested_filter_name: collection: - id: 5 text: 5 star count: 0 checked: false nested_boxes: [] - id: 4 text: 4 star count: 0 checked: false nested_boxes: [] - id: 3 text: 3 star count: 0 checked: false nested_boxes: [] - id: 2 text: 2 star count: 0 checked: false nested_boxes: [] - id: 1 text: 1 star count: 1 checked: false nested_boxes: [] expanded: true record_count: 1 products: - name: test product 328 domain: example.com slug: test-product-328 product_type: Software star_rating: 2.5 avg_rating: '5.0' detail_description: review_count: 0 image_url: public_detail_url: g2crowd_url: http://www.lvh.me:63479/products/test-product-328/reviews write_review_url: http://www.lvh.me:63479/products/test-product-328/take_survey schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: company_name: type: string nullable: true company_segment: type: string content: type: string industry: type: string nullable: true review_url: type: string stars_image_url: type: string star_rating: type: number submitted_at: type: string required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/users/me/products": get: summary: List all products owned by current account operationId: getCurrentUserProducts tags: - Products description: | **⚠️ G2 is currently restricting access to this endpoint.** This endpoint shows subscription-specific product information, of products that the current account has ownership of. security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: fields[products] in: query explode: false description: Comma separated list of fields for products to include in response schema: type: array items: type: string enum: - name - domain - slug - image_url - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. categories,subscribed_categories) schema: type: array items: type: string enum: - categories - subscribed_categories - name: filter[product_id][] in: query schema: type: array items: type: string required: false description: Filter by one or more product UUIDs example: - a1b2c3d4-e5f6-7890-abcd-ef1234567890 - name: filter[slug][] in: query schema: type: array items: type: string required: false description: Filter by one or more product slugs example: - salesforce-sales-cloud - hubspot-crm responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields and relationships content: application/vnd.api+json: example: data: - id: ee3d9e4d-55e2-427c-8f24-000000000004 type: products attributes: name: test product 340 domain: example.com slug: test-product-340 image_url: relationships: categories: data: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000008 type: product_categories subscribed_categories: data: - id: ee3d9e4d-55e2-427c-8f24-000000000003 type: product_categories included: - id: aaaaaaaa-bbbb-4ccc-8ddd-000000000008 type: product_categories attributes: name: test slug: test description: test updated_at: '2022-01-01T00:00:00.000-06:00' - id: ee3d9e4d-55e2-427c-8f24-000000000003 type: product_categories attributes: name: Subscribed Category slug: subscribed-category description: test updated_at: '2022-01-01T00:00:00.000-06:00' links: self: http://data.example.com/api/v2/users/me/products?fields%5Bproducts%5D=name,domain,slug,image_url&include=categories,subscribed_categories&& next: prev: schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: name: type: string domain: type: string slug: type: string image_url: type: string nullable: true relationships: type: object required: - id - type - attributes included: type: array items: type: object required: - id - type - attributes properties: id: type: string type: type: string attributes: type: object properties: uuid: type: string name: type: string slug: type: string description: type: string nullable: true updated_at: type: string links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/users/me/research_boards": get: summary: List research boards for current user operationId: listResearchBoards tags: - Research Boards security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: fields[research_boards] in: query explode: false description: Comma separated list of fields for research_boards to include in response schema: type: array items: type: string enum: - title - origin - budget - industry - employee_count - deadline_at - product_count - created_at - updated_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. products) schema: type: array items: type: string enum: - products - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: Success content: application/vnd.api+json: example: data: - id: 7258039b-f18f-4ba4-82b8-000000000002 type: research_boards attributes: title: Test Board origin: api budget: industry: employee_count: 0 deadline_at: product_count: 0 created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: [] links: self: http://data.example.com/api/v2/users/me/research_boards?fields%5Bresearch_boards%5D=title,origin,budget,industry,employee_count,deadline_at,product_count,created_at,updated_at&include=products next: prev: schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string enum: - research_boards attributes: type: object properties: title: type: string origin: type: string budget: type: string nullable: true industry: type: string nullable: true employee_count: type: integer deadline_at: type: string nullable: true product_count: type: integer created_at: type: string updated_at: type: string required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" post: summary: Create a research board operationId: createResearchBoard tags: - Research Boards security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: [] responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '201': description: Research board created content: application/vnd.api+json: example: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000025 type: research_boards attributes: title: New Board origin: api budget: industry: employee_count: 0 deadline_at: product_count: 0 created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: [] schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string enum: - research_boards attributes: type: object properties: title: type: string origin: type: string budget: type: string nullable: true industry: type: string nullable: true employee_count: type: integer deadline_at: type: string nullable: true product_count: type: integer created_at: type: string updated_at: type: string included: "$ref": "#/components/schemas/included" requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object required: - type - attributes properties: type: type: string enum: - research_boards attributes: type: object properties: title: type: string "/api/v2/users/me/research_boards/{uuid}": parameters: - name: uuid in: path description: Research board UUID required: true schema: type: string get: summary: Get a research board operationId: getResearchBoard tags: - Research Boards security: - AccountAPIToken: [] G2OAuth: - openid - profile responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: Success content: application/vnd.api+json: example: data: id: 7258039b-f18f-4ba4-82b8-000000000002 type: research_boards attributes: title: Test Board product_count: 0 created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: [] schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string enum: - research_boards attributes: type: object properties: title: type: string origin: type: string budget: type: string nullable: true industry: type: string nullable: true employee_count: type: integer deadline_at: type: string nullable: true product_count: type: integer created_at: type: string updated_at: type: string included: "$ref": "#/components/schemas/included" patch: summary: Update a research board operationId: updateResearchBoard tags: - Research Boards security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: [] responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: Research board updated content: application/vnd.api+json: example: data: id: 7258039b-f18f-4ba4-82b8-000000000002 type: research_boards attributes: title: Updated Board origin: api budget: industry: employee_count: 0 deadline_at: product_count: 0 created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: [] schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string enum: - research_boards attributes: type: object properties: title: type: string origin: type: string budget: type: string nullable: true industry: type: string nullable: true employee_count: type: integer deadline_at: type: string nullable: true product_count: type: integer created_at: type: string updated_at: type: string included: "$ref": "#/components/schemas/included" requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object required: - type - attributes properties: type: type: string enum: - research_boards attributes: type: object properties: title: type: string delete: summary: Delete a research board operationId: deleteResearchBoard tags: - Research Boards security: - AccountAPIToken: [] G2OAuth: - openid - profile responses: '204': description: '' "/api/v2/users/me/research_boards/{research_board_uuid}/products": parameters: - name: research_board_uuid in: path description: Research board UUID required: true schema: type: string get: summary: List products on a research board operationId: listResearchBoardProducts tags: - Research Boards security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: fields[products] in: query explode: false description: Comma separated list of fields for products to include in response schema: type: array items: type: string enum: - name - slug - image_url - star_rating - review_count responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: Success content: application/vnd.api+json: example: data: - id: 7258039b-f18f-4ba4-82b8-000000000003 type: products attributes: name: test product 357 slug: test-product-357 image_url: star_rating: '5.0' review_count: 0 schema: type: object properties: data: type: array items: type: object required: - id - type - attributes properties: id: type: string type: type: string enum: - products attributes: type: object properties: name: type: string slug: type: string image_url: type: string nullable: true star_rating: type: string nullable: true review_count: type: integer post: summary: Add a product to a research board operationId: addProductToResearchBoard tags: - Research Boards security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: [] responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '201': description: Product added content: application/vnd.api+json: example: data: id: 7258039b-f18f-4ba4-82b8-000000000003 type: products attributes: name: test product 359 slug: test-product-359 image_url: star_rating: '5.0' review_count: 0 schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string enum: - products attributes: type: object properties: name: type: string slug: type: string image_url: type: string nullable: true star_rating: type: string nullable: true review_count: type: integer included: "$ref": "#/components/schemas/included" requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object required: - id - type properties: id: type: string description: Product UUID or slug type: type: string enum: - products "/api/v2/users/me/research_boards/{research_board_uuid}/products/batch_create": parameters: - name: research_board_uuid in: path description: Research board UUID required: true schema: type: string post: summary: Add multiple products to a research board operationId: batchAddProductsToResearchBoard tags: - Research Boards security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: [] responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: Products added (may include per-product errors) content: application/vnd.api+json: example: data: - id: 7258039b-f18f-4ba4-82b8-000000000003 type: products attributes: id: 7258039b-f18f-4ba4-82b8-000000000003 name: test product 361 slug: test-product-361 image_url: star_rating: '5.0' review_count: 0 errors: [] schema: type: object properties: data: type: array items: type: object required: - id - type - attributes properties: id: type: string type: type: string enum: - products attributes: type: object properties: name: type: string slug: type: string image_url: type: string nullable: true star_rating: type: string nullable: true review_count: type: integer errors: type: array items: type: object properties: status: type: string title: type: string meta: type: object properties: product_id: type: string requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: array items: type: object required: - id - type properties: id: type: string description: Product UUID or slug type: type: string enum: - products maxItems: 20 "/api/v2/users/me/research_boards/{research_board_uuid}/products/batch_destroy": parameters: - name: research_board_uuid in: path description: Research board UUID required: true schema: type: string post: summary: Remove multiple products from a research board operationId: batchRemoveProductsFromResearchBoard tags: - Research Boards security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: [] responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: Products removed (may include per-product errors) content: application/vnd.api+json: example: data: removed: - 7258039b-f18f-4ba4-82b8-000000000003 errors: [] schema: type: object properties: data: type: object properties: removed: type: array items: type: string errors: type: array items: type: object properties: status: type: string title: type: string meta: type: object properties: product_id: type: string requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: array items: type: object required: - id - type properties: id: type: string description: Product UUID or slug type: type: string enum: - products maxItems: 20 "/api/v2/users/me/research_boards/{research_board_uuid}/products/{id}": parameters: - name: research_board_uuid in: path description: Research board UUID required: true schema: type: string - name: id in: path description: Product UUID or slug required: true schema: type: string delete: summary: Remove a product from a research board operationId: removeProductFromResearchBoard tags: - Research Boards security: - AccountAPIToken: [] G2OAuth: - openid - profile responses: '204': description: Product removed "/api/v2/users/me/products/{product_id}/review": get: summary: Show review for a product operationId: getCurrentUserProductReview tags: - Reviews description: | **⚠️ G2 is currently restricting access to this endpoint.** This endpoint retrieves the review for a specific product owned by the current user. security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: product_id in: path required: true schema: type: string - name: fields[reviews] in: query explode: false description: Comma separated list of fields for reviews to include in response schema: type: array items: type: string enum: - questions - published_at - submitted_at - user_updated_at - url - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. user,answers) schema: type: array items: type: string enum: - user - answers responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '403': description: Not Authorized content: application/vnd.api+json: example: errors: - status: '403' title: You do not have access to that resource schema: "$ref": "#/components/schemas/Errors" '404': description: Review not found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: Successful retrieval of review content: application/vnd.api+json: schema: type: object required: - data properties: data: type: object properties: questions: type: array items: type: object properties: id: type: string label: type: string placeholder: type: string nullable: true is_required: type: boolean question_type: type: string format: type: string nullable: true min: type: number nullable: true max: type: number nullable: true choices: type: array nullable: true items: type: object properties: key: type: string value: type: string url: type: string nullable: true submitted_at: type: string published_at: type: string user_updated_at: type: string included: type: array items: type: object properties: attributes: type: object examples: with standard request: value: data: id: f9a5c8e7-17e5-4f41-8792-000000000003 type: reviews attributes: questions: - id: 1604 label: How likely is it that you would recommend the product to a friend or colleague? placeholder: required: true question_type: nps format: integer min: 0 max: 10 choices: - id: 1605 label: Title for your review placeholder: required: true question_type: title format: text min: max: choices: - id: 1606 label: What do you like best? placeholder: required: question_type: love format: text min: max: choices: - id: 1607 label: What do you dislike? placeholder: required: question_type: hate format: text min: max: choices: - id: 1609 label: What benefits have you realized? placeholder: required: question_type: benefits format: text min: max: choices: - id: 999001 label: Are you willing to be a reference for this software product or service? placeholder: required: true question_type: reference_user_consent format: bool min: max: choices: - id: 999004 label: Allow my review to show my name and face in the G2 community. placeholder: required: question_type: withhold_name format: bool min: max: choices: published_at: submitted_at: '2022-01-01T00:00:00.000-06:00' user_updated_at: '2022-01-01T00:00:00.000-06:00' url: http://www.lvh.me:63479/products/test-product-368/reviews/test-product-368-review-223 relationships: user: data: id: f9a5c8e7-17e5-4f41-8792-000000000001 type: users answers: data: - id: '509' type: answers - id: '510' type: answers - id: '511' type: answers - id: '512' type: answers - id: '513' type: answers - id: '514' type: answers with includes: value: data: id: f9a5c8e7-17e5-4f41-8792-000000000003 type: reviews attributes: questions: - id: 1610 label: How likely is it that you would recommend the product to a friend or colleague? placeholder: required: true question_type: nps format: integer min: 0 max: 10 choices: - id: 1611 label: Title for your review placeholder: required: true question_type: title format: text min: max: choices: - id: 1612 label: What do you like best? placeholder: required: question_type: love format: text min: max: choices: - id: 1613 label: What do you dislike? placeholder: required: question_type: hate format: text min: max: choices: - id: 1615 label: What benefits have you realized? placeholder: required: question_type: benefits format: text min: max: choices: - id: 999001 label: Are you willing to be a reference for this software product or service? placeholder: required: true question_type: reference_user_consent format: bool min: max: choices: - id: 999004 label: Allow my review to show my name and face in the G2 community. placeholder: required: question_type: withhold_name format: bool min: max: choices: published_at: submitted_at: '2022-01-01T00:00:00.000-06:00' user_updated_at: '2022-01-01T00:00:00.000-06:00' url: http://www.lvh.me:63479/products/test-product-369/reviews/test-product-369-review-224 relationships: user: data: id: f9a5c8e7-17e5-4f41-8792-000000000001 type: users answers: data: - id: '515' type: answers - id: '516' type: answers - id: '517' type: answers - id: '518' type: answers - id: '519' type: answers - id: '520' type: answers included: - id: f9a5c8e7-17e5-4f41-8792-000000000001 type: users attributes: industry: Internet name: alex smith first_name: alex last_name: smith image: company: title: company_segment: " " - id: '515' type: answers attributes: question_id: 1610 value: 5.0 comment: multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' - id: '516' type: answers attributes: question_id: 1611 value: comment: Review title multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' - id: '517' type: answers attributes: question_id: 1612 value: comment: I like... multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' - id: '518' type: answers attributes: question_id: 1613 value: comment: I dislike... multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' - id: '519' type: answers attributes: question_id: 1614 value: comment: I recommend... multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' - id: '520' type: answers attributes: question_id: 1615 value: comment: I benefit... multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' example: data: id: f9a5c8e7-17e5-4f41-8792-000000000003 type: reviews attributes: questions: - id: 1610 label: How likely is it that you would recommend the product to a friend or colleague? placeholder: required: true question_type: nps format: integer min: 0 max: 10 choices: - id: 1611 label: Title for your review placeholder: required: true question_type: title format: text min: max: choices: - id: 1612 label: What do you like best? placeholder: required: question_type: love format: text min: max: choices: - id: 1613 label: What do you dislike? placeholder: required: question_type: hate format: text min: max: choices: - id: 1615 label: What benefits have you realized? placeholder: required: question_type: benefits format: text min: max: choices: - id: 999001 label: Are you willing to be a reference for this software product or service? placeholder: required: true question_type: reference_user_consent format: bool min: max: choices: - id: 999004 label: Allow my review to show my name and face in the G2 community. placeholder: required: question_type: withhold_name format: bool min: max: choices: published_at: submitted_at: '2022-01-01T00:00:00.000-06:00' user_updated_at: '2022-01-01T00:00:00.000-06:00' url: http://www.lvh.me:63479/products/test-product-369/reviews/test-product-369-review-224 relationships: user: data: id: f9a5c8e7-17e5-4f41-8792-000000000001 type: users answers: data: - id: '515' type: answers - id: '516' type: answers - id: '517' type: answers - id: '518' type: answers - id: '519' type: answers - id: '520' type: answers included: - id: f9a5c8e7-17e5-4f41-8792-000000000001 type: users attributes: industry: Internet name: alex smith first_name: alex last_name: smith image: company: title: company_segment: " " - id: '515' type: answers attributes: question_id: 1610 value: 5.0 comment: multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' - id: '516' type: answers attributes: question_id: 1611 value: comment: Review title multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' - id: '517' type: answers attributes: question_id: 1612 value: comment: I like... multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' - id: '518' type: answers attributes: question_id: 1613 value: comment: I dislike... multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' - id: '519' type: answers attributes: question_id: 1614 value: comment: I recommend... multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' - id: '520' type: answers attributes: question_id: 1615 value: comment: I benefit... multipart_data: {} created_at: '2022-01-01T00:00:00.000-06:00' updated_at: '2022-01-01T00:00:00.000-06:00' post: summary: Submit or update a review for a product operationId: submitCurrentUserProductReview tags: - Reviews description: | **⚠️ G2 is currently restricting access to this endpoint.** This endpoint allows the user to submit or update a review for a specific product. The review is based on predefined questions and answers.' security: - AccountAPIToken: [] G2OAuth: - openid - profile parameters: - name: product_id in: path required: true schema: type: string - name: fields[reviews] in: query explode: false description: Comma separated list of fields for reviews to include in response schema: type: array items: type: string enum: - questions - published_at - submitted_at - user_updated_at - url - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. user,answers) schema: type: array items: type: string enum: - user - answers responses: '201': description: Review successfully submitted content: application/vnd.api+json: schema: type: object required: - data properties: data: type: object properties: questions: type: array items: type: object properties: id: type: string label: type: string placeholder: type: string nullable: true is_required: type: boolean question_type: type: string format: type: string nullable: true min: type: number nullable: true max: type: number nullable: true choices: type: array nullable: true items: type: object properties: key: type: string value: type: string url: type: string nullable: true submitted_at: type: string published_at: type: string user_updated_at: type: string included: type: array items: type: object properties: attributes: type: object '400': description: Invalid review submission content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" '403': description: Not Authorized content: application/vnd.api+json: schema: "$ref": "#/components/schemas/Errors" requestBody: content: application/vnd.api+json: schema: type: object properties: terms_accepted: type: boolean default: true privacy_policy_accepted: type: boolean default: true answers: type: array items: type: object properties: question_id: type: string value: description: Answer value matching the format of the question oneOf: - type: string - type: number - type: array items: type: string required: - question_id - value landing_page_id: type: string source_type: type: string utm_param_id: type: string required: - answers required: true description: Review answers payload "/api/v2/user": get: summary: Show current user operationId: getCurrentUser tags: - Users description: Returns the currently authenticated user. security: - G2OAuth: - openid - profile parameters: - name: fields[users] in: query explode: false description: Comma separated list of fields for users to include in response schema: type: array items: type: string enum: - id - email - image_url responses: '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: Current user details content: application/vnd.api+json: example: data: id: aaaaaaaa-bbbb-4ccc-8ddd-000000000003 type: users attributes: email: buford@adams.info image_url: schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: id: type: string description: User UUID example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 nullable: false email: type: string description: User email address example: user@example.com nullable: false image_url: type: string description: User profile image URL format: uri nullable: true relationships: type: object included: "$ref": "#/components/schemas/included" "/api/v2/vendors": get: summary: List of vendors operationId: getVendors tags: - Vendors description: "**Requires `vendors.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: page[size] in: query required: false description: 'Number of records per page (default: 25, max: 250)' schema: type: integer minimum: 1 maximum: 250 default: 25 - name: page[after] in: query required: false description: Cursor for fetching the next page of results schema: type: string - name: page[before] in: query required: false description: Cursor for fetching the previous page of results schema: type: string - name: filter[updated_at_gt] description: Filter records updated after this date schema: type: string format: date-time in: query - name: filter[updated_at_lt] description: Filter records updated before this date schema: type: string format: date-time in: query - name: filter[created_at_gt] description: Filter records created after this date schema: type: string format: date-time in: query - name: filter[created_at_lt] description: Filter records created before this date schema: type: string format: date-time in: query - name: fields[vendors] in: query explode: false description: Comma separated list of fields for vendors to include in response schema: type: array items: type: string enum: - name - description - company_website - slug - public_products_count - updated_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. products) schema: type: array items: type: string enum: - products responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '200': description: List of vendors content: application/vnd.api+json: example: data: - id: 44b6a29c-e242-4a7e-802a-000000000003 type: vendors attributes: name: Vendor Three description: Description company_website: https://example.com slug: vendor-three public_products_count: 0 updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: [] - id: 44b6a29c-e242-4a7e-802a-000000000002 type: vendors attributes: name: Vendor Two description: Description company_website: https://example.com slug: vendor-two public_products_count: 0 updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: [] - id: 44b6a29c-e242-4a7e-802a-000000000001 type: vendors attributes: name: Vendor One description: Description company_website: https://example.com slug: vendor-one public_products_count: 0 updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: [] links: self: http://data.example.com/api/v2/vendors?filter%5Bupdated_at_gt%5D=&filter%5Bupdated_at_lt%5D=&filter%5Bcreated_at_gt%5D=&filter%5Bcreated_at_lt%5D=&fields%5Bvendors%5D=name,description,company_website,slug,public_products_count,updated_at&include=products next: prev: meta: record_count: 3 schema: type: object required: - data - links properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object properties: name: type: string description: Vendor name example: Salesforce nullable: false description: type: string description: Vendor description nullable: true company_website: type: string description: Vendor company website URL example: https://www.salesforce.com format: uri nullable: false slug: type: string description: URL-friendly identifier for the vendor example: salesforce nullable: false public_products_count: type: integer description: Number of public products the vendor has on G2 example: 5 nullable: false updated_at: type: string description: Last updated timestamp format: date-time nullable: false relationships: type: object required: - id - type - attributes included: "$ref": "#/components/schemas/included" links: "$ref": "#/components/schemas/cursor_pagination" "/api/v2/vendors/{id}": get: summary: Shows a single vendor operationId: getVendor tags: - Vendors description: "**Requires `vendors.read` scope.**\n" security: - AccountAPIToken: [] parameters: - name: fields[vendors] in: query explode: false description: Comma separated list of fields for vendors to include in response schema: type: array items: type: string enum: - name - description - company_website - slug - public_products_count - updated_at - name: include in: query explode: false description: Comma-separated list of relationships to include (e.g. products) schema: type: array items: type: string enum: - products - name: id in: path description: Vendor UUID or Slug required: true schema: type: string responses: '400': description: with invalid request parameters content: application/vnd.api+json: example: errors: - status: '400' title: 'Invalid parameter: "include" contains unknown items: "foo"' schema: "$ref": "#/components/schemas/Errors" '401': description: Unauthenticated content: application/vnd.api+json: example: errors: - status: '401' title: Bad Credentials schema: "$ref": "#/components/schemas/Errors" '404': description: With invalid id content: application/vnd.api+json: example: errors: - status: '404' title: Not Found schema: "$ref": "#/components/schemas/Errors" '200': description: With all fields included content: application/vnd.api+json: example: data: id: 44b6a29c-e242-4a7e-802a-000000000001 type: vendors attributes: name: Vendor One description: Description company_website: https://example.com slug: vendor-one public_products_count: 0 updated_at: '2022-01-01T00:00:00.000-06:00' relationships: products: data: [] schema: type: object required: - data properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: name: type: string description: Vendor name example: Salesforce nullable: false description: type: string description: Vendor description nullable: true company_website: type: string description: Vendor company website URL example: https://www.salesforce.com format: uri nullable: false slug: type: string description: URL-friendly identifier for the vendor example: salesforce nullable: false public_products_count: type: integer description: Number of public products the vendor has on G2 example: 5 nullable: false updated_at: type: string description: Last updated timestamp format: date-time nullable: false relationships: type: object included: "$ref": "#/components/schemas/included" servers: - url: https://{defaultHost} variables: defaultHost: default: data.g2.com components: parameters: {} schemas: cursor_pagination: type: object properties: next: type: string nullable: true prev: type: string nullable: true self: type: string nullable: true included: type: array items: type: object properties: id: type: string type: type: string attributes: type: object relationships: type: object Errors: type: object properties: errors: type: array items: type: object properties: status: type: string title: type: string links: type: object nullable: true source: type: object nullable: true http_error: type: object properties: status: type: string title: type: string links: type: object nullable: true source: type: object nullable: true securitySchemes: AccountAPIToken: type: http scheme: bearer G2OAuth: type: oauth2 flows: authorizationCode: tokenUrl: https://www.g2.com/oauth/token authorizationUrl: https://www.g2.com/oauth/authorize scopes: openid: OpenID Connect default scope profile: Profile information on current user data_subscriptions.read: Read Data Subscription records data_subscriptions.read_write: Modify Data Subscription records partner:partner-id.read: Access records created in Partner realm performance_analytics.read: Read Performance Analytics data