[[geoip-stats-api]]
=== GeoIP stats API
++++
<titleabbrev>GeoIP stats</titleabbrev>
++++

Gets statistics about the <<geoip-processor,`geoip` processor>>, including
download statistics for GeoIP2 databases used with it.

[source,console]
----
GET _ingest/geoip/stats
----

[[geoip-stats-api-request]]
==== {api-request-title}

`GET _ingest/geoip/stats`

[[geoip-stats-api-prereqs]]
==== {api-prereq-title}

* If the {es} {security-features} are enabled, you must have the `monitor` or
`manage` <<privileges-list-cluster,cluster privilege>> to use this API.

* If <<ingest-geoip-downloader-enabled,`ingest.geoip.downloader.enabled`>> is
disabled and no custom databases are configured, this API returns zero values and an empty `nodes` object.

[role="child_attributes"]
[[geoip-stats-api-response-body]]
==== {api-response-body-title}

`stats`::
(object)
Download statistics for all GeoIP2 databases.
+
.Properties of `stats`
[%collapsible%open]
====
`successful_downloads`::
(integer)
Total number of successful database downloads.

`failed_downloads`::
(integer)
Total number of failed database downloads.

`total_download_time`::
(integer)
Total milliseconds spent downloading databases.

`database_count`::
(integer)
Current number of databases available for use.

`skipped_updates`::
(integer)
Total number of database updates skipped.
====

`nodes`::
(object)
Statistics for each node.
+
.Properties of `nodes`
[%collapsible%open]
====
`<node_id>`::
(object)
Downloaded databases for the node. The field key is the node ID.
+
.Properties of `<node_id>`
[%collapsible%open]
=====
`databases`::
(array of objects)
Downloaded databases for the node.
+
.Properties of `databases` objects
[%collapsible%open]
======
`name`::
(string)
Name of the database.
======
`cache_stats`::
(object)
GeoIP cache stats for the node.
+
.Properties of `cache_stats`
[%collapsible%open]
======
`count`::
(Long)
Number of cached entries.

`hits`::
(Long)
The number of enrich lookups served from cache.

`misses`::
(Long)
The number of times geoIP lookups couldn't be
served from cache.

`evictions`::
(Long)
The number cache entries evicted from the cache.

`hits_time_in_millis`::
(Long)
The amount of time in milliseconds spent fetching data from the cache on successful cache hits only.

`misses_time_in_millis`::
(Long)
The amount of time in milliseconds spent fetching data from the cache and the backing GeoIP2 database and updating the
cache, on cache misses only.

======


`files_in_temp`::
(array of strings)
Downloaded database files, including related license files. {es} stores these
files in the node's <<es-tmpdir,temporary directory>>:
`$ES_TMPDIR/geoip-databases/<node_id>`.
=====
====
