1 unstable release
0.0.1 | Dec 2, 2024 |
---|
#17 in #company
150 downloads per month
1.5MB
8K
SLoC
Rust API client for gong-rs
Overview
The Gong API allows you to:
- Receive the following information from Gong:
- 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.
- Data Privacy: Delete users and all their associated elements.
- 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:
- 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>)
- 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
- Actor
- AggregateActivity
- AggregateActivityWithDates
- Answer
- AnsweredScorecard
- AnsweredScorecards
- AnsweredScorecardsFilter
- AssignFlowRequestV2
- AssignFlowResponse
- AssignedFlowFailure
- AssociationObject
- AsyncProcessingResponse
- BaseResponse
- CallAccessDetails
- CallAccessWithPermissionLevel
- CallBasicData
- CallCollaboration
- CallContent
- CallContextDto
- CallData
- CallHighlightsItem
- CallHighlightsSection
- CallInteraction
- CallKeyPoint
- CallOutcome
- CallOutlineItem
- CallOutlineSection
- CallParticipant
- CallReference
- CallTranscript
- CallTranscripts
- CallUploadContext
- CallUsersAccessDto
- Calls
- CallsAccessDetailsResponse
- CallsAccessGetDto
- CallsFilter
- CallsRequestFilterWithOwners
- CallsResponse
- CallsUsersAccessAddDto
- CallsUsersAccessDeleteDto
- CoachingAccessWithPermissionLevel
- CoachingMetrics
- CoachingMetricsData
- CoachingRepData
- CoachingUser
- CollaborationDto
- CommentDto
- Company
- CompanyBusinessContext
- CompanyUsersAggregateActivityResponse
- CompanyUsersIntercationStatsResponse
- Content
- ContentDto
- ContentSelector
- ContentSharedEvent
- ContentViewedEvent
- ContextField
- CrmPartyContextField
- CustomActionEvent
- CustomField
- CustomerData
- CustomerDataObject
- CustomerEngagement
- DailyActivityWithDates
- DealsAccessWithPermissionLevel
- DeleteMeetingRequest
- DigitalInteractionRequest
- EmailAddressReferences
- EmailMessage
- EmailsAccessWithPermissionLevel
- ErrorResponse
- EventAcceptedResponse
- ExposedFields
- ExternalCallObject
- ExternalCrmCallObject
- ExternalCrmPartyObject
- ExternalPartyObject
- ExternalSystem
- ExternalSystemObject
- FilterRequestCallsAccessGetDto
- FlowsResponse
- ForecastAccess
- ForecastEditSubmissions
- ForecastEditTargets
- ForecastPermissions
- GenericCrmIntegration
- GenericCrmRegistrationRequest
- GenericProperty
- GenericSchemaFieldRequest
- GetGenericCrmObjectsResponse
- InsightsAccessWithPermissionLevel
- IntegrationSettingsRequest
- IntegrationStatusRequest
- IntegrationStatusResponse
- IntegrationTypeSettings
- InteractionMeasuresDto
- InteractionStat
- InteractionStats
- InteractionStatsDto
- KeywordTracker
- LibraryCall
- LibraryFolder
- LibraryFolderAccess
- LibraryFolderListOfCallsResponse
- LibraryResponse
- LineErrorResponse
- ListGenericCrmIntegrationsResponse
- ListSelectedFieldsResponse
- Location
- LogEntry
- LogsResponse
- ManualAssociationResponse
- ManualAssociationsBasicData
- MediaDto
- Meeting
- MeetingInvitee
- Monologue
- MultipleUsersRequestWithCreationDates
- MultipleUsersWithDates
- NewCallAddingRequest
- NewCallAddingResponse
- NewCallRecordingResponse
- NewMeetingRequest
- NewMeetingResponse
- NumericContentDetails
- Occurrences
- Party
- PartyContextDto
- PartyContextField
- PartyUploadContext
- PermissionProfileDto
- PermissionProfileResponse
- PermissionProfileUsersResponse
- PermissionProfilesResponse
- Person
- PersonBusinessContext
- PhoneNumberReferences
- PointOfInterest
- PointsOfInterest
- ProspectsAssignedFlowsRequestV2
- ProspectsFlowsResponse
- PublicApiAssignedFlow
- PublicApiBaseRequestV2AnsweredScorecardsFilter
- PublicApiBaseRequestV2CallsFilter
- PublicApiBaseRequestV2MultipleUsersRequestWithCreationDates
- PublicApiBaseRequestV2MultipleUsersWithDates
- PublicApiBaseRequestWithDataV2CallsRequestFilterWithOwnersContentSelector
- PublicApiFlow
- Question
- QuestionOption
- Questions
- Records
- RegisterGenericCrmResponse
- RequestStatusResponse
- RequestWithTimePeriod
- SchemaUpdateResponse
- Scorecard
- Scorecards
- SearchObjectDetails
- Sentence
- Settings
- SettingsHistory
- Sharer
- Snippet
- SpeakersTimeline
- SpecificCall
- SpeechSegment
- SpokenLanguage
- StepContentDetails
- StructureDto
- TopicDto
- TrackerDto
- TrackerLanguageKeyword
- TrackerPhrases
- Trackers
- UpdateMeetingRequest
- UpdateMeetingResponse
- UsageAccessWithPermissionLevel
- User
- UserAccessDetails
- UserActivity
- UserAggregateByPeriodActivities
- UserDayByDayActivity
- UserIntegrationStatus
- UserMetadata
- UserSettingsHistory
- UserSimpleMetadata
- UserSpeaker
- UsersAggregateByPeriodActivity
- UsersDayByDayActivity
- UsersMetadata
- VideoInteractionDto
- WorkspaceMetadata
- WorkspacesMetadata
To get access to the crate's generated documentation, use:
cargo doc --open
Author
Dependencies
~5–15MB
~203K SLoC