1 unstable release

0.0.1 Dec 2, 2024

#17 in #company

Download history 129/week @ 2024-11-29 21/week @ 2024-12-06

150 downloads per month

Apache-2.0

1.5MB
8K SLoC

Rust API client for gong-rs

Overview

The Gong API allows you to:

  1. Receive the following information from Gong:
    1. Your company's calls in Gong
    2. Your company's users in Gong
    3. Your company's user stats in Gong
    4. Your company's user settings in Gong
    5. Your company's libraries in Gong
  2. Upload new or update call recordings in Gong, in order to support cases where you have an internal system that records calls or obtains them from a third-party entity.
  3. Data Privacy: Delete users and all their associated elements.
  4. Upload CRM data into Gong.

Check here what's your base URL for all API calls.

Authentication

There are two ways to retrieve credentials to the Gong Public API:

  1. Retrieve Manually:

    In the Gong API Page (you must be a technical administrator in Gong), click \"Create\" to receive an Access Key and an Access Key Secret.

    Use the Basic Authorization HTTP header (as per RFC) to access the Public API as shown below:
    Authorization: Basic <token>

    To create the basic token, combine the Access Key and the Access Key Secret with colon (:) and then encode in Base64 as following:
    Base64(<accessKey> : <accessKeySecret>)

  2. Retrieve through OAuth

    To obtain the Bearer token, follow the steps described in the Gong OAuth Guide.

    After obtaining the token, use the Bearer Authorization HTTP header (as per RFC) to access the Public API as shown below:
    Authorization: Bearer <token>

Limits

By default Gong limits your company's access to the service to 3 API calls per second, and 10,000 API calls per day.

When the rate of API calls exceeds these limits an HTTP status code 429 is returned and a Retry-After header indicates how many seconds to wait before making a new request.

If required, contact help.gong.io to change these limits.

Cursors

Some API calls that return a list are limited in the amount of records they may return, so multiple API calls may be required to bring all records. Such an API call also returns a records field, which contains the number of records in the current page, the current page number and the total number of records.

In cases where the total number of records exceeds the number of records thus far retrieved, the records field will also contain a cursor field which can be used to access the next page of records. To retrieve the next page, repeat the API call with the cursor value as supplied by the previous API call. All other request inputs should remain the same.

Forward Compatibility

When coding a system to accept Gong data, take into account that Gong may, without prior warning, add fields to the JSON output. It is recommended to future proof your code so that it disregards all JSON fields you don't actually use.

Overview

This API client was generated by the OpenAPI Generator project. By using the openapi-spec from a remote server, you can easily generate an API client.

  • API version: V2
  • Package version: 0.0.1
  • Generator version: 7.10.0
  • Build package: org.openapitools.codegen.languages.RustClientCodegen

Installation

Put the package under your project folder in a directory named gong-rs and add the following to Cargo.toml under [dependencies]:

gong-rs = { path = "./gong-rs" }

Documentation for API Endpoints

All URIs are relative to https://127.0.0.1:8443

Class Method HTTP request Description
AuditingApi list_logs GET /v2/logs Retrieve logs data by type and time range (/v2/logs)
CrmApi delete_generic_crm_integration DELETE /v2/crm/integrations Delete a Generic CRM integration (/v2/crm/integrations)
CrmApi get_crm_objects GET /v2/crm/entities Get CRM objects (/v2/crm/entities)
CrmApi get_request_status GET /v2/crm/request-status Get Request Status (/v2/crm/request-status)
CrmApi list_crm_schema_fields GET /v2/crm/entity-schema List Schema Fields (/v2/crm/entity-schema)
CrmApi list_generic_crm_integration GET /v2/crm/integrations Get Generic CRM integration details (/v2/crm/integrations)
CrmApi register_generic_crm_integration PUT /v2/crm/integrations Register a Generic CRM integration (/v2/crm/integrations)
CrmApi upload_crm_schema_field POST /v2/crm/entity-schema Upload Object Schema (/v2/crm/entity-schema)
CallsApi add_call POST /v2/calls Add new call (/v2/calls)
CallsApi get_call GET /v2/calls/{id} Retrieve data for a specific call (/v2/calls/{id})
CallsApi get_call_transcripts POST /v2/calls/transcript Retrieve transcripts of calls (/v2/calls/transcript)
CallsApi list_calls GET /v2/calls Retrieve call data by date range (/v2/calls)
CallsApi list_calls_extensive POST /v2/calls/extensive Retrieve detailed call data by various filters (/v2/calls/extensive)
CallsApi list_crm_calls_manual_association GET /v2/calls/manual-crm-associations List all calls that were manually associated with CRM objects (/v2/calls/manual-crm-associations) in Beta Phase
CoachingApi list_users1 GET /v2/coaching List all coaching metrics (/v2/coaching)
DataPrivacyApi find_all_references_to_email_address GET /v2/data-privacy/data-for-email-address Retrieve all references to an email address. (/v2/data-privacy/data-for-email-address)
DataPrivacyApi find_all_references_to_phone_number GET /v2/data-privacy/data-for-phone-number Retrieve all references to a phone number. (/v2/data-privacy/data-for-phone-number)
DataPrivacyApi purge_email_address POST /v2/data-privacy/erase-data-for-email-address Delete the email address, and all associated elements (/v2/data-privacy/erase-data-for-email-address)
DataPrivacyApi purge_phone_number POST /v2/data-privacy/erase-data-for-phone-number Delete the phone number, and all associated elements (/v2/data-privacy/erase-data-for-phone-number)
DigitalInteractionsApi add_digital_interaction POST /v2/digital-interaction Post a Digital Interaction (/v2/digital-interaction)
EngageFlowsApi assign_prospects POST /v2/flows/prospects/assign Assign prospects (contacts or leads) to an Engage flow (/v2/flows/prospects/assign)
EngageFlowsApi get_flows_for_prospects POST /v2/flows/prospects List assigned flows for the given prospects (/v2/flows/prospects)
EngageFlowsApi list_flows GET /v2/flows List Gong Engage flows (/v2/flows)
EngagementLegacySeeDigitalInteractionsApi content_shared PUT /v2/customer-engagement/content/shared Report event of a content share (/v2/customer-engagement/content/shared)
EngagementLegacySeeDigitalInteractionsApi content_viewed PUT /v2/customer-engagement/content/viewed Report event of a content view (/v2/customer-engagement/content/viewed)
EngagementLegacySeeDigitalInteractionsApi custom_action PUT /v2/customer-engagement/action Report event of a custom action (/v2/customer-engagement/action)
IntegrationSettingsApi integration_settings POST /v2/integration-settings Integration Settings (/v2/integration-settings)
LibraryApi get_calls_in_specific_folder GET /v2/library/folder-content List of calls in a specific folder (/v2/library/folder-content)
LibraryApi get_library_structure GET /v2/library/folders Retrieve Library folders (/v2/library/folders)
MeetingsInBetaPhaseApi add_meeting POST /v2/meetings Create a New Gong Meeting (/v2/meetings)
MeetingsInBetaPhaseApi delete_meeting DELETE /v2/meetings/{meetingId} Delete a Gong Meeting (/v2/meetings)
MeetingsInBetaPhaseApi integration_status POST /v2/meetings/integration/status Validate Gong meeting Integration (/v2/meetings/integration/status)
MeetingsInBetaPhaseApi update_meeting PUT /v2/meetings/{meetingId} Update a Gong Meeting (/v2/meetings/{meetingId})
PermissionsApi add_users_access_to_calls PUT /v2/calls/users-access Give individual users access to calls (/v2/calls/users-access)
PermissionsApi create_permission_profile POST /v2/permission-profile Create permission profile (/v2/permission-profile)
PermissionsApi delete_users_access_to_calls DELETE /v2/calls/users-access Remove specific individual users access from calls (/v2/calls/users-access)
PermissionsApi get_permission_profile GET /v2/permission-profile Permission profile for a given profile Id (/v2/permission-profile)
PermissionsApi get_users_access_to_calls POST /v2/calls/users-access Retrieve users that have specific individual access to calls (/v2/calls/users-access)
PermissionsApi list_permission_profile GET /v2/all-permission-profiles List all company permission profiles for a given workspace (/v2/all-permission-profiles)
PermissionsApi list_permission_profile_users GET /v2/permission-profile/users List all users attached to a given permission profile (/v2/permission-profile/users)
PermissionsApi update_permission_profile PUT /v2/permission-profile Update permission profile (/v2/permission-profile)
SettingsApi list_scorecards GET /v2/settings/scorecards Retrieve scorecards details (/v2/settings/scorecards)
SettingsApi list_trackers GET /v2/settings/trackers Retrieve tracker details (/v2/settings/trackers)
SettingsApi list_workspaces GET /v2/workspaces List all company workspaces (/v2/workspaces)
StatsApi list_answered_scorecards POST /v2/stats/activity/scorecards Retrieve answered scorecards for applicable reviewed users or scorecards for a date range (/v2/stats/activity/scorecards)
StatsApi list_interaction_stats POST /v2/stats/interaction Retrieve interaction stats for applicable users by date (/v2/stats/interaction)
StatsApi list_multiple_users_aggregate_activity POST /v2/stats/activity/aggregate Retrieve aggregated activity for defined users by date (/v2/stats/activity/aggregate)
StatsApi list_multiple_users_aggregate_by_period POST /v2/stats/activity/aggregate-by-period Retrieve aggregated activity for defined users by a date range with grouping in time periods (/v2/stats/activity/aggregate-by-period)
StatsApi list_multiple_users_day_by_day_activity POST /v2/stats/activity/day-by-day Retrieve daily activity for applicable users for a date range (/v2/stats/activity/day-by-day)
UsersApi get_user GET /v2/users/{id} Retrieve user (/v2/users/{id})
UsersApi get_user_history GET /v2/users/{id}/settings-history Retrieve user settings history (/v2/users/{id}/settings-history)
UsersApi list_multiple_users POST /v2/users/extensive List users by filter (/v2/users/extensive)
UsersApi list_users GET /v2/users List all users (/v2/users)

Documentation For Models

To get access to the crate's generated documentation, use:

cargo doc --open

Author

mail@cedric-ziel.com

Dependencies

~5–15MB
~203K SLoC