openapi: 3.2.0 info: title: Elasticsearch Analytics API description: 'Elasticsearch provides REST APIs that are used by the UI components and can be called directly to configure and access Elasticsearch features. ## Documentation source and versions This documentation is derived from the main branch of the elasticsearch-specification repository. It is provided under license Attribution-NonCommercial-NoDerivatives 4.0 International. This documentation contains work-in-progress information for future Elastic Stack releases.' license: name: Apache 2.0 url: https://github.com/elastic/elasticsearch-specification/blob/main/LICENSE version: '' security: - apiKeyAuth: [] - basicAuth: [] - bearerAuth: [] tags: - name: Analytics description: The behavioral analytics APIs let you create and manage analytics collections and view their data. Use them to analyze users' search and click behavior, improve result relevance, and identify content gaps. x-displayName: Behavioral analytics paths: /_application/analytics/{name}: get: tags: - Analytics summary: Get behavioral analytics collections operationId: search-application-get-behavioral-analytics-1 parameters: - in: path name: name description: A list of analytics collections to limit the returned information required: true deprecated: false schema: type: array items: $ref: '#/components/schemas/_types.Name' style: simple responses: '200': description: '' content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/search_application._types.AnalyticsCollection' examples: BehavioralAnalyticsGetResponseExample1: description: A successful response from `GET _application/analytics/my*` value: "{\n \"my_analytics_collection\": {\n \"event_data_stream\": {\n \"name\": \"behavioral_analytics-events-my_analytics_collection\"\n }\n },\n \"my_analytics_collection2\": {\n \"event_data_stream\": {\n \"name\": \"behavioral_analytics-events-my_analytics_collection2\"\n }\n }\n}" deprecated: true x-state: Technical preview; Added in 8.8.0 x-variations: - "
\n GET\n /_application/analytics/{name}\n
\n " x-api: get_behavioral_analytics.search_application x-category: management x-codeSamples: - lang: Console source: 'GET _application/analytics/my* ' - lang: Python source: "resp = client.search_application.get_behavioral_analytics(\n name=\"my*\",\n)" - lang: JavaScript source: "const response = await client.searchApplication.getBehavioralAnalytics({\n name: \"my*\",\n});" - lang: Ruby source: "response = client.search_application.get_behavioral_analytics(\n name: \"my*\"\n)" - lang: PHP source: "$resp = $client->searchApplication()->getBehavioralAnalytics([\n \"name\" => \"my*\",\n]);" - lang: curl source: 'curl -X GET -H "Authorization: ApiKey $ELASTIC_API_KEY" "$ELASTICSEARCH_URL/_application/analytics/my*"' - lang: Java source: "client.searchApplication().getBehavioralAnalytics(g -> g\n .name(\"my*\")\n);\n" x-metaTags: - content: Elasticsearch name: product_name put: tags: - Analytics summary: Create a behavioral analytics collection operationId: search-application-put-behavioral-analytics parameters: - in: path name: name description: The name of the analytics collection to be created or updated. required: true deprecated: false schema: $ref: '#/components/schemas/_types.Name' style: simple responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/search_application.put_behavioral_analytics.AnalyticsAcknowledgeResponseBase' deprecated: true x-state: Technical preview; Added in 8.8.0 x-variations: - "
\n PUT\n /_application/analytics/{name}\n
\n " x-api: put_behavioral_analytics.search_application x-category: management x-codeSamples: - lang: Console source: 'PUT _application/analytics/my_analytics_collection ' - lang: Python source: "resp = client.search_application.put_behavioral_analytics(\n name=\"my_analytics_collection\",\n)" - lang: JavaScript source: "const response = await client.searchApplication.putBehavioralAnalytics({\n name: \"my_analytics_collection\",\n});" - lang: Ruby source: "response = client.search_application.put_behavioral_analytics(\n name: \"my_analytics_collection\"\n)" - lang: PHP source: "$resp = $client->searchApplication()->putBehavioralAnalytics([\n \"name\" => \"my_analytics_collection\",\n]);" - lang: curl source: 'curl -X PUT -H "Authorization: ApiKey $ELASTIC_API_KEY" "$ELASTICSEARCH_URL/_application/analytics/my_analytics_collection"' - lang: Java source: "client.searchApplication().putBehavioralAnalytics(p -> p\n .name(\"my_analytics_collection\")\n);\n" x-metaTags: - content: Elasticsearch name: product_name delete: tags: - Analytics summary: Delete a behavioral analytics collection description: The associated data stream is also deleted. operationId: search-application-delete-behavioral-analytics parameters: - in: path name: name description: The name of the analytics collection to be deleted required: true deprecated: false schema: $ref: '#/components/schemas/_types.Name' style: simple responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/_types.AcknowledgedResponseBase' deprecated: true x-state: Technical preview; Added in 8.8.0 x-variations: - "
\n DELETE\n /_application/analytics/{name}\n
\n " x-api: delete_behavioral_analytics.search_application x-category: management x-codeSamples: - lang: Console source: 'DELETE _application/analytics/my_analytics_collection/ ' - lang: Python source: "resp = client.search_application.delete_behavioral_analytics(\n name=\"my_analytics_collection\",\n)" - lang: JavaScript source: "const response = await client.searchApplication.deleteBehavioralAnalytics({\n name: \"my_analytics_collection\",\n});" - lang: Ruby source: "response = client.search_application.delete_behavioral_analytics(\n name: \"my_analytics_collection\"\n)" - lang: PHP source: "$resp = $client->searchApplication()->deleteBehavioralAnalytics([\n \"name\" => \"my_analytics_collection\",\n]);" - lang: curl source: 'curl -X DELETE -H "Authorization: ApiKey $ELASTIC_API_KEY" "$ELASTICSEARCH_URL/_application/analytics/my_analytics_collection/"' - lang: Java source: "client.searchApplication().deleteBehavioralAnalytics(d -> d\n .name(\"my_analytics_collection\")\n);\n" x-metaTags: - content: Elasticsearch name: product_name /_application/analytics: get: tags: - Analytics summary: Get behavioral analytics collections operationId: search-application-get-behavioral-analytics responses: '200': description: '' content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/search_application._types.AnalyticsCollection' examples: BehavioralAnalyticsGetResponseExample1: description: A successful response from `GET _application/analytics/my*` value: "{\n \"my_analytics_collection\": {\n \"event_data_stream\": {\n \"name\": \"behavioral_analytics-events-my_analytics_collection\"\n }\n },\n \"my_analytics_collection2\": {\n \"event_data_stream\": {\n \"name\": \"behavioral_analytics-events-my_analytics_collection2\"\n }\n }\n}" deprecated: true x-state: Technical preview; Added in 8.8.0 x-variations: - "
\n GET\n /_application/analytics\n
\n " x-api: get_behavioral_analytics.search_application x-category: management x-codeSamples: - lang: Console source: 'GET _application/analytics/my* ' - lang: Python source: "resp = client.search_application.get_behavioral_analytics(\n name=\"my*\",\n)" - lang: JavaScript source: "const response = await client.searchApplication.getBehavioralAnalytics({\n name: \"my*\",\n});" - lang: Ruby source: "response = client.search_application.get_behavioral_analytics(\n name: \"my*\"\n)" - lang: PHP source: "$resp = $client->searchApplication()->getBehavioralAnalytics([\n \"name\" => \"my*\",\n]);" - lang: curl source: 'curl -X GET -H "Authorization: ApiKey $ELASTIC_API_KEY" "$ELASTICSEARCH_URL/_application/analytics/my*"' - lang: Java source: "client.searchApplication().getBehavioralAnalytics(g -> g\n .name(\"my*\")\n);\n" x-metaTags: - content: Elasticsearch name: product_name /_application/analytics/{collection_name}/event/{event_type}: post: tags: - Analytics summary: Create a behavioral analytics collection event externalDocs: url: https://www.elastic.co/guide/en/elasticsearch/reference/8.19/behavioral-analytics-event-reference.html x-previousVersionUrl: https://www.elastic.co/guide/en/elasticsearch/reference/8.19/post-analytics-collection-event.html operationId: search-application-post-behavioral-analytics-event parameters: - in: path name: collection_name description: The name of the behavioral analytics collection. required: true deprecated: false schema: $ref: '#/components/schemas/_types.Name' style: simple - in: path name: event_type description: The analytics event type. required: true deprecated: false schema: $ref: '#/components/schemas/search_application._types.EventType' style: simple - in: query name: debug description: Whether the response type has to include more details deprecated: false schema: type: boolean style: form requestBody: content: application/json: schema: type: object examples: BehavioralAnalyticsEventPostRequestExample1: description: Run `POST _application/analytics/my_analytics_collection/event/search_click` to send a `search_click` event to an analytics collection called `my_analytics_collection`. value: "{\n \"session\": {\n \"id\": \"1797ca95-91c9-4e2e-b1bd-9c38e6f386a9\"\n },\n \"user\": {\n \"id\": \"5f26f01a-bbee-4202-9298-81261067abbd\"\n },\n \"search\":{\n \"query\": \"search term\",\n \"results\": {\n \"items\": [\n {\n \"document\": {\n \"id\": \"123\",\n \"index\": \"products\"\n }\n }\n ],\n \"total_results\": 10\n },\n \"sort\": {\n \"name\": \"relevance\"\n },\n \"search_application\": \"website\"\n },\n \"document\":{\n \"id\": \"123\",\n \"index\": \"products\"\n }\n}" required: true responses: '200': description: '' content: application/json: schema: type: object properties: accepted: type: boolean event: type: object required: - accepted deprecated: true x-state: Technical preview x-variations: - "
\n POST\n /_application/analytics/{collection_name}/event/{event_type}\n
\n " x-api: post_behavioral_analytics_event.search_application x-category: management x-codeSamples: - lang: Console source: "POST _application/analytics/my_analytics_collection/event/search_click\n{\n \"session\": {\n \"id\": \"1797ca95-91c9-4e2e-b1bd-9c38e6f386a9\"\n },\n \"user\": {\n \"id\": \"5f26f01a-bbee-4202-9298-81261067abbd\"\n },\n \"search\":{\n \"query\": \"search term\",\n \"results\": {\n \"items\": [\n {\n \"document\": {\n \"id\": \"123\",\n \"index\": \"products\"\n }\n }\n ],\n \"total_results\": 10\n },\n \"sort\": {\n \"name\": \"relevance\"\n },\n \"search_application\": \"website\"\n },\n \"document\":{\n \"id\": \"123\",\n \"index\": \"products\"\n }\n}" - lang: Python source: "resp = client.search_application.post_behavioral_analytics_event(\n collection_name=\"my_analytics_collection\",\n event_type=\"search_click\",\n payload={\n \"session\": {\n \"id\": \"1797ca95-91c9-4e2e-b1bd-9c38e6f386a9\"\n },\n \"user\": {\n \"id\": \"5f26f01a-bbee-4202-9298-81261067abbd\"\n },\n \"search\": {\n \"query\": \"search term\",\n \"results\": {\n \"items\": [\n {\n \"document\": {\n \"id\": \"123\",\n \"index\": \"products\"\n }\n }\n ],\n \"total_results\": 10\n },\n \"sort\": {\n \"name\": \"relevance\"\n },\n \"search_application\": \"website\"\n },\n \"document\": {\n \"id\": \"123\",\n \"index\": \"products\"\n }\n },\n)" - lang: JavaScript source: "const response = await client.searchApplication.postBehavioralAnalyticsEvent({\n collection_name: \"my_analytics_collection\",\n event_type: \"search_click\",\n payload: {\n session: {\n id: \"1797ca95-91c9-4e2e-b1bd-9c38e6f386a9\",\n },\n user: {\n id: \"5f26f01a-bbee-4202-9298-81261067abbd\",\n },\n search: {\n query: \"search term\",\n results: {\n items: [\n {\n document: {\n id: \"123\",\n index: \"products\",\n },\n },\n ],\n total_results: 10,\n },\n sort: {\n name: \"relevance\",\n },\n search_application: \"website\",\n },\n document: {\n id: \"123\",\n index: \"products\",\n },\n },\n});" - lang: Ruby source: "response = client.search_application.post_behavioral_analytics_event(\n collection_name: \"my_analytics_collection\",\n event_type: \"search_click\",\n body: {\n \"session\": {\n \"id\": \"1797ca95-91c9-4e2e-b1bd-9c38e6f386a9\"\n },\n \"user\": {\n \"id\": \"5f26f01a-bbee-4202-9298-81261067abbd\"\n },\n \"search\": {\n \"query\": \"search term\",\n \"results\": {\n \"items\": [\n {\n \"document\": {\n \"id\": \"123\",\n \"index\": \"products\"\n }\n }\n ],\n \"total_results\": 10\n },\n \"sort\": {\n \"name\": \"relevance\"\n },\n \"search_application\": \"website\"\n },\n \"document\": {\n \"id\": \"123\",\n \"index\": \"products\"\n }\n }\n)" - lang: PHP source: "$resp = $client->searchApplication()->postBehavioralAnalyticsEvent([\n \"collection_name\" => \"my_analytics_collection\",\n \"event_type\" => \"search_click\",\n \"body\" => [\n \"session\" => [\n \"id\" => \"1797ca95-91c9-4e2e-b1bd-9c38e6f386a9\",\n ],\n \"user\" => [\n \"id\" => \"5f26f01a-bbee-4202-9298-81261067abbd\",\n ],\n \"search\" => [\n \"query\" => \"search term\",\n \"results\" => [\n \"items\" => array(\n [\n \"document\" => [\n \"id\" => \"123\",\n \"index\" => \"products\",\n ],\n ],\n ),\n \"total_results\" => 10,\n ],\n \"sort\" => [\n \"name\" => \"relevance\",\n ],\n \"search_application\" => \"website\",\n ],\n \"document\" => [\n \"id\" => \"123\",\n \"index\" => \"products\",\n ],\n ],\n]);" - lang: curl source: 'curl -X POST -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d ''{"session":{"id":"1797ca95-91c9-4e2e-b1bd-9c38e6f386a9"},"user":{"id":"5f26f01a-bbee-4202-9298-81261067abbd"},"search":{"query":"search term","results":{"items":[{"document":{"id":"123","index":"products"}}],"total_results":10},"sort":{"name":"relevance"},"search_application":"website"},"document":{"id":"123","index":"products"}}'' "$ELASTICSEARCH_URL/_application/analytics/my_analytics_collection/event/search_click"' - lang: Java source: "client.searchApplication().postBehavioralAnalyticsEvent(p -> p\n .collectionName(\"my_analytics_collection\")\n .eventType(EventType.SearchClick)\n .payload(JsonData.fromJson(\"{\\\"session\\\":{\\\"id\\\":\\\"1797ca95-91c9-4e2e-b1bd-9c38e6f386a9\\\"},\\\"user\\\":{\\\"id\\\":\\\"5f26f01a-bbee-4202-9298-81261067abbd\\\"},\\\"search\\\":{\\\"query\\\":\\\"search term\\\",\\\"results\\\":{\\\"items\\\":[{\\\"document\\\":{\\\"id\\\":\\\"123\\\",\\\"index\\\":\\\"products\\\"}}],\\\"total_results\\\":10},\\\"sort\\\":{\\\"name\\\":\\\"relevance\\\"},\\\"search_application\\\":\\\"website\\\"},\\\"document\\\":{\\\"id\\\":\\\"123\\\",\\\"index\\\":\\\"products\\\"}}\"))\n);\n" x-metaTags: - content: Elasticsearch name: product_name components: schemas: _types.AcknowledgedResponseBase: type: object properties: acknowledged: description: For a successful response, this value is always true. On failure, an exception is returned instead. type: boolean required: - acknowledged search_application._types.AnalyticsCollection: type: object properties: event_data_stream: description: Data stream for the collection. allOf: - $ref: '#/components/schemas/search_application._types.EventDataStream' required: - event_data_stream search_application._types.EventDataStream: type: object properties: name: allOf: - $ref: '#/components/schemas/_types.IndexName' required: - name search_application.put_behavioral_analytics.AnalyticsAcknowledgeResponseBase: allOf: - $ref: '#/components/schemas/_types.AcknowledgedResponseBase' - type: object properties: name: description: The name of the analytics collection created or updated allOf: - $ref: '#/components/schemas/_types.Name' required: - name _types.IndexName: type: string _types.Name: type: string search_application._types.EventType: type: string enum: - page_view - search - search_click securitySchemes: apiKeyAuth: type: apiKey in: header name: Authorization description: "Elasticsearch APIs support key-based authentication.\nYou must create an API key and use the encoded value in the request header.\nFor example:\n\n```\ncurl -X GET \"${ES_URL}/_cat/indices?v=true\" \\\n -H \"Authorization: ApiKey ${API_KEY}\"\n```\n\nTo get API keys, use the `/_security/api_key` APIs." basicAuth: type: http scheme: basic bearerAuth: type: http scheme: bearer description: 'Elasticsearch APIs support the use of bearer tokens in the `Authorization` HTTP header to authenticate with the API. For examples, refer to [Token-based authentication services](https://www.elastic.co/docs/deploy-manage/users-roles/cluster-or-deployment-auth/token-based-authentication-services)' x-tagGroups: - name: AI & Machine Learning tags: - analytics - graph - inference - ml - ml anomaly - ml data frame - ml trained model - query_rules - text_structure - name: Cluster Management tags: - ccr - cluster - connector - data stream - ilm - indices - rollup - script - search_application - searchable_snapshots - slm - snapshot - name: Data Processing tags: - enrich - fleet - ingest - logstash - synonyms - transform - name: Information & Monitoring tags: - cat - features - health_report - info - license - migration - tasks - watcher - xpack - name: Search & Document APIs tags: - document - eql - esql - search - sql - name: Security tags: - security