NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2422 most downloaded on PyPI
Python Driver for ArangoDB
Last release today
04 Oct 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
10 years old
83 releases · first in 2016
Added 3.12.9 and 3.12.10 explicitly to the CI by @apetenchea in #415
Full Changelog: 8.3.5...8.3.6
The vector index support was updated accordingly for ArangoDB version 3.12.10.
One column per quarter.
The vector index support was updated accordingly for ArangoDB version 3.12.10.
indexes = collection.indexes(with_stats=True, with_hidden=True)
for index in indexes:
print(index.get("figures"))
print(index.get("shards"))Full Changelog: 8.3.4...8.3.5
This release includes a small security fix and minor updates.
This release includes a small security fix and minor updates.
Full Changelog: 8.3.3...8.3.4
Preparing 4.0 by @apetenchea in #395
Full Changelog: 8.3.2...8.3.3
tests: handle ambiguous collection retries in cluster by @apetenchea in #392
Full Changelog: 8.3.1...8.3.2
Emitting a warning instead of crashing by @apetenchea in #388
Full Changelog: 8.3.0...8.3.1
Running backup tests only in a cluster setup by @apetenchea in #385
Full Changelog: 8.2.6...8.3.0
No longer using setuptools and importlib as direct dependencies by @apetenchea in #384
Full Changelog: 8.2.5...8.2.6
Preparing tests to run against development build by @apetenchea in #382
Full Changelog: 8.2.4...8.2.5
new: params property in index by @aMahanna in #380
params property in index by @aMahanna in #380Full Changelog: 8.2.3...8.2.4
Updating test matrix by @apetenchea in #379
Full Changelog: 8.2.2...8.2.3
Deprecate load/unload methods by @apetenchea in #376
Full Changelog: 8.2.1...8.2.2
Skip _db prefix on /_open/auth by @apetenchea in https://github.com/arangodb/python-arango/pull/374
Full Changelog: https://github.com/arangodb/python-arango/compare/8.2.0...8.2.1
API Updates by @apetenchea in https://github.com/arangodb/python-arango/pull/372
Full Changelog: https://github.com/arangodb/python-arango/compare/8.1.7...8.2.0
Collection Maintenance by @apetenchea in https://github.com/arangodb/python-arango/pull/367
raise_on_document_error for insert_many & delete_many by @aMahanna in https://github.com/arangodb/python-arango/pull/369Full Changelog: https://github.com/arangodb/python-arango/compare/8.1.6...8.1.7
Mostly cleaning up and documentation updates.
Mostly cleaning up and documentation updates.
Full Changelog: https://github.com/arangodb/python-arango/compare/8.1.5...8.1.6
Some bug fixes and improvements, along with keeping up with 3.12.4.
Some bug fixes and improvements, along with keeping up with 3.12.4.
Full Changelog: https://github.com/arangodb/python-arango/compare/8.1.4...8.1.5
ES-2276 | support level 2 query profiling by @aMahanna in https://github.com/arangodb/python-arango/pull/355
Full Changelog: https://github.com/arangodb/python-arango/compare/8.1.3...8.1.4
Fix docstring by @apetenchea in https://github.com/arangodb/python-arango/pull/350
_hosts to BaseConnection by @aMahanna in https://github.com/arangodb/python-arango/pull/353collection.find to support nested fields by @aMahanna in https://github.com/arangodb/python-arango/pull/354Full Changelog: https://github.com/arangodb/python-arango/compare/8.1.2...8.1.3
update: create_graph & properties by @aMahanna in https://github.com/arangodb/python-arango/pull/349
create_graph & properties by @aMahanna in https://github.com/arangodb/python-arango/pull/349Full Changelog: https://github.com/arangodb/python-arango/compare/8.1.1...8.1.2
Integrate latest 3.12.2 changes by @apetenchea in https://github.com/arangodb/python-arango/pull/348
Full Changelog: https://github.com/arangodb/python-arango/compare/8.1.0...8.1.1
The collection.has() method uses HTTP HEAD method instead of GET
collection.has() method uses HTTP HEAD method instead of GETskipFastLockRound option was introduced for transactions (ArangoDB 3.12.1, see docs)db.reset_log_levels() method to reset all log levels to their startup values (ArangoDB 3.12.1, see docs)Full Changelog: https://github.com/arangodb/python-arango/compare/8.0.0...8.1.0
Pregel is deprecated since ArangoDB 3.12. The API can still be used with the driver, but it will eventually be removed when 3.11 support is over.
Collection.add_geo_index() parameter ordered has been renamed to geo_json. The name ordered used to create lots of confusion.api/traversal endpoint is no longer available starting with ArangoDB 3.12. This renders the arango.graph.Graph.traverse() unusable.client = ArangoClient(
hosts="http://127.0.0.1:8529",
request_compression=DeflateRequestCompression(),
response_compression="deflate",
)
add_index() becomes the new way of creating indexes. It takes a data parameter - the keys are pure ArangoDB REST API arguments, no snake_case conversion anymore. However, for the output, the legacy methods remain the same, while the new add_index method by default skips formatting. Legacy methods have been deprecated.collection.add_index({'type': 'persistent', 'fields': ['name'], 'unique': True})
/_admin/log/structured support/_admin/compact support/_admin/echo support/_admin/server/mode support/_admin/execute support/_admin/support-info/_admin/cluster/maintenance//metrics endpoint to v2fetch_transaction() methodIntroduced a new StandardDatabase.fetch_transaction() method that allows users to create a TransactionDatabase based on an existing Transaction, instead of starting a new transaction.
version_attribute to some of the Collection methodsautoincrement collection creationServerConnectionError to contain an error codeFull Changelog: https://github.com/arangodb/python-arango/compare/7.9.1...8.0.0
fix: docs/requirements.txt by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/315
docs/requirements.txt by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/315Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.9.0...7.9.1
Circleci project setup by @apetenchea in https://github.com/ArangoDB-Community/python-arango/pull/291
pyproject.toml by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/302force_one_shard_attribute_value param by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/314Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.8.1...7.9.0
hotfix: build_filter_conditions by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/296
Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.8.0...7.8.1
Fix graph.vertex_collections docstring by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/292
graph.vertex_collections docstring by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/292Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.7.0...7.8.0
❌ Deprecations As part of our ongoing commitment to enhance the driver's capabilities, we've made the decision to deprecate the Batch API. The BatchDa…
This release marks a significant step forward in our support for ArangoDB's vast set of HTTP APIs, especially these added in 3.11.
🚀 Enhancements & New Features
Database.view_info() - retrieves condensed information about a view (HTTP docs)Database.databases_accessible_to_user() retrieves the list of databases currently accessible to the user (HTTP docs)Collection.info() - retrieves condensed information about a collection (HTTP docs)Collection.compact() - support for collection compaction (HTTP docs)Database.license() and Database.set_license() - get & set the license of an ArangoDB EE Instance. Can be called on single servers, Coordinators, and DB-Servers, as long as the user holds the necessary permissions (HTTP docs)Database.list_transactions() - list the running stream transactions (HTTP docs)Cluster interface (HTTP docs)❌ Deprecations
As part of our ongoing commitment to enhance the driver's capabilities, we've made the decision to deprecate the Batch API. The BatchDatabase is still available, but it now uses a TreadPoolExecutor internally. To discourage its use we now issue a warning upon instantiating it. This warning may be disabled by the user. Note that, the Batch API of ArangoDB is long deprecated, and eventually the BatchDatabase part of this driver is going to be completely removed or repurposed.
🐛 Fixes Minor improvements
:book: Changelog For a more detailed breakdown of the changes, please refer to the Full Changelog
fix: build_filter_conditions utils method by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/277
build_filter_conditions utils method by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/277Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.6.1...7.6.2
[DE-584] Refactor deprecated /_api/simple methods by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/275
shards() method to Collection by @apetenchea in https://github.com/ArangoDB-Community/python-arango/pull/274/_api/simple methods by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/275raise_on_document_error parameter to Collection.update_many() by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/273computed_values parameter to Collection.onfigure() by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/268Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.6.0...7.6.1
[DE-562] Index Cache Refilling by @apetenchea in https://github.com/ArangoDB-Community/python-arango/pull/259
serverId query param (GET/PUT /_admin/log/level) by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/262request_timeout typing by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/265Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.5.9...7.6.0
Added cache and primaryKeyCache parameters to the inverted index API.
New features
DefaultHTTPClientChanges The following parameters where added:
This is meant to be the last release before officially adding support for 3.11
This is meant to be the last release before officially adding support for 3.11
Revert importlib.metadata commit
- Fixed view serialization code
Add more error codes in arango.errno
arango.errnoFixed format_view to simply return the links
Fixed persistent index creation signature: https://github.com/ArangoDB-Community/python-arango/commit/86411ef40dc22b51a21eccdce8cc179b46d322f1
Fixed a bug with format_collection
format_collectionAdded method to retrieve all running pregel jobs.
detail element to pregel jobs
ii) Added support for x-arango-allow-dirty-read which allows reading from followers in a cluster.
iii) Added support for inverted indexes.
iv) Added support for search-alias views.
v) Added support for ArangoSearch changes in ArangoDB 3.10Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.5.0...7.5.1
Remove discontinued Collection.export method
Collection.export methodread_timeout option in ArangoClientFull Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.4.1...7.5.0
Prevent batch_size parameter usage when overwrite is set to True in bulk_import by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pu
Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.4.0...7.4.1
Re-introduce setuptools-scm with correct usage by @aMahanna in https://github.com/ArangoDB-Community/python-arango/pull/206
Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.3.4...7.4.0
Make overriding TLS verification optional
Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.3.3...7.3.4
Allow disabling TLS certificate verification by @jsteemann in https://github.com/ArangoDB-Community/python-arango/pull/199
Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.3.2...7.3.3
Remove setuptools_scm from depedency and switch back to manual versioning
adjusts workflow to accommodate drafts by @cw00dw0rd in https://github.com/ArangoDB-Community/python-arango/pull/186
Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.3.0...7.3.1
improve performance of get_many by @jsteemann in https://github.com/ArangoDB-Community/python-arango/pull/177
get_many by @jsteemann in https://github.com/ArangoDB-Community/python-arango/pull/177Full Changelog: https://github.com/ArangoDB-Community/python-arango/compare/7.2.0...7.3.0
Add bind_vars parameter to AQL.explain method.
bind_vars parameter to AQL.explain method.Changed default request timeout from 5 to 60 seconds.
ArangoClient.close() method to expose a way for users to close HTTP sessions.Nothing published for this version
Removed deprecated parameter read_collections from Database.aql.execute.
read_collections from Database.aql.execute.write_collections from Database.aql.execute.insert_many, import_bulk (on parity with StandardCollection). NOTE: The newly exposed multi-document operations do not provide the same transactional guarantees and validations that single-document operations do.Properly handle foxx configuration and dependencies.
Added support for ArangoDB version 3.7.
Added new Foxx management methods db.foxx.update_service_with_file and db.foxx.replace_service_with_file.
CursorCountError on statements like len(cursor) or bool(cursor) when count was never enabled (e.g. during AQL execution).Added support for ArangoDB version 3.6.
return_old and return_new in vertex and edge management methods.Fixed KeyError bug in format_index function.
format_index function.Fixed a bug where some of the outputs from ArangoDB were not formatted corrected.
Fixed a bug where exception objects from bulk operations (Collection.insert_many, Collection.update_many, Collection.replace_many, Collection.delete_m
Collection.insert_many, Collection.update_many, Collection.replace_many, Collection.delete_many) were not populated properly. Properties such as error_message and error_code now have correct values.Breaking changes to arango.ArangoClient:
Breaking changes to arango.ArangoClient:
Replaced parameters protocol, host and port with hosts and host_resolver. Example:
from arango import ArangoClient
# OLD
client = ArangoClient(protocol='http', host='localhost', port=8529)
# NEW (single host)
client = ArangoClient(hosts='http://localhost:8529')
# NEW (multiple hosts with "roundrobin" or "random" host resolver)
client = ArangoClient(hosts=['http://host1:8529', 'http://host2:8529'], host_resolver='roundrobin')
Replaced properties protocol, host, port and base_url with hosts. Example:
from arango import ArangoClient
# OLD
client = ArangoClient(protocol='http', host='localhost', port=8529)
client.protocol
client.host
client.port
client.base_url
# NEW
client = ArangoClient(hosts='http://localhost:8529')
client.hosts
Breaking changes to transactions:
Database.begin_transaction.TransactionJob objects.TransactionDatabase.abort_transaction method.arango.exceptions.TransactionStateError.arango.exceptions.TransactionJobResultError.Breaking changes to AQLQueryCache (Database.aql.cache):
limit to max_results in method AQLQueryCache.configure.limit to max_results in the result of method AQLQueryCache.properties.Breaking changes to arango.request.Request:
read, write and command.data is no longer serialized.Removed method Database.ping (all it did was send a get API call which you can always do yourself).
Changed the abstract class for custom HTTP clients (arango.http.HTTPClient). See new examples of defining your HTTP clients here.
name).in_background).name_filter to method Database.foxx.run_tests.Your coding agent can read these notes before it upgrades. Set up the MCP server →