G2 Developer Portal provides secure, self-serve access to API tokens, test environments, and documentation, enabling you to build and optimize with G2’s API.
Getting started
To begin using the Developer Portal, follow these steps to create an account and set up your organization:
- Navigate to G2 Developer Portal, then select Create an account.
- Verify your email.
- When prompted, enter your Organization Name and choose a unique Organization Slug.
Your organization slug becomes part of your Developer Portal URL (https://my.g2.com/developers/your-slug
). If your desired slug is already taken, you will receive an error.
G2 recommends choosing a slug that closely matches your organization name or domain.
Once your organization is set up, use your organization-specific Developer Portal URL to log in at any time.
OAuth apps
The OAuth Apps tab enables you to register apps that connect to G2 and authenticate on behalf of users or organizations using a secure authorization process.
When to use an OAuth app
Register an OAuth app if your integration needs secure, user-authorized access to G2 data.
Common reasons for registering an OAuth app include:
- Building a third-party or partner integration
- Creating internal tools that require scoped API access tied to user consent
- Managing authorization flows that require refresh tokens and long-lived access
Registering an OAuth app
To register an OAuth app:
-
Navigate to the OAuth Apps tab, then select New OAuth App.
-
In the New OAuth App panel, enter a Name, Privacy Policy URL, Terms of Service URL, and Redirect URL for your app. Optionally, upload an image.
Your Redirect URL must exactly match the one used in your app’s OAuth flow. Minor differences will cause authorization errors.
Privacy Policy and Terms of Service URLs must be valid public links. Placeholder or broken links may prevent your app from being approved.
-
Select the Confidential checkbox if your app can securely store client secrets (such as a server-side application). Leave it unchecked for public clients like mobile or browser-based apps.
-
In the Permissions panel, select the Read checkbox next to each endpoint your app should have access to. Endpoints without a selection will not be accessible using this app’s credentials.
Each permission controls which data the OAuth app can access through the G2 API. Review the API reference documentation for details about each endpoint.
- Select Save.
Registered apps appear in the OAuth Apps panel. Select Details to access the Client ID and Secret.
Once your app is registered, use your Client ID and Secret in your app to initiate the OAuth flow and request access tokens based on the scopes selected.
For security, keep your client secret private. Never expose it in public repositories or frontend code.
API Tokens
The API Tokens tab enables you to generate new tokens and manage the endpoint permissions associated with each token. API tokens are used to authenticate requests for G2 content.
For a full list of available endpoints, refer to G2's partner API reference documentation.
To create a new API token:
- Navigate to the API Tokens tab, then select Generate Token.
- Enter a Name and optionally enter a Description for the API token.
- In the Permissions panel, use the Access dropdown for each endpoint to select the access level. Endpoints without a selection won’t be accessible with the token.
- Select Generate Token. G2 adds your token to the API Tokens panel.
- Select the Eye to reveal the token.
API tokens expire one year after creation and must be regenerated for continued access.
Select Details to view the permissions assigned to the token.
To use your token with G2's syndication APIs, refer to the Get started with G2 review syndication and Get started with G2 taxonomy syndication documentation.
Testing your API token
After generating an API token, you can test it using G2's API reference documentation. This interactive documentation enables you to authenticate with your token and make API calls directly in the browser.
To test your token:
- In the API Tokens panel, select the Eye to reveal the token and then copy it.
- Navigate to the Developer Resources tab, then select Visit Documentation.
- Select Authorize, then paste your API token in the Value field and select Authorize.
- Select the endpoint, then select Try it out.
- Enter any required or optional parameters, then select Execute.
Sample response
{
"data": [
{
"id": "aaaaaaaa-bbbb-4ccc-8ddd-000000000028",
"type": "products",
"attributes": {
"detail_description": "Description",
"domain": "example.com",
"g2_url": "http://www.lvh.me:63479/products/product-one/reviews",
"image_url": null,
"name": "Product One",
"public_detail_url": "https://www.example.com",
"review_count": 0,
"slug": "product-one",
"star_rating": 2.5,
"write_review_url": "http://www.lvh.me:63479/products/product-one/take_survey"
},
"relationships": {
"categories": {
"data": [
{
"id": "aaaaaaaa-bbbb-4ccc-8ddd-000000000025",
"type": "product_categories"
}
]
},
"discussions": {
"data": [
{
"id": "aaaaaaaa-bbbb-4ccc-8ddd-000000000011",
"type": "discussions"
}
]
},
"vendor": {
"data": {
"id": "aaaaaaaa-bbbb-4ccc-8ddd-000000000021",
"type": "vendors"
}
}
}
}
],
"included": [
{
"id": "aaaaaaaa-bbbb-4ccc-8ddd-000000000025",
"type": "product_categories",
"attributes": {
"name": "test"
}
},
{
"id": "aaaaaaaa-bbbb-4ccc-8ddd-000000000011",
"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": "aaaaaaaa-bbbb-4ccc-8ddd-000000000028",
"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-000000000008",
"type": "users"
}
},
"comments": {
"data": []
}
}
},
{
"id": "aaaaaaaa-bbbb-4ccc-8ddd-000000000021",
"type": "vendors",