mencoro 1.0.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +41 -5
- data/docs/AccountApi.md +1 -1
- data/docs/AnalyticsApi.md +96 -86
- data/docs/AsyncJobResource.md +3 -1
- data/docs/AsyncJobResourceError.md +20 -0
- data/docs/BillingApi.md +1 -1
- data/docs/CitedSourceRow.md +32 -0
- data/docs/CitedSourcesResponse.md +20 -0
- data/docs/ClusterBreakdownRow.md +82 -0
- data/docs/ClustersApi.md +74 -0
- data/docs/CompetitorCoOccurrenceResponse.md +18 -0
- data/docs/CompetitorCoOccurrenceRow.md +36 -0
- data/docs/CompetitorShareOfVoice.md +20 -0
- data/docs/CreateInvitation201Response.md +4 -0
- data/docs/CreateInvitationRequest.md +3 -1
- data/docs/CreateInvitationRequestProjectAccess.md +20 -0
- data/docs/DiscoveryApi.md +1 -1
- data/docs/GetMeStats200ResponseProjects.md +1 -1
- data/docs/GetOrganizationOverview200ResponseAggregate.md +1 -1
- data/docs/GetOrganizationOverview200ResponseProjectsInner.md +8 -2
- data/docs/GetOrganizationStats200ResponseInvitations.md +1 -1
- data/docs/GetOrganizationStats200ResponseMembers.md +1 -1
- data/docs/GetOrganizationStats200ResponseProjects.md +1 -1
- data/docs/InvitationResource.md +5 -1
- data/docs/JobsApi.md +1 -1
- data/docs/KeywordListingResource.md +12 -10
- data/docs/KeywordListingResourceCarriedPositions.md +24 -0
- data/docs/KeywordListingResourceCarriedPositionsSerp.md +20 -0
- data/docs/ListProjects200Response.md +1 -1
- data/docs/MemberResource.md +5 -1
- data/docs/MembersApi.md +78 -0
- data/docs/MentionMatchResource.md +44 -0
- data/docs/MentionSampleResponse.md +46 -0
- data/docs/MentionTypeCounts.md +26 -0
- data/docs/OrganizationsApi.md +3 -3
- data/docs/PerCompetitorSentiment.md +30 -0
- data/docs/PerEngineSentiment.md +28 -0
- data/docs/PerEntityMetrics.md +32 -0
- data/docs/PositionDistributionBucket.md +20 -0
- data/docs/ProjectMentionMixResponse.md +22 -0
- data/docs/ProjectMentionSamplesResponse.md +20 -0
- data/docs/ProjectRankTrackingClusterBreakdown.md +20 -0
- data/docs/ProjectRankTrackingStats.md +96 -0
- data/docs/ProjectRankTrackingTimeSeries.md +20 -0
- data/docs/ProjectSentimentBreakdown.md +20 -0
- data/docs/ProjectedMonthlyChecksResource.md +2 -2
- data/docs/ProjectsApi.md +76 -2
- data/docs/SearchTrackedQueryMentionMatches200Response.md +20 -0
- data/docs/SearchTrackedQuerySerpMatches200Response.md +20 -0
- data/docs/SerpMatchResource.md +30 -0
- data/docs/SetMemberProjectAccessRequest.md +20 -0
- data/docs/SubscriptionResource.md +1 -1
- data/docs/TimeSeriesPoint.md +22 -0
- data/docs/TrackedQueriesApi.md +175 -3
- data/docs/TrackedQueryCountResource.md +1 -1
- data/docs/TrackedQueryMoverRow.md +58 -0
- data/docs/TrackedQueryMoversResponse.md +22 -0
- data/docs/TrackedQueryRankTrackingTimeSeries.md +20 -0
- data/docs/TrackedQueryUsageResource.md +1 -1
- data/lib/mencoro/api/account_api.rb +3 -3
- data/lib/mencoro/api/analytics_api.rb +103 -85
- data/lib/mencoro/api/billing_api.rb +3 -3
- data/lib/mencoro/api/captures_api.rb +2 -2
- data/lib/mencoro/api/clusters_api.rb +76 -1
- data/lib/mencoro/api/discovery_api.rb +3 -3
- data/lib/mencoro/api/invitations_api.rb +1 -1
- data/lib/mencoro/api/jobs_api.rb +3 -3
- data/lib/mencoro/api/members_api.rb +95 -1
- data/lib/mencoro/api/organization_operations_api.rb +1 -1
- data/lib/mencoro/api/organizations_api.rb +7 -7
- data/lib/mencoro/api/projects_api.rb +80 -5
- data/lib/mencoro/api/tracked_queries_api.rb +220 -8
- data/lib/mencoro/api_client.rb +2 -2
- data/lib/mencoro/api_error.rb +1 -1
- data/lib/mencoro/api_model_base.rb +1 -1
- data/lib/mencoro/configuration.rb +1 -1
- data/lib/mencoro/models/accepted_job_resource.rb +1 -1
- data/lib/mencoro/models/ai_response_report_resource.rb +1 -1
- data/lib/mencoro/models/ai_response_resource.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_clusters_inner.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_failed_inner.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_skipped_clusters_inner.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_successful_inner.rb +1 -1
- data/lib/mencoro/models/async_job_resource.rb +17 -7
- data/lib/mencoro/models/async_job_resource_error.rb +217 -0
- data/lib/mencoro/models/batch_change_tracked_query_check_frequency_request_data.rb +1 -1
- data/lib/mencoro/models/batch_change_tracked_query_passes_request_data.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_outcome.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_outcome_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_outcome_successful_inner.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_request_data.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_request_data.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource_successful_inner.rb +1 -1
- data/lib/mencoro/models/batch_force_check_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/batch_force_check_tracked_queries200_response_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_pause_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/batch_pause_tracked_queries200_response_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_pause_tracked_queries200_response_successful_inner.rb +1 -1
- data/lib/mencoro/models/batch_resume_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/batch_targets_request_data.rb +1 -1
- data/lib/mencoro/models/batch_write_outcome.rb +1 -1
- data/lib/mencoro/models/batch_write_outcome_failed_inner.rb +1 -1
- data/lib/mencoro/models/brand_profile_resource.rb +1 -1
- data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries_request.rb +1 -1
- data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries_request.rb +1 -1
- data/lib/mencoro/models/change_member_role_request.rb +1 -1
- data/lib/mencoro/models/change_tracked_query_check_frequency_request_data.rb +1 -1
- data/lib/mencoro/models/change_tracked_query_passes_request_data.rb +1 -1
- data/lib/mencoro/models/citation_resource.rb +1 -1
- data/lib/mencoro/models/cited_source_row.rb +298 -0
- data/lib/mencoro/models/cited_sources_response.rb +192 -0
- data/lib/mencoro/models/cluster_breakdown_row.rb +580 -0
- data/lib/mencoro/models/cluster_membership_request_data.rb +1 -1
- data/lib/mencoro/models/competitor_co_occurrence_response.rb +166 -0
- data/lib/mencoro/models/competitor_co_occurrence_row.rb +318 -0
- data/lib/mencoro/models/competitor_resource.rb +1 -1
- data/lib/mencoro/models/competitor_share_of_voice.rb +174 -0
- data/lib/mencoro/models/create_competitor_request.rb +1 -1
- data/lib/mencoro/models/create_invitation200_response.rb +1 -1
- data/lib/mencoro/models/create_invitation201_response.rb +60 -2
- data/lib/mencoro/models/create_invitation_request.rb +15 -5
- data/lib/mencoro/models/create_invitation_request_project_access.rb +201 -0
- data/lib/mencoro/models/create_organization201_response.rb +1 -1
- data/lib/mencoro/models/create_organization_request.rb +1 -1
- data/lib/mencoro/models/create_project_request.rb +1 -1
- data/lib/mencoro/models/create_project_request_competitors_inner.rb +1 -1
- data/lib/mencoro/models/create_query_cluster409_response.rb +1 -1
- data/lib/mencoro/models/create_query_cluster_request.rb +1 -1
- data/lib/mencoro/models/delete_query_cluster200_response.rb +1 -1
- data/lib/mencoro/models/entitlements_resource.rb +1 -1
- data/lib/mencoro/models/get_available_filters200_response.rb +1 -1
- data/lib/mencoro/models/get_available_filters200_response_clusters_inner.rb +1 -1
- data/lib/mencoro/models/get_me_stats200_response.rb +1 -1
- data/lib/mencoro/models/get_me_stats200_response_organizations.rb +1 -1
- data/lib/mencoro/models/get_me_stats200_response_projects.rb +2 -2
- data/lib/mencoro/models/get_membership_stats200_response.rb +1 -1
- data/lib/mencoro/models/get_mention_samples400_response.rb +1 -1
- data/lib/mencoro/models/get_mention_samples400_response_details_value_inner.rb +1 -1
- data/lib/mencoro/models/get_metric_glossary200_response.rb +1 -1
- data/lib/mencoro/models/get_metric_glossary200_response_metrics_inner.rb +1 -1
- data/lib/mencoro/models/get_organization_overview200_response.rb +1 -1
- data/lib/mencoro/models/get_organization_overview200_response_aggregate.rb +2 -2
- data/lib/mencoro/models/get_organization_overview200_response_projects_inner.rb +34 -3
- data/lib/mencoro/models/get_organization_stats200_response.rb +1 -1
- data/lib/mencoro/models/get_organization_stats200_response_invitations.rb +4 -7
- data/lib/mencoro/models/get_organization_stats200_response_members.rb +4 -7
- data/lib/mencoro/models/get_organization_stats200_response_projects.rb +2 -2
- data/lib/mencoro/models/get_share_of_voice_formula200_response.rb +1 -1
- data/lib/mencoro/models/get_tracking_coverage200_response.rb +1 -1
- data/lib/mencoro/models/get_tracking_coverage200_response_sample_inner.rb +1 -1
- data/lib/mencoro/models/invitation_resource.rb +64 -6
- data/lib/mencoro/models/keyword_listing_resource.rb +40 -14
- data/lib/mencoro/models/keyword_listing_resource_carried_positions.rb +187 -0
- data/lib/mencoro/models/keyword_listing_resource_carried_positions_serp.rb +192 -0
- data/lib/mencoro/models/keyword_listing_resource_mention_type_counts.rb +1 -1
- data/lib/mencoro/models/list_ai_responses200_response.rb +1 -1
- data/lib/mencoro/models/list_competitors200_response.rb +1 -1
- data/lib/mencoro/models/list_invitations200_response.rb +1 -1
- data/lib/mencoro/models/list_keyword_listings200_response.rb +1 -1
- data/lib/mencoro/models/list_members200_response.rb +1 -1
- data/lib/mencoro/models/list_organizations200_response.rb +1 -1
- data/lib/mencoro/models/list_projects200_response.rb +2 -2
- data/lib/mencoro/models/list_query_clusters200_response.rb +1 -1
- data/lib/mencoro/models/list_search_snapshots200_response.rb +1 -1
- data/lib/mencoro/models/list_shopping_snapshots200_response.rb +1 -1
- data/lib/mencoro/models/me_resource.rb +1 -1
- data/lib/mencoro/models/member_resource.rb +63 -5
- data/lib/mencoro/models/mention_match_resource.rb +432 -0
- data/lib/mencoro/models/mention_sample_response.rb +450 -0
- data/lib/mencoro/models/mention_type_counts.rb +268 -0
- data/lib/mencoro/models/operation_effect.rb +1 -1
- data/lib/mencoro/models/organization_resource.rb +1 -1
- data/lib/mencoro/models/per_competitor_sentiment.rb +304 -0
- data/lib/mencoro/models/per_engine_sentiment.rb +278 -0
- data/lib/mencoro/models/per_entity_metrics.rb +218 -0
- data/lib/mencoro/models/position_distribution_bucket.rb +190 -0
- data/lib/mencoro/models/preview_organization_operation200_response.rb +1 -1
- data/lib/mencoro/models/preview_organization_operation200_response_organization.rb +1 -1
- data/lib/mencoro/models/preview_organization_operation_request.rb +3 -3
- data/lib/mencoro/models/project_detail_resource.rb +1 -1
- data/lib/mencoro/models/project_detail_resource_competitors_inner.rb +1 -1
- data/lib/mencoro/models/project_mention_mix_response.rb +222 -0
- data/lib/mencoro/models/project_mention_samples_response.rb +192 -0
- data/lib/mencoro/models/project_rank_tracking_cluster_breakdown.rb +176 -0
- data/lib/mencoro/models/project_rank_tracking_stats.rb +718 -0
- data/lib/mencoro/models/project_rank_tracking_time_series.rb +176 -0
- data/lib/mencoro/models/project_resource.rb +1 -1
- data/lib/mencoro/models/project_sentiment_breakdown.rb +194 -0
- data/lib/mencoro/models/projected_monthly_checks_resource.rb +3 -3
- data/lib/mencoro/models/query_cluster_resource.rb +1 -1
- data/lib/mencoro/models/report_ai_response_request.rb +1 -1
- data/lib/mencoro/models/search_result_resource.rb +1 -1
- data/lib/mencoro/models/search_snapshot_resource.rb +1 -1
- data/lib/mencoro/models/search_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/search_tracked_query_mention_matches200_response.rb +158 -0
- data/lib/mencoro/models/search_tracked_query_serp_matches200_response.rb +158 -0
- data/lib/mencoro/models/serp_match_resource.rb +314 -0
- data/lib/mencoro/models/set_member_project_access_request.rb +200 -0
- data/lib/mencoro/models/shopping_offer_resource.rb +1 -1
- data/lib/mencoro/models/shopping_snapshot_resource.rb +1 -1
- data/lib/mencoro/models/start_brand_discovery_job_request.rb +1 -1
- data/lib/mencoro/models/start_brand_name_suggestion_job_request.rb +1 -1
- data/lib/mencoro/models/start_clustering_job_request_data.rb +1 -1
- data/lib/mencoro/models/start_keyword_discovery_job_request.rb +1 -1
- data/lib/mencoro/models/start_prompt_discovery_job_request.rb +1 -1
- data/lib/mencoro/models/submitted_checks_resource.rb +1 -1
- data/lib/mencoro/models/subscription_resource.rb +3 -3
- data/lib/mencoro/models/time_series_point.rb +218 -0
- data/lib/mencoro/models/tracked_query_count_resource.rb +3 -3
- data/lib/mencoro/models/tracked_query_detail_resource.rb +3 -3
- data/lib/mencoro/models/tracked_query_mover_row.rb +492 -0
- data/lib/mencoro/models/tracked_query_movers_response.rb +202 -0
- data/lib/mencoro/models/tracked_query_rank_tracking_time_series.rb +176 -0
- data/lib/mencoro/models/tracked_query_resource.rb +3 -3
- data/lib/mencoro/models/tracked_query_usage_resource.rb +2 -2
- data/lib/mencoro/models/update_organization_request.rb +1 -1
- data/lib/mencoro/models/update_project_brand_profile_request.rb +1 -1
- data/lib/mencoro/models/update_project_request.rb +1 -1
- data/lib/mencoro/version.rb +2 -2
- data/lib/mencoro.rb +32 -1
- data/mencoro.gemspec +2 -2
- data/spec/models/async_job_resource_error_spec.rb +46 -0
- data/spec/models/cited_source_row_spec.rb +78 -0
- data/spec/models/cited_sources_response_spec.rb +42 -0
- data/spec/models/cluster_breakdown_row_spec.rb +228 -0
- data/spec/models/competitor_co_occurrence_response_spec.rb +36 -0
- data/spec/models/competitor_co_occurrence_row_spec.rb +90 -0
- data/spec/models/competitor_share_of_voice_spec.rb +42 -0
- data/spec/models/create_invitation_request_project_access_spec.rb +46 -0
- data/spec/models/keyword_listing_resource_carried_positions_serp_spec.rb +42 -0
- data/spec/models/keyword_listing_resource_carried_positions_spec.rb +54 -0
- data/spec/models/mention_match_resource_spec.rb +114 -0
- data/spec/models/mention_sample_response_spec.rb +114 -0
- data/spec/models/mention_type_counts_spec.rb +60 -0
- data/spec/models/per_competitor_sentiment_spec.rb +72 -0
- data/spec/models/per_engine_sentiment_spec.rb +66 -0
- data/spec/models/per_entity_metrics_spec.rb +78 -0
- data/spec/models/position_distribution_bucket_spec.rb +42 -0
- data/spec/models/project_mention_mix_response_spec.rb +48 -0
- data/spec/models/project_mention_samples_response_spec.rb +42 -0
- data/spec/models/project_rank_tracking_cluster_breakdown_spec.rb +42 -0
- data/spec/models/project_rank_tracking_stats_spec.rb +270 -0
- data/spec/models/project_rank_tracking_time_series_spec.rb +42 -0
- data/spec/models/project_sentiment_breakdown_spec.rb +42 -0
- data/spec/models/search_tracked_query_mention_matches200_response_spec.rb +42 -0
- data/spec/models/search_tracked_query_serp_matches200_response_spec.rb +42 -0
- data/spec/models/serp_match_resource_spec.rb +72 -0
- data/spec/models/set_member_project_access_request_spec.rb +46 -0
- data/spec/models/time_series_point_spec.rb +48 -0
- data/spec/models/tracked_query_mover_row_spec.rb +156 -0
- data/spec/models/tracked_query_movers_response_spec.rb +48 -0
- data/spec/models/tracked_query_rank_tracking_time_series_spec.rb +42 -0
- data/spec/spec_helper.rb +1 -1
- metadata +235 -108
data/docs/ProjectsApi.md
CHANGED
|
@@ -9,6 +9,7 @@ All URIs are relative to *https://api.mencoro.com*
|
|
|
9
9
|
| [**create_project**](ProjectsApi.md#create_project) | **POST** /api/v1/organizations/{organizationId}/projects | Create a project and the brand monitoring profile its checks run against |
|
|
10
10
|
| [**delete_competitor**](ProjectsApi.md#delete_competitor) | **DELETE** /api/v1/organizations/{organizationId}/projects/{projectId}/competitors/{competitorId} | Remove a competitor from a project |
|
|
11
11
|
| [**get_brand_profile**](ProjectsApi.md#get_brand_profile) | **GET** /api/v1/organizations/{organizationId}/projects/{projectId}/brand-profile | Get a project's brand monitoring profile |
|
|
12
|
+
| [**get_competitor**](ProjectsApi.md#get_competitor) | **GET** /api/v1/organizations/{organizationId}/projects/{projectId}/competitors/{competitorId} | Get one of a project's competitors |
|
|
12
13
|
| [**get_project**](ProjectsApi.md#get_project) | **GET** /api/v1/organizations/{organizationId}/projects/{projectId} | Get a project and its brand monitoring configuration |
|
|
13
14
|
| [**list_competitors**](ProjectsApi.md#list_competitors) | **GET** /api/v1/organizations/{organizationId}/projects/{projectId}/competitors | List the competitors tracked by a project |
|
|
14
15
|
| [**list_projects**](ProjectsApi.md#list_projects) | **GET** /api/v1/organizations/{organizationId}/projects | List an organization's projects |
|
|
@@ -173,7 +174,7 @@ end
|
|
|
173
174
|
|
|
174
175
|
Create a project and the brand monitoring profile its checks run against
|
|
175
176
|
|
|
176
|
-
Minimum role: manager, in an active organization. Requires the \"write\" capability. Creates the project, the brand monitoring profile holding the domains and brand names to watch, and one competitor per entry of `competitors`, in a single call. The project id is minted by the server; a caller-supplied id is rejected as an unknown field. What is NOT done: no tracked queries are created, no check is run and no scraping is scheduled — a new project has nothing collected against it until tracked queries are added. Each website entry may be a full URL or a bare domain: a URL is reduced to its host with any leading \"www.\" removed, so \"https://www.acme.com/pricing\" is stored as \"acme.com\". Duplicate domains and duplicate brand names are collapsed, exactly as the stored value objects do. Send an Idempotency-Key: a retry with the same key and the same body returns this same project instead of creating a second one.
|
|
177
|
+
Minimum role: manager, in an active organization, with access to every project of it: a member restricted to selected projects is refused as a role below the minimum is. Requires the \"write\" capability. Creates the project, the brand monitoring profile holding the domains and brand names to watch, and one competitor per entry of `competitors`, in a single call. The project id is minted by the server; a caller-supplied id is rejected as an unknown field. What is NOT done: no tracked queries are created, no check is run and no scraping is scheduled — a new project has nothing collected against it until tracked queries are added. Each website entry may be a full URL or a bare domain: a URL is reduced to its host with any leading \"www.\" removed, so \"https://www.acme.com/pricing\" is stored as \"acme.com\". Duplicate domains and duplicate brand names are collapsed, exactly as the stored value objects do. Send an Idempotency-Key: a retry with the same key and the same body returns this same project instead of creating a second one.
|
|
177
178
|
|
|
178
179
|
### Examples
|
|
179
180
|
|
|
@@ -386,6 +387,79 @@ end
|
|
|
386
387
|
- **Accept**: application/json
|
|
387
388
|
|
|
388
389
|
|
|
390
|
+
## get_competitor
|
|
391
|
+
|
|
392
|
+
> <CompetitorResource> get_competitor(organization_id, project_id, competitor_id)
|
|
393
|
+
|
|
394
|
+
Get one of a project's competitors
|
|
395
|
+
|
|
396
|
+
Minimum role: viewer. Returns a single competitor of the project, the same projection the competitor listing returns for each of its rows. A competitor belonging to another project answers 404, the same answer an unknown id and a malformed one get, so the API never confirms that a competitor the caller cannot reach exists. A project whose brand monitoring profile has not been created yet has no competitors at all and answers 404 for any competitor id.
|
|
397
|
+
|
|
398
|
+
### Examples
|
|
399
|
+
|
|
400
|
+
```ruby
|
|
401
|
+
require 'time'
|
|
402
|
+
require 'mencoro'
|
|
403
|
+
# setup authorization
|
|
404
|
+
Mencoro.configure do |config|
|
|
405
|
+
# Configure Bearer authorization: ApiKey
|
|
406
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
407
|
+
end
|
|
408
|
+
|
|
409
|
+
api_instance = Mencoro::ProjectsApi.new
|
|
410
|
+
organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
|
|
411
|
+
project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Must belong to the organization in the path.
|
|
412
|
+
competitor_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Must belong to the project in the path.
|
|
413
|
+
|
|
414
|
+
begin
|
|
415
|
+
# Get one of a project's competitors
|
|
416
|
+
result = api_instance.get_competitor(organization_id, project_id, competitor_id)
|
|
417
|
+
p result
|
|
418
|
+
rescue Mencoro::ApiError => e
|
|
419
|
+
puts "Error when calling ProjectsApi->get_competitor: #{e}"
|
|
420
|
+
end
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
#### Using the get_competitor_with_http_info variant
|
|
424
|
+
|
|
425
|
+
This returns an Array which contains the response data, status code and headers.
|
|
426
|
+
|
|
427
|
+
> <Array(<CompetitorResource>, Integer, Hash)> get_competitor_with_http_info(organization_id, project_id, competitor_id)
|
|
428
|
+
|
|
429
|
+
```ruby
|
|
430
|
+
begin
|
|
431
|
+
# Get one of a project's competitors
|
|
432
|
+
data, status_code, headers = api_instance.get_competitor_with_http_info(organization_id, project_id, competitor_id)
|
|
433
|
+
p status_code # => 2xx
|
|
434
|
+
p headers # => { ... }
|
|
435
|
+
p data # => <CompetitorResource>
|
|
436
|
+
rescue Mencoro::ApiError => e
|
|
437
|
+
puts "Error when calling ProjectsApi->get_competitor_with_http_info: #{e}"
|
|
438
|
+
end
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
### Parameters
|
|
442
|
+
|
|
443
|
+
| Name | Type | Description | Notes |
|
|
444
|
+
| ---- | ---- | ----------- | ----- |
|
|
445
|
+
| **organization_id** | **String** | | |
|
|
446
|
+
| **project_id** | **String** | Must belong to the organization in the path. | |
|
|
447
|
+
| **competitor_id** | **String** | Must belong to the project in the path. | |
|
|
448
|
+
|
|
449
|
+
### Return type
|
|
450
|
+
|
|
451
|
+
[**CompetitorResource**](CompetitorResource.md)
|
|
452
|
+
|
|
453
|
+
### Authorization
|
|
454
|
+
|
|
455
|
+
[ApiKey](../README.md#ApiKey)
|
|
456
|
+
|
|
457
|
+
### HTTP request headers
|
|
458
|
+
|
|
459
|
+
- **Content-Type**: Not defined
|
|
460
|
+
- **Accept**: application/json
|
|
461
|
+
|
|
462
|
+
|
|
389
463
|
## get_project
|
|
390
464
|
|
|
391
465
|
> <ProjectDetailResource> get_project(organization_id, project_id)
|
|
@@ -542,7 +616,7 @@ end
|
|
|
542
616
|
|
|
543
617
|
List an organization's projects
|
|
544
618
|
|
|
545
|
-
Minimum role: viewer. Metrics come from the same read model the application uses, so the figures match what the product shows. A null metric means \"not known yet\", never zero.Send `Accept: text/csv` to receive the same page as a CSV download instead of JSON: same filters, same authorization, same page window and the same maximum of 100 rows — it is this page in another format, not a bulk export, so a whole collection is still read by paging. The CSV carries no `total`, because a table whose every row is a record has nowhere to put one; read it from the JSON representation of the same request. A list-valued field is joined into one cell with `; ` as a display projection — parse the JSON if you need the structure. Cells beginning with `=`, `+`, `-` or `@` are prefixed with an apostrophe so a spreadsheet treats them as text rather than running them as formulas.
|
|
619
|
+
Minimum role: viewer. Metrics come from the same read model the application uses, so the figures match what the product shows. A null metric means \"not known yet\", never zero. For a member restricted to selected projects, the list and `total` cover those projects only. Send `Accept: text/csv` to receive the same page as a CSV download instead of JSON: same filters, same authorization, same page window and the same maximum of 100 rows — it is this page in another format, not a bulk export, so a whole collection is still read by paging. The CSV carries no `total`, because a table whose every row is a record has nowhere to put one; read it from the JSON representation of the same request. A list-valued field is joined into one cell with `; ` as a display projection — parse the JSON if you need the structure. Cells beginning with `=`, `+`, `-` or `@` are prefixed with an apostrophe so a spreadsheet treats them as text rather than running them as formulas.
|
|
546
620
|
|
|
547
621
|
### Examples
|
|
548
622
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Mencoro::SearchTrackedQueryMentionMatches200Response
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **items** | [**Array<MentionMatchResource>**](MentionMatchResource.md) | | [optional] |
|
|
8
|
+
| **total** | **Integer** | | [optional] |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'mencoro'
|
|
14
|
+
|
|
15
|
+
instance = Mencoro::SearchTrackedQueryMentionMatches200Response.new(
|
|
16
|
+
items: null,
|
|
17
|
+
total: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Mencoro::SearchTrackedQuerySerpMatches200Response
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **items** | [**Array<SerpMatchResource>**](SerpMatchResource.md) | | [optional] |
|
|
8
|
+
| **total** | **Integer** | | [optional] |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'mencoro'
|
|
14
|
+
|
|
15
|
+
instance = Mencoro::SearchTrackedQuerySerpMatches200Response.new(
|
|
16
|
+
items: null,
|
|
17
|
+
total: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Mencoro::SerpMatchResource
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **tracked_query_id** | **String** | | |
|
|
8
|
+
| **project_id** | **String** | | |
|
|
9
|
+
| **engine** | **String** | | |
|
|
10
|
+
| **search_page_id** | **String** | | |
|
|
11
|
+
| **competitor_id** | **String** | | [optional] |
|
|
12
|
+
| **position** | **Integer** | | |
|
|
13
|
+
| **detected_at** | **Time** | | |
|
|
14
|
+
|
|
15
|
+
## Example
|
|
16
|
+
|
|
17
|
+
```ruby
|
|
18
|
+
require 'mencoro'
|
|
19
|
+
|
|
20
|
+
instance = Mencoro::SerpMatchResource.new(
|
|
21
|
+
tracked_query_id: null,
|
|
22
|
+
project_id: null,
|
|
23
|
+
engine: null,
|
|
24
|
+
search_page_id: null,
|
|
25
|
+
competitor_id: null,
|
|
26
|
+
position: null,
|
|
27
|
+
detected_at: null
|
|
28
|
+
)
|
|
29
|
+
```
|
|
30
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Mencoro::SetMemberProjectAccessRequest
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **mode** | **String** | | |
|
|
8
|
+
| **project_ids** | **Array<String>** | The projects of the organization a selected access reaches: at least one and at most 500. Omit it, or send an empty list, for all. | [optional] |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'mencoro'
|
|
14
|
+
|
|
15
|
+
instance = Mencoro::SetMemberProjectAccessRequest.new(
|
|
16
|
+
mode: null,
|
|
17
|
+
project_ids: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
| **cancelled_at** | **Time** | When the subscription was terminally cancelled. Null while it has not been. | [optional] |
|
|
16
16
|
| **scheduled_to_cancel_at** | **Time** | When a scheduled cancellation takes effect, while the subscription is still running. Null when none is scheduled. | [optional] |
|
|
17
17
|
| **grace_period_ends_at** | **Time** | When paid access ends after a cancellation. Null when the subscription is not cancelled. | [optional] |
|
|
18
|
-
| **deactivation_reason** | **String** | Why the subscription is currently inactive. Null for an active subscription, and meaningless once \"cancelledAt\" is set - the cancellation supersedes it. | [optional] |
|
|
18
|
+
| **deactivation_reason** | **String** | Why the subscription is currently inactive. Null for an active subscription and for a member restricted to selected projects, and meaningless once \"cancelledAt\" is set - the cancellation supersedes it. | [optional] |
|
|
19
19
|
| **is_entitled** | **Boolean** | Whether the organization may use paid features right now: active, or cancelled but still inside its paid grace window. | |
|
|
20
20
|
|
|
21
21
|
## Example
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Mencoro::TimeSeriesPoint
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **raw_date** | **String** | | |
|
|
8
|
+
| **brand** | [**PerEntityMetrics**](PerEntityMetrics.md) | | |
|
|
9
|
+
| **competitors** | [**Hash<String, PerEntityMetrics>**](PerEntityMetrics.md) | | |
|
|
10
|
+
|
|
11
|
+
## Example
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
require 'mencoro'
|
|
15
|
+
|
|
16
|
+
instance = Mencoro::TimeSeriesPoint.new(
|
|
17
|
+
raw_date: null,
|
|
18
|
+
brand: null,
|
|
19
|
+
competitors: null
|
|
20
|
+
)
|
|
21
|
+
```
|
|
22
|
+
|
data/docs/TrackedQueriesApi.md
CHANGED
|
@@ -24,6 +24,8 @@ All URIs are relative to *https://api.mencoro.com*
|
|
|
24
24
|
| [**report_ai_response**](TrackedQueriesApi.md#report_ai_response) | **POST** /api/v1/organizations/{organizationId}/projects/{projectId}/tracked-queries/{trackedQueryId}/responses/{aiResponseId}/report | Report a problem with a captured AI answer |
|
|
25
25
|
| [**resume_tracked_query**](TrackedQueriesApi.md#resume_tracked_query) | **PUT** /api/v1/organizations/{organizationId}/projects/{projectId}/tracked-queries/{trackedQueryId}/resume | Resume a tracked query |
|
|
26
26
|
| [**search_tracked_queries**](TrackedQueriesApi.md#search_tracked_queries) | **GET** /api/v1/organizations/{organizationId}/projects/{projectId}/tracked-queries | Search a project's tracked queries |
|
|
27
|
+
| [**search_tracked_query_mention_matches**](TrackedQueriesApi.md#search_tracked_query_mention_matches) | **GET** /api/v1/organizations/{organizationId}/projects/{projectId}/tracked-queries/{trackedQueryId}/mention-matches | List stored mention matches of a tracked query |
|
|
28
|
+
| [**search_tracked_query_serp_matches**](TrackedQueriesApi.md#search_tracked_query_serp_matches) | **GET** /api/v1/organizations/{organizationId}/projects/{projectId}/tracked-queries/{trackedQueryId}/serp-matches | List stored serp matches of a tracked query |
|
|
27
29
|
|
|
28
30
|
|
|
29
31
|
## add_clusters_to_tracked_query
|
|
@@ -334,7 +336,7 @@ end
|
|
|
334
336
|
|
|
335
337
|
Check several tracked queries now
|
|
336
338
|
|
|
337
|
-
Minimum role: manager. Asks for a fresh check of up to 100 named tracked queries straight away, ignoring how recently each was last checked. Answers 200 with per-item results and NO job id: a check that is already in flight for a query is reused rather than started again, so there is no id this operation could hand back that is guaranteed to exist. Follow progress on the tracked query itself — its lastCheckedAt advances when the check completes. A successful item means the check was accepted for submission with budget available for it at that moment; it does not mean the check has run. A checked query costs one
|
|
339
|
+
Minimum role: manager. Asks for a fresh check of up to 100 named tracked queries straight away, ignoring how recently each was last checked. Answers 200 with per-item results and NO job id: a check that is already in flight for a query is reused rather than started again, so there is no id this operation could hand back that is guaranteed to exist. Follow progress on the tracked query itself — its lastCheckedAt advances when the check completes. A successful item means the check was accepted for submission with budget available for it at that moment; it does not mean the check has run. A checked query costs one check per pass; a Claude pass counts as five (nPasses), and items that do not fit the remaining budget are reported as failed with `check_budget_forecast_exhausted`, or `subscription_not_found` when the organization has no entitled subscription — they are never reported as successful. That budget figure is a forecast for this batch, and a pessimistic one: a tracked query already being checked is joined to the check in flight and costs nothing, but it is still debited here, so an item refused this way may have fitted. Resubmit it in a later batch rather than treating the refusal as a statement about your subscription. A paused query is reported as failed with `tracked_query_already_paused`: paused queries are never checked. An id that is not a tracked query of this project is reported as failed with `tracked_query_not_found`, exactly as an id that does not exist. Requires an Idempotency-Key header; a retry must repeat the same ids in the same order.
|
|
338
340
|
|
|
339
341
|
### Examples
|
|
340
342
|
|
|
@@ -938,7 +940,7 @@ end
|
|
|
938
940
|
|
|
939
941
|
Count a project's tracked queries and price checking them
|
|
940
942
|
|
|
941
|
-
Minimum role: viewer. Two numbers about one project: how many tracked queries it holds, and what force-checking that same set would cost. Omit `status` to count every tracked query whatever its status; send `active` or `paused` to count and price only those. `checkCost` is a PRICED DRY RUN expressed in
|
|
943
|
+
Minimum role: viewer. Two numbers about one project: how many tracked queries it holds, and what force-checking that same set would cost. Omit `status` to count every tracked query whatever its status; send `active` or `paused` to count and price only those. `checkCost` is a PRICED DRY RUN expressed in checks — five checks per Claude pass and one check per pass for every other engine, the same currency as the plan allowance, so it is directly comparable with `checksAvailable` from the entitlements operation — and it is the sum of each matched tracked query's configured passes multiplied by its engine weight. Asking reserves nothing, debits nothing and starts no check. It is deliberately NOT a forecast of what the check-all operation will consume: that operation skips paused queries, skips a query whose check is already pending or running, re-runs a check awaiting retry without charging for it again, and stops at whatever budget is left — none of which is subtracted here. Count with `status=active` for the figure closest to a full check-all. Both numbers are read from the write model, so a tracked query created moments ago is already in them; that is why they can be AHEAD of the `total` returned by the tracked-queries listing, which counts a search projection, and ahead of the keyword listings, which read projections refreshed in the background. Summing the unfiltered count over every project of an organization, archived projects included, reproduces countOrganizationTrackedQueries, which counts through the same counter in the same store. An archived project still answers, because this is a read, but no check can be submitted there while it stays archived, so its cost is hypothetical. For a month of scheduled rounds across the whole organization instead of one round over one project, read getOrganizationProjectedMonthlyChecks. No monetary amount is published or implied: the cost of a check is published only in checks.
|
|
942
944
|
|
|
943
945
|
### Examples
|
|
944
946
|
|
|
@@ -1013,7 +1015,7 @@ end
|
|
|
1013
1015
|
|
|
1014
1016
|
Check every eligible tracked query of a project now
|
|
1015
1017
|
|
|
1016
|
-
Minimum role: manager. Submits a fresh check for every eligible tracked query of the project, ignoring how recently each was last checked, least-recently-checked first, and at most 1000 tracked queries per call. Eligible is narrower than active: a paused query is skipped, and so is one whose check is already pending or running for the same engine. A query whose check is awaiting a retry is included and, WHEN THE ENGINE HAS NOT CHANGED SINCE, costs nothing extra, because its first submission already paid for it; if the engine did change, the pending run is replaced and the replacement is paid for. What is left is trimmed to what the organization's remaining check budget can pay for — a check costs one
|
|
1018
|
+
Minimum role: manager. Submits a fresh check for every eligible tracked query of the project, ignoring how recently each was last checked, least-recently-checked first, and at most 1000 tracked queries per call. Eligible is narrower than active: a paused query is skipped, and so is one whose check is already pending or running for the same engine. A query whose check is awaiting a retry is included and, WHEN THE ENGINE HAS NOT CHANGED SINCE, costs nothing extra, because its first submission already paid for it; if the engine did change, the pending run is replaced and the replacement is paid for. What is left is trimmed to what the organization's remaining check budget can pay for — a check costs one check per pass; a Claude pass counts as five. A subscription that is cancelled but still inside its paid grace window keeps paying for checks until that window ends. CALLING AGAIN DOES NOT CONTINUE WHERE THIS CALL STOPPED: submissions are handed to a worker, and a tracked query stops being selected only once that worker has started its check, so a second call made before the queue drains selects and submits the same tracked queries again. That is safe while the first check is still running — the duplicate is collapsed, and nothing is checked or charged twice — but a check that has already finished is run again and charged again, because this operation ignores staleness by design. To cover a project with more than 1000 eligible tracked queries, wait for the submitted wave to be picked up — each tracked query's lastCheckedAt advances when its check completes — and call again then. The response lists the tracked queries submitted and carries NO job id: a check already in flight is reused rather than started again, so no id could be guaranteed to exist. Submission is accepted, not completed: a listed tracked query can still lose the last budget units to another caller before the worker reaches it. The request takes no body, and any field sent is rejected. Requires an Idempotency-Key header.
|
|
1017
1019
|
|
|
1018
1020
|
### Examples
|
|
1019
1021
|
|
|
@@ -1547,3 +1549,173 @@ end
|
|
|
1547
1549
|
- **Content-Type**: Not defined
|
|
1548
1550
|
- **Accept**: application/json, text/csv
|
|
1549
1551
|
|
|
1552
|
+
|
|
1553
|
+
## search_tracked_query_mention_matches
|
|
1554
|
+
|
|
1555
|
+
> <SearchTrackedQueryMentionMatches200Response> search_tracked_query_mention_matches(organization_id, project_id, tracked_query_id, opts)
|
|
1556
|
+
|
|
1557
|
+
List stored mention matches of a tracked query
|
|
1558
|
+
|
|
1559
|
+
Minimum role: viewer. Text mentions across own brand and tracked or untracked competitors. Citation-only rows are excluded before pagination. Read mentionRelation to distinguish own brand from untracked competitors; a null competitorId alone does not classify the mention. Newest first by detection time, with an id tie-break. Dates cover whole UTC days. Only the retained 16-month window is readable, including when dateFrom is omitted. Unknown filters are rejected. The total counts all matching rows before pagination. Send Accept: text/csv for the same bounded page and filters as CSV, with formula-safe cells and no total.
|
|
1560
|
+
|
|
1561
|
+
### Examples
|
|
1562
|
+
|
|
1563
|
+
```ruby
|
|
1564
|
+
require 'time'
|
|
1565
|
+
require 'mencoro'
|
|
1566
|
+
# setup authorization
|
|
1567
|
+
Mencoro.configure do |config|
|
|
1568
|
+
# Configure Bearer authorization: ApiKey
|
|
1569
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
1570
|
+
end
|
|
1571
|
+
|
|
1572
|
+
api_instance = Mencoro::TrackedQueriesApi.new
|
|
1573
|
+
organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
|
|
1574
|
+
project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
|
|
1575
|
+
tracked_query_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
|
|
1576
|
+
opts = {
|
|
1577
|
+
date_from: Date.parse('2013-10-20'), # Date | Inclusive UTC day; defaults to the retention floor.
|
|
1578
|
+
date_to: Date.parse('2013-10-20'), # Date | Inclusive UTC day.
|
|
1579
|
+
limit: 56, # Integer |
|
|
1580
|
+
offset: 56, # Integer |
|
|
1581
|
+
sort_order: 'asc' # String |
|
|
1582
|
+
}
|
|
1583
|
+
|
|
1584
|
+
begin
|
|
1585
|
+
# List stored mention matches of a tracked query
|
|
1586
|
+
result = api_instance.search_tracked_query_mention_matches(organization_id, project_id, tracked_query_id, opts)
|
|
1587
|
+
p result
|
|
1588
|
+
rescue Mencoro::ApiError => e
|
|
1589
|
+
puts "Error when calling TrackedQueriesApi->search_tracked_query_mention_matches: #{e}"
|
|
1590
|
+
end
|
|
1591
|
+
```
|
|
1592
|
+
|
|
1593
|
+
#### Using the search_tracked_query_mention_matches_with_http_info variant
|
|
1594
|
+
|
|
1595
|
+
This returns an Array which contains the response data, status code and headers.
|
|
1596
|
+
|
|
1597
|
+
> <Array(<SearchTrackedQueryMentionMatches200Response>, Integer, Hash)> search_tracked_query_mention_matches_with_http_info(organization_id, project_id, tracked_query_id, opts)
|
|
1598
|
+
|
|
1599
|
+
```ruby
|
|
1600
|
+
begin
|
|
1601
|
+
# List stored mention matches of a tracked query
|
|
1602
|
+
data, status_code, headers = api_instance.search_tracked_query_mention_matches_with_http_info(organization_id, project_id, tracked_query_id, opts)
|
|
1603
|
+
p status_code # => 2xx
|
|
1604
|
+
p headers # => { ... }
|
|
1605
|
+
p data # => <SearchTrackedQueryMentionMatches200Response>
|
|
1606
|
+
rescue Mencoro::ApiError => e
|
|
1607
|
+
puts "Error when calling TrackedQueriesApi->search_tracked_query_mention_matches_with_http_info: #{e}"
|
|
1608
|
+
end
|
|
1609
|
+
```
|
|
1610
|
+
|
|
1611
|
+
### Parameters
|
|
1612
|
+
|
|
1613
|
+
| Name | Type | Description | Notes |
|
|
1614
|
+
| ---- | ---- | ----------- | ----- |
|
|
1615
|
+
| **organization_id** | **String** | | |
|
|
1616
|
+
| **project_id** | **String** | | |
|
|
1617
|
+
| **tracked_query_id** | **String** | | |
|
|
1618
|
+
| **date_from** | **Date** | Inclusive UTC day; defaults to the retention floor. | [optional] |
|
|
1619
|
+
| **date_to** | **Date** | Inclusive UTC day. | [optional] |
|
|
1620
|
+
| **limit** | **Integer** | | [optional][default to 20] |
|
|
1621
|
+
| **offset** | **Integer** | | [optional][default to 0] |
|
|
1622
|
+
| **sort_order** | **String** | | [optional][default to 'desc'] |
|
|
1623
|
+
|
|
1624
|
+
### Return type
|
|
1625
|
+
|
|
1626
|
+
[**SearchTrackedQueryMentionMatches200Response**](SearchTrackedQueryMentionMatches200Response.md)
|
|
1627
|
+
|
|
1628
|
+
### Authorization
|
|
1629
|
+
|
|
1630
|
+
[ApiKey](../README.md#ApiKey)
|
|
1631
|
+
|
|
1632
|
+
### HTTP request headers
|
|
1633
|
+
|
|
1634
|
+
- **Content-Type**: Not defined
|
|
1635
|
+
- **Accept**: application/json, text/csv
|
|
1636
|
+
|
|
1637
|
+
|
|
1638
|
+
## search_tracked_query_serp_matches
|
|
1639
|
+
|
|
1640
|
+
> <SearchTrackedQuerySerpMatches200Response> search_tracked_query_serp_matches(organization_id, project_id, tracked_query_id, opts)
|
|
1641
|
+
|
|
1642
|
+
List stored serp matches of a tracked query
|
|
1643
|
+
|
|
1644
|
+
Minimum role: viewer. Stored organic-search matches with the competitor attribution and position recorded at detection time. A null competitorId identifies the own-brand match. These are historical matches, not a reclassification using the current brand profile. Newest first by detection time, with an id tie-break. Dates cover whole UTC days. Only the retained 16-month window is readable, including when dateFrom is omitted. Unknown filters are rejected. The total counts all matching rows before pagination. Send Accept: text/csv for the same bounded page and filters as CSV, with formula-safe cells and no total.
|
|
1645
|
+
|
|
1646
|
+
### Examples
|
|
1647
|
+
|
|
1648
|
+
```ruby
|
|
1649
|
+
require 'time'
|
|
1650
|
+
require 'mencoro'
|
|
1651
|
+
# setup authorization
|
|
1652
|
+
Mencoro.configure do |config|
|
|
1653
|
+
# Configure Bearer authorization: ApiKey
|
|
1654
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
1655
|
+
end
|
|
1656
|
+
|
|
1657
|
+
api_instance = Mencoro::TrackedQueriesApi.new
|
|
1658
|
+
organization_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
|
|
1659
|
+
project_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
|
|
1660
|
+
tracked_query_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
|
|
1661
|
+
opts = {
|
|
1662
|
+
date_from: Date.parse('2013-10-20'), # Date | Inclusive UTC day; defaults to the retention floor.
|
|
1663
|
+
date_to: Date.parse('2013-10-20'), # Date | Inclusive UTC day.
|
|
1664
|
+
limit: 56, # Integer |
|
|
1665
|
+
offset: 56, # Integer |
|
|
1666
|
+
sort_order: 'asc' # String |
|
|
1667
|
+
}
|
|
1668
|
+
|
|
1669
|
+
begin
|
|
1670
|
+
# List stored serp matches of a tracked query
|
|
1671
|
+
result = api_instance.search_tracked_query_serp_matches(organization_id, project_id, tracked_query_id, opts)
|
|
1672
|
+
p result
|
|
1673
|
+
rescue Mencoro::ApiError => e
|
|
1674
|
+
puts "Error when calling TrackedQueriesApi->search_tracked_query_serp_matches: #{e}"
|
|
1675
|
+
end
|
|
1676
|
+
```
|
|
1677
|
+
|
|
1678
|
+
#### Using the search_tracked_query_serp_matches_with_http_info variant
|
|
1679
|
+
|
|
1680
|
+
This returns an Array which contains the response data, status code and headers.
|
|
1681
|
+
|
|
1682
|
+
> <Array(<SearchTrackedQuerySerpMatches200Response>, Integer, Hash)> search_tracked_query_serp_matches_with_http_info(organization_id, project_id, tracked_query_id, opts)
|
|
1683
|
+
|
|
1684
|
+
```ruby
|
|
1685
|
+
begin
|
|
1686
|
+
# List stored serp matches of a tracked query
|
|
1687
|
+
data, status_code, headers = api_instance.search_tracked_query_serp_matches_with_http_info(organization_id, project_id, tracked_query_id, opts)
|
|
1688
|
+
p status_code # => 2xx
|
|
1689
|
+
p headers # => { ... }
|
|
1690
|
+
p data # => <SearchTrackedQuerySerpMatches200Response>
|
|
1691
|
+
rescue Mencoro::ApiError => e
|
|
1692
|
+
puts "Error when calling TrackedQueriesApi->search_tracked_query_serp_matches_with_http_info: #{e}"
|
|
1693
|
+
end
|
|
1694
|
+
```
|
|
1695
|
+
|
|
1696
|
+
### Parameters
|
|
1697
|
+
|
|
1698
|
+
| Name | Type | Description | Notes |
|
|
1699
|
+
| ---- | ---- | ----------- | ----- |
|
|
1700
|
+
| **organization_id** | **String** | | |
|
|
1701
|
+
| **project_id** | **String** | | |
|
|
1702
|
+
| **tracked_query_id** | **String** | | |
|
|
1703
|
+
| **date_from** | **Date** | Inclusive UTC day; defaults to the retention floor. | [optional] |
|
|
1704
|
+
| **date_to** | **Date** | Inclusive UTC day. | [optional] |
|
|
1705
|
+
| **limit** | **Integer** | | [optional][default to 20] |
|
|
1706
|
+
| **offset** | **Integer** | | [optional][default to 0] |
|
|
1707
|
+
| **sort_order** | **String** | | [optional][default to 'desc'] |
|
|
1708
|
+
|
|
1709
|
+
### Return type
|
|
1710
|
+
|
|
1711
|
+
[**SearchTrackedQuerySerpMatches200Response**](SearchTrackedQuerySerpMatches200Response.md)
|
|
1712
|
+
|
|
1713
|
+
### Authorization
|
|
1714
|
+
|
|
1715
|
+
[ApiKey](../README.md#ApiKey)
|
|
1716
|
+
|
|
1717
|
+
### HTTP request headers
|
|
1718
|
+
|
|
1719
|
+
- **Content-Type**: Not defined
|
|
1720
|
+
- **Accept**: application/json, text/csv
|
|
1721
|
+
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **count** | **Integer** | Tracked queries in the project matching the status filter. Every status when none was sent. | |
|
|
8
|
-
| **check_cost** | **Integer** | Budget cost of force-checking exactly those tracked queries, in
|
|
8
|
+
| **check_cost** | **Integer** | Budget cost of force-checking exactly those tracked queries, in checks: the sum of each one's configured passes multiplied by its engine weight. Five checks per Claude pass and one check per pass for every other engine, the same currency as the plan allowance. Reserves nothing and debits nothing. | |
|
|
9
9
|
|
|
10
10
|
## Example
|
|
11
11
|
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Mencoro::TrackedQueryMoverRow
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **tracked_query_id** | **String** | | |
|
|
8
|
+
| **query_text** | **String** | | |
|
|
9
|
+
| **engine** | **String** | | |
|
|
10
|
+
| **country** | **String** | | |
|
|
11
|
+
| **avg_serp_position** | **Float** | | [optional] |
|
|
12
|
+
| **trend_serp** | **Float** | | [optional] |
|
|
13
|
+
| **avg_shopping_position** | **Float** | | [optional] |
|
|
14
|
+
| **trend_shopping** | **Float** | | [optional] |
|
|
15
|
+
| **avg_mention_position** | **Float** | | [optional] |
|
|
16
|
+
| **trend_mention** | **Float** | | [optional] |
|
|
17
|
+
| **avg_link_position** | **Float** | | [optional] |
|
|
18
|
+
| **trend_link** | **Float** | | [optional] |
|
|
19
|
+
| **share_of_voice** | **Float** | | [optional] |
|
|
20
|
+
| **trend_share_of_voice** | **Float** | | [optional] |
|
|
21
|
+
| **positivity_index** | **Integer** | | [optional] |
|
|
22
|
+
| **trend_positivity** | **Integer** | | [optional] |
|
|
23
|
+
| **sentiment_positive** | **Integer** | | |
|
|
24
|
+
| **sentiment_neutral** | **Integer** | | |
|
|
25
|
+
| **sentiment_negative** | **Integer** | | |
|
|
26
|
+
| **mention_count** | **Integer** | | |
|
|
27
|
+
| **mention_type_counts** | [**MentionTypeCounts**](MentionTypeCounts.md) | | |
|
|
28
|
+
|
|
29
|
+
## Example
|
|
30
|
+
|
|
31
|
+
```ruby
|
|
32
|
+
require 'mencoro'
|
|
33
|
+
|
|
34
|
+
instance = Mencoro::TrackedQueryMoverRow.new(
|
|
35
|
+
tracked_query_id: null,
|
|
36
|
+
query_text: null,
|
|
37
|
+
engine: null,
|
|
38
|
+
country: null,
|
|
39
|
+
avg_serp_position: null,
|
|
40
|
+
trend_serp: null,
|
|
41
|
+
avg_shopping_position: null,
|
|
42
|
+
trend_shopping: null,
|
|
43
|
+
avg_mention_position: null,
|
|
44
|
+
trend_mention: null,
|
|
45
|
+
avg_link_position: null,
|
|
46
|
+
trend_link: null,
|
|
47
|
+
share_of_voice: null,
|
|
48
|
+
trend_share_of_voice: null,
|
|
49
|
+
positivity_index: null,
|
|
50
|
+
trend_positivity: null,
|
|
51
|
+
sentiment_positive: null,
|
|
52
|
+
sentiment_neutral: null,
|
|
53
|
+
sentiment_negative: null,
|
|
54
|
+
mention_count: null,
|
|
55
|
+
mention_type_counts: null
|
|
56
|
+
)
|
|
57
|
+
```
|
|
58
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Mencoro::TrackedQueryMoversResponse
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **rows** | [**Array<TrackedQueryMoverRow>**](TrackedQueryMoverRow.md) | | |
|
|
8
|
+
| **total** | **Integer** | | |
|
|
9
|
+
| **data_dirty_since** | **String** | | [optional] |
|
|
10
|
+
|
|
11
|
+
## Example
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
require 'mencoro'
|
|
15
|
+
|
|
16
|
+
instance = Mencoro::TrackedQueryMoversResponse.new(
|
|
17
|
+
rows: null,
|
|
18
|
+
total: null,
|
|
19
|
+
data_dirty_since: null
|
|
20
|
+
)
|
|
21
|
+
```
|
|
22
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Mencoro::TrackedQueryRankTrackingTimeSeries
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **points** | [**Array<TimeSeriesPoint>**](TimeSeriesPoint.md) | | |
|
|
8
|
+
| **data_dirty_since** | **String** | | [optional] |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'mencoro'
|
|
14
|
+
|
|
15
|
+
instance = Mencoro::TrackedQueryRankTrackingTimeSeries.new(
|
|
16
|
+
points: null,
|
|
17
|
+
data_dirty_since: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **tracked_query_count** | **Integer** | Tracked queries across every project of the organization, archived projects included, counting active and paused queries alike. Never null; 0 means none are configured. | |
|
|
7
|
+
| **tracked_query_count** | **Integer** | Tracked queries across every project of the organization the caller can access, archived projects included, counting active and paused queries alike. Never null; 0 means none are configured. | |
|
|
8
8
|
|
|
9
9
|
## Example
|
|
10
10
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Mencoro API
|
|
3
3
|
|
|
4
|
-
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`. Every write operation requires an `Idempotency-Key` header: a retry carrying the same key and body within 30 days is answered from the stored result without running again; after 30 days the key is forgotten and a retry runs as a new operation.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: support@mencoro.com
|
|
@@ -77,7 +77,7 @@ module Mencoro
|
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
# Counts across everything the key can reach
|
|
80
|
-
# Aggregate counts over every organization the key's owner is an active member of, narrowed to the key's scope — the same set /api/v1/organizations pages through. `organizations.total` is that set's size; `projects.total` and `projects.active` count the projects inside it, archived ones included in the total and excluded from the active figure. Every value is an exact count: zero means zero, and no value here is ever null or unknown. Per-organization billing and usage figures are not part of this response; read them from the subscription and entitlements operations instead.
|
|
80
|
+
# Aggregate counts over every organization the key's owner is an active member of, narrowed to the key's scope — the same set /api/v1/organizations pages through. `organizations.total` is that set's size; `projects.total` and `projects.active` count the projects inside it the owner can access, archived ones included in the total and excluded from the active figure. Every value is an exact count: zero means zero, and no value here is ever null or unknown. Per-organization billing and usage figures are not part of this response; read them from the subscription and entitlements operations instead.
|
|
81
81
|
# @param [Hash] opts the optional parameters
|
|
82
82
|
# @return [GetMeStats200Response]
|
|
83
83
|
def get_me_stats(opts = {})
|
|
@@ -86,7 +86,7 @@ module Mencoro
|
|
|
86
86
|
end
|
|
87
87
|
|
|
88
88
|
# Counts across everything the key can reach
|
|
89
|
-
# Aggregate counts over every organization the key's owner is an active member of, narrowed to the key's scope — the same set /api/v1/organizations pages through. `organizations.total` is that set's size; `projects.total` and `projects.active` count the projects inside it, archived ones included in the total and excluded from the active figure. Every value is an exact count: zero means zero, and no value here is ever null or unknown. Per-organization billing and usage figures are not part of this response; read them from the subscription and entitlements operations instead.
|
|
89
|
+
# Aggregate counts over every organization the key's owner is an active member of, narrowed to the key's scope — the same set /api/v1/organizations pages through. `organizations.total` is that set's size; `projects.total` and `projects.active` count the projects inside it the owner can access, archived ones included in the total and excluded from the active figure. Every value is an exact count: zero means zero, and no value here is ever null or unknown. Per-organization billing and usage figures are not part of this response; read them from the subscription and entitlements operations instead.
|
|
90
90
|
# @param [Hash] opts the optional parameters
|
|
91
91
|
# @return [Array<(GetMeStats200Response, Integer, Hash)>] GetMeStats200Response data, response status code and response headers
|
|
92
92
|
def get_me_stats_with_http_info(opts = {})
|