{"__v":1,"_id":"57fdd9284defec0e006422b0","category":{"project":"566c97797831040d003eb3bc","version":"566c97797831040d003eb3bf","_id":"57fdd8b86c9d141900d87bf1","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-10-12T06:31:20.229Z","from_sync":false,"order":7,"slug":"management-api","title":"Management API"},"parentDoc":null,"project":"566c97797831040d003eb3bc","user":"57167c775d90dc170060ef97","version":{"__v":10,"_id":"566c97797831040d003eb3bf","project":"566c97797831040d003eb3bc","createdAt":"2015-12-12T21:54:01.970Z","releaseDate":"2015-12-12T21:54:01.970Z","categories":["566c977a7831040d003eb3c0","5716338cb5af590e00a0ff1d","57163947893cbe0e002d75fc","57163f41b5af590e00a0ff35","57cd74d2873de50e00724a2f","57cd7de8baaee30e0093ecc3","57d6ada046dcc30e007dd15e","57fdc2b31646dc0e0010480a","57fdd8b86c9d141900d87bf1","58767da4d89ef20f003b6f1e"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-10-12T06:33:12.777Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":0,"body":"[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Our management API is currently in closed beta, so please contact us at support:::at:::graphenedb.com and we’ll provide you access.\",\n  \"title\": \"Information\"\n}\n[/block]\nWith this HTTP REST API you'll be able to perform and automate common operations on your databases:\n* DB instances: create, delete, empty, restart.\n* Backups: schedule, restore, export, import, manual snapshot.\n\nFollowing the guidelines below, clients can be developed in virtually any programming language. Tools such as cURL or httpie can be used to debug and develop on top of this API. Additionally, for those users interested in web applications, we have included CORS support. \n\n## Versioning\nA new version of this API will be released when there are backwards-incompatible changes. All clients are recommended to always stay current, so a upgrade guide will be provided, together with a changelog.\n \nThis the version 1.0 of the API, which means that the root path must be set to /v1. All new versions will be announced and the old ones will be kept unaffected for several months so that clients can be migrated. New features can be added to an existing version if there are no breaking changes. \n\n### API root\nOur only supported endpoint is https://api.graphenedb.com/v1\n\n## Live documentation\nOur API uses Swagger. It’s a de-facto standard for describing REST-based HTTP APIs that will make your life easier. Please find a live documentation and an embedded client to test our API here:\nhttps://api.graphenedb.com/swagger-ui/\n\n## API Reference\nThis API is organized around REST, which means that:\n* Resources can be accessed in a stateless, predictable manner.\n* Each resource is identified by a URL.\n  * Entities are identified by a UUID\n    * /databases/822b16bb0c0d4631ae30719cab74c352\n  * Collections of entities can be obtained by not specifying a UUID:\n    * /databases\n  * Nested subresources are used:\n    * /databases/822b16bb0c0d4631ae30719cab74c352/restart\n    * /databases/822b16bb0c0d4631ae30719cab74c352/backups/latest\n* The entities and collections handled by this API can be obtained using standard HTTP/1.1 methods.\n  * POST creates a new entity.\n  * GET reads an entity or collection.\n  * PUT updates an entity or executes a command on it.\n  * DELETE deletes an entity.\n* Each method can return HTTP success or error responses, always following the guidelines of RFC         2616, but with an additional meaning to our API:\n  * 200: Immediate, synchronous responses from GET, PUT.\n  * 201: New entities created via POST.\n  * 202: Costly operations from PUT, POST are asynchronous.\n  * 204: Empty content from PUT, DELETE.\n  * 400: The client provided a bad request payload (eg. format or schema issues) to a POST, PUT operation.\n  * 401: The client is unauthorized.\n  * 404: The resource path does not exist in the API.\n  * 405: The client used an undefined HTTP method on a resource.\n  * 409: There’s another operation in progress on the same resource.\n  * 500: there was an error on our side.\n  * 501: the operation hasn’t been  implemented yet.\n  * 502: the public API received an unexpected response from our internal infrastructure.\n  * 504: the public API didn’t receive a response from the internal infrastructure. \n* The standard encoding for all requests and responses is JSON\n* The accepted charset for all communications is UTF-8\n* All dates are expressed in compliance with RFC 7231\n  * Sun, 06 Nov 1994 08:49:37 GMT\n  \n### Async operations\nDepending on the database characteristics (size, instance type), some actions might take longer than others to complete. If the action is a costly one (eg. create a large instance, restart a db), the API will return a 202 Accepted together with an operation id. For immediate actions, the API returns a 2xx code.\n\n### User files\nIn some actions the user will be required to provide a valid file (eg. import a backup). In these cases, the user must provide an URL to a AWS S3 bucket. The file must be given all the required permissions so that our infrastructure can access it. In most cases, a random UUID and a public bucket will be enough.\n\n### Backup support\nSome operations are only available starting from Standard plans:\n* Scheduled daily backups\n* Manual backups (snapshots)\nAll plans include an export option which will generate a downloadable secure link to S3. The import can be applied by uploading the exported file to a valid S3 bucket (see above).\n\n### Payment method\nPlease make sure you have entered a valid payment method in GrapheneDB’s admin interface. Otherwise, the database creation operations will fail.\n\n### Authentication & Security\nThe only way to access the API is through HTTPS. The API is protected by our wildcard SSL certificate issued by Amazon.\nDownload the information about the root CAs [here](https://www.amazontrust.com/repository/).\n\nAuthentication is performed via a special header named *api_key * which must be set to a value provided by the admin web interface:\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [],\n      \"caption\": \"\"\n    }\n  ]\n}\n[/block]\n## Response Objects\n\n### Error\n4xx errors indicate that there is something wrong in the client request. For instance, the state of the resource is incompatible with the requested operation, or maybe the supplied JSON payload doesn’t match the expected schema. 5xx errors point to an unhandled failure in the server. In some cases, the message returned by the server is:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{ \\\"error\\\": \\\"string\\\" }\",\n      \"language\": \"text\",\n      \"name\": \"Error\"\n    }\n  ]\n}\n[/block]\n\nThe value of the string points to the actual cause. For security reasons, 500 errors include only a nonce (UUID) that should be provided to our support team.\n\n### Catalogs\n#### Version\nRepresents a supported Neo4j version.\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Request path\",\n    \"0-1\": \"/databases/versions\",\n    \"1-0\": \"version\",\n    \"1-1\": \"String (id)\",\n    \"1-2\": \"Version identifier\",\n    \"2-0\": \"description\",\n    \"2-1\": \"String (text)\",\n    \"2-2\": \"Version description\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]\n\n\n\n\n\n\n\n\n\n#### Plan\nGrapheneDB plans:\n* sandbox\n* developer0\n* s1\n* s2\n* p1\n* p2\n* p3\n* p4\n* cluster\n\n#### Regions\nThe supported EC2 regions (as of API version 1.0) are:\n* us-east-1\n* us-west-1\n* us-west-2\n* eu-west-1\n* eu-west-2\n* ap-northeast-1\n* ap-southeast-1\n* ap-southeast-2\n\n### Operation\nThe same API endpoint can return a sync or async operation, depending on the database size and plan. The “operation” object represents an asynchronous operation.\n\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Resource path\",\n    \"0-1\": \"/operations/{operationId}\",\n    \"1-0\": \"id\",\n    \"1-1\": \"String (uuid)\",\n    \"1-2\": \"Operation id\",\n    \"2-0\": \"databaseId\",\n    \"2-1\": \"String (uuid)\",\n    \"2-2\": \"Database id\",\n    \"3-0\": \"description\",\n    \"3-1\": \"String (text)\",\n    \"3-2\": \"Operation description\",\n    \"4-0\": \"stopped\",\n    \"4-1\": \"Boolean\",\n    \"4-2\": \"Is the database stopped?\",\n    \"5-0\": \"createdAt\",\n    \"5-1\": \"String (tstamp)\",\n    \"5-2\": \"UNIX epoch\",\n    \"6-0\": \"currentState\",\n    \"6-1\": \"String (enum)\",\n    \"6-2\": \"global operation status:\\n* started\\n* finished\\n* failed\",\n    \"7-0\": \"events\",\n    \"7-1\": \"Array\",\n    \"7-2\": \"Collection of events\"\n  },\n  \"cols\": 3,\n  \"rows\": 8\n}\n[/block]\n### Operation Event\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"state\",\n    \"0-1\": \"String (enum)\",\n    \"0-2\": \"Event identifier (human-readable). Examples:\\n* freezing-volume\\n* creating-snapshot\\n* copy-snapshot\\n* ...\",\n    \"1-0\": \"createdAt\",\n    \"1-1\": \"Integer (tstamp)\",\n    \"1-2\": \"UNIX epoch\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n\n### Database \n\n\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Resource path\",\n    \"0-1\": \"/databases/{databaseId}\",\n    \"1-0\": \"id\",\n    \"1-1\": \"String (uuid)\",\n    \"1-2\": \"Database identifier\",\n    \"2-0\": \"name\",\n    \"2-1\": \"String (text)\",\n    \"2-2\": \"Database name\",\n    \"3-0\": \"url\",\n    \"3-1\": \"String (url)\",\n    \"3-2\": \"Access the Neo4j REST API through this endpoint\",\n    \"4-0\": \"boltURL\",\n    \"4-1\": \"String (url)\",\n    \"4-2\": \"Endpoint for Bolt, new Neo4j binary protocol. Available as of Neo4j 3.0\",\n    \"5-0\": \"webAdminURL\",\n    \"5-1\": \"String\",\n    \"5-2\": \"Neo4j browser URL. Use Basic Auth with the same credentials as above. This is a REST endpoint.\",\n    \"6-0\": \"metricsURL\",\n    \"6-1\": \"String (url, optional)\",\n    \"7-0\": \"createdAt\",\n    \"7-1\": \"String (timestamp)\",\n    \"7-2\": \"db creation date, in ISO-8601\",\n    \"8-0\": \"version\",\n    \"8-1\": \"String (text)\",\n    \"8-2\": \"Full description of the installed Neo4j version\",\n    \"9-0\": \"currentSize\",\n    \"9-1\": \"Integer (long)\",\n    \"9-2\": \"Database size in bytes\",\n    \"10-0\": \"plugins\",\n    \"10-1\": \"Array (object)\",\n    \"10-2\": \"Installed extensions\",\n    \"11-0\": \"maxSize\",\n    \"11-1\": \"Integer (long)\",\n    \"11-2\": \"Maximum database size in bytes, depending on the plan\",\n    \"12-0\": \"plan\",\n    \"12-1\": \"Object\",\n    \"12-2\": \"Plan object\",\n    \"13-0\": \"awsRegion\",\n    \"13-1\": \"String\",\n    \"13-2\": \"EC2 region identifier\",\n    \"14-0\": \"counters\",\n    \"14-1\": \"Object (optional)\",\n    \"14-2\": \"Current number of nodes and relationships\",\n    \"15-0\": \"cluster\",\n    \"15-1\": \"Object (optional)\",\n    \"15-2\": \"Information about the cluster, in case the instance is a member\"\n  },\n  \"cols\": 3,\n  \"rows\": 17\n}\n[/block]\n### Plugin object\n\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"id\",\n    \"0-1\": \"String(uuid)\",\n    \"0-2\": \"Plugin UUID\",\n    \"1-0\": \"name\",\n    \"1-1\": \"String\",\n    \"1-2\": \"Plugin name\",\n    \"2-0\": \"enabled\",\n    \"2-1\": \"Boolean\",\n    \"2-2\": \"Is the extension enabled?\",\n    \"3-0\": \"isManaged\",\n    \"3-1\": \"Boolean\",\n    \"3-2\": \"Is it a managed extension?\",\n    \"4-0\": \"kind\",\n    \"4-1\": \"String(enum, optional)\",\n    \"4-2\": \"Extension type:\\n* storedprocedure\\n* extension\",\n    \"5-0\": \"createdAt\",\n    \"5-1\": \"String(date)\",\n    \"5-2\": \"ISO-8601 date with creation timestamp\"\n  },\n  \"cols\": 3,\n  \"rows\": 6\n}\n[/block]\n### Plan object\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"type\",\n    \"0-1\": \"String(enum)\",\n    \"0-2\": \"Plan type (see corresponding section)\",\n    \"1-0\": \"limits\",\n    \"1-1\": \"Object\",\n    \"1-2\": \"Plan limits\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n### Limits object\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Nodes\",\n    \"0-1\": \"Integer(long)\",\n    \"0-2\": \"Max no. of nodes in this plan\",\n    \"1-0\": \"Relationships\",\n    \"1-1\": \"Integer(long)\",\n    \"1-2\": \"Max no. of relationships in this plan\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n### Counters object\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Nodes\",\n    \"0-1\": \"Integer(long)\",\n    \"0-2\": \"Current no. of nodes\",\n    \"1-0\": \"Relationships\",\n    \"1-1\": \"Integer(long)\",\n    \"1-2\": \"Current no. of relationships\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n### Cluster object\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"masterURL\",\n    \"0-1\": \"String(url)\",\n    \"0-2\": \"URL of the master node\",\n    \"1-0\": \"nodes\",\n    \"1-1\": \"Array (serverId)\",\n    \"1-2\": \"Array of nodes\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n### ServerId object\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"serverId\",\n    \"0-1\": \"Integer\",\n    \"0-2\": \"Node identifier\"\n  },\n  \"cols\": 3,\n  \"rows\": 1\n}\n[/block]\n### Backup\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Resource path\",\n    \"0-1\": \"/databases/{databaseId}/backups/{backupId}\",\n    \"1-0\": \"id\",\n    \"1-1\": \"String(uuid)\",\n    \"1-2\": \"Backup identifier\",\n    \"2-0\": \"state\",\n    \"2-1\": \"String(enum)\",\n    \"2-2\": \"Backup status:\\n* done\\n* working\",\n    \"3-0\": \"origin\",\n    \"3-1\": \"String(enum)\",\n    \"3-2\": \"Backup origin:\\n* scheduled\\n* manual\\n* automatic\",\n    \"4-0\": \"timestamp\",\n    \"4-1\": \"String(date)\",\n    \"4-2\": \"ISO-8601 timestamp of the backup termination\",\n    \"5-0\": \"size\",\n    \"5-1\": \"Integer(long)\",\n    \"5-2\": \"Backup size in bytes\",\n    \"6-0\": \"duration\",\n    \"6-1\": \"Integer(long)\",\n    \"6-2\": \"Backup duration in seconds\",\n    \"7-0\": \"packageURL\",\n    \"7-1\": \"String(UrlPath)\",\n    \"7-2\": \"Path to append to the API root to produce a downloadable link with the package (graph.tar.gz)\",\n    \"8-0\": \"downloadable\",\n    \"8-1\": \"Boolean\",\n    \"8-2\": \"Can the user download the backup package?\"\n  },\n  \"cols\": 3,\n  \"rows\": 9\n}\n[/block]\n### Backup Schedule\n\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Resource path\",\n    \"0-1\": \"/databases/{databaseId}/backups/schedule\",\n    \"1-0\": \"time\",\n    \"1-1\": \"String(time)\",\n    \"1-2\": \"H:MM:SS\",\n    \"2-0\": \"timezone\",\n    \"2-1\": \"String(enum)\",\n    \"2-2\": \"Always set to UTC\",\n    \"3-0\": \"frequency\",\n    \"3-1\": \"String(enum)\",\n    \"3-2\": \"Always set to “daily”\"\n  },\n  \"cols\": 3,\n  \"rows\": 6\n}\n[/block]\n### Backup Package\n\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Resource path\",\n    \"0-1\": \"/databases/{databaseId}/backups/{backupId}/package\",\n    \"1-0\": \"backupUrl\",\n    \"1-1\": \"String(url)\",\n    \"1-2\": \"Secure one-time URL pointing to a volatile S3 bucket.\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n### Database Export\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Resource path\",\n    \"0-1\": \"/databases/{databaseId}/export\",\n    \"1-0\": \"url\",\n    \"1-1\": \"String(url)\",\n    \"1-2\": \"Secure one-time URL pointing to a volatile S3 bucket.\",\n    \"2-0\": \"size\",\n    \"2-1\": \"Integer\",\n    \"2-2\": \"Export file size (graphdb.zip)\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]\n## Request Objects\n\n### Database\n\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Resource path\",\n    \"0-1\": \"/databases\",\n    \"1-0\": \"name\",\n    \"1-1\": \"String\",\n    \"1-2\": \"Name of the database\",\n    \"2-0\": \"version\",\n    \"2-1\": \"String(id)\",\n    \"2-2\": \"Version identifier, eg. “v236”\",\n    \"3-0\": \"awsRegion\",\n    \"3-1\": \"String(id)\",\n    \"3-2\": \"EC2 valid region, eg. “eu-west-1”\",\n    \"4-0\": \"plan\",\n    \"4-1\": \"String(id)\",\n    \"4-2\": \"GrapheneDB plan. “cluster” is not accepted\"\n  },\n  \"cols\": 3,\n  \"rows\": 5\n}\n[/block]\n### Backup schedule\n\n\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Resource path\",\n    \"0-1\": \"/databases/{databaseId}/backups/schedule\",\n    \"1-0\": \"time\",\n    \"1-1\": \"String(time)\",\n    \"1-2\": \"H:MM:SS\",\n    \"2-0\": \"timezone\",\n    \"2-1\": \"String(enum)\",\n    \"2-2\": \"Always set to UTC\",\n    \"3-0\": \"frequency\",\n    \"3-1\": \"String(enum)\",\n    \"3-2\": \"Always set to “daily”\"\n  },\n  \"cols\": 3,\n  \"rows\": 4\n}\n[/block]\n### Database Import\n\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"Resource path\",\n    \"0-1\": \"/databases/{databaseId}/import\",\n    \"1-0\": \"url\",\n    \"1-1\": \"String(url)\",\n    \"1-2\": \"Link to the S3-stored graphdb.zip. Please give it permissions so our internal infrastructure can access it.\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]","excerpt":"","slug":"management-api","type":"basic","title":"GrapheneDB Management API"}

GrapheneDB Management API


[block:callout] { "type": "info", "body": "Our management API is currently in closed beta, so please contact us at support@graphenedb.com and we’ll provide you access.", "title": "Information" } [/block] With this HTTP REST API you'll be able to perform and automate common operations on your databases: * DB instances: create, delete, empty, restart. * Backups: schedule, restore, export, import, manual snapshot. Following the guidelines below, clients can be developed in virtually any programming language. Tools such as cURL or httpie can be used to debug and develop on top of this API. Additionally, for those users interested in web applications, we have included CORS support. ## Versioning A new version of this API will be released when there are backwards-incompatible changes. All clients are recommended to always stay current, so a upgrade guide will be provided, together with a changelog. This the version 1.0 of the API, which means that the root path must be set to /v1. All new versions will be announced and the old ones will be kept unaffected for several months so that clients can be migrated. New features can be added to an existing version if there are no breaking changes. ### API root Our only supported endpoint is https://api.graphenedb.com/v1 ## Live documentation Our API uses Swagger. It’s a de-facto standard for describing REST-based HTTP APIs that will make your life easier. Please find a live documentation and an embedded client to test our API here: https://api.graphenedb.com/swagger-ui/ ## API Reference This API is organized around REST, which means that: * Resources can be accessed in a stateless, predictable manner. * Each resource is identified by a URL. * Entities are identified by a UUID * /databases/822b16bb0c0d4631ae30719cab74c352 * Collections of entities can be obtained by not specifying a UUID: * /databases * Nested subresources are used: * /databases/822b16bb0c0d4631ae30719cab74c352/restart * /databases/822b16bb0c0d4631ae30719cab74c352/backups/latest * The entities and collections handled by this API can be obtained using standard HTTP/1.1 methods. * POST creates a new entity. * GET reads an entity or collection. * PUT updates an entity or executes a command on it. * DELETE deletes an entity. * Each method can return HTTP success or error responses, always following the guidelines of RFC 2616, but with an additional meaning to our API: * 200: Immediate, synchronous responses from GET, PUT. * 201: New entities created via POST. * 202: Costly operations from PUT, POST are asynchronous. * 204: Empty content from PUT, DELETE. * 400: The client provided a bad request payload (eg. format or schema issues) to a POST, PUT operation. * 401: The client is unauthorized. * 404: The resource path does not exist in the API. * 405: The client used an undefined HTTP method on a resource. * 409: There’s another operation in progress on the same resource. * 500: there was an error on our side. * 501: the operation hasn’t been implemented yet. * 502: the public API received an unexpected response from our internal infrastructure. * 504: the public API didn’t receive a response from the internal infrastructure. * The standard encoding for all requests and responses is JSON * The accepted charset for all communications is UTF-8 * All dates are expressed in compliance with RFC 7231 * Sun, 06 Nov 1994 08:49:37 GMT ### Async operations Depending on the database characteristics (size, instance type), some actions might take longer than others to complete. If the action is a costly one (eg. create a large instance, restart a db), the API will return a 202 Accepted together with an operation id. For immediate actions, the API returns a 2xx code. ### User files In some actions the user will be required to provide a valid file (eg. import a backup). In these cases, the user must provide an URL to a AWS S3 bucket. The file must be given all the required permissions so that our infrastructure can access it. In most cases, a random UUID and a public bucket will be enough. ### Backup support Some operations are only available starting from Standard plans: * Scheduled daily backups * Manual backups (snapshots) All plans include an export option which will generate a downloadable secure link to S3. The import can be applied by uploading the exported file to a valid S3 bucket (see above). ### Payment method Please make sure you have entered a valid payment method in GrapheneDB’s admin interface. Otherwise, the database creation operations will fail. ### Authentication & Security The only way to access the API is through HTTPS. The API is protected by our wildcard SSL certificate issued by Amazon. Download the information about the root CAs [here](https://www.amazontrust.com/repository/). Authentication is performed via a special header named *api_key * which must be set to a value provided by the admin web interface: [block:image] { "images": [ { "image": [], "caption": "" } ] } [/block] ## Response Objects ### Error 4xx errors indicate that there is something wrong in the client request. For instance, the state of the resource is incompatible with the requested operation, or maybe the supplied JSON payload doesn’t match the expected schema. 5xx errors point to an unhandled failure in the server. In some cases, the message returned by the server is: [block:code] { "codes": [ { "code": "{ \"error\": \"string\" }", "language": "text", "name": "Error" } ] } [/block] The value of the string points to the actual cause. For security reasons, 500 errors include only a nonce (UUID) that should be provided to our support team. ### Catalogs #### Version Represents a supported Neo4j version. [block:parameters] { "data": { "0-0": "Request path", "0-1": "/databases/versions", "1-0": "version", "1-1": "String (id)", "1-2": "Version identifier", "2-0": "description", "2-1": "String (text)", "2-2": "Version description" }, "cols": 3, "rows": 3 } [/block] #### Plan GrapheneDB plans: * sandbox * developer0 * s1 * s2 * p1 * p2 * p3 * p4 * cluster #### Regions The supported EC2 regions (as of API version 1.0) are: * us-east-1 * us-west-1 * us-west-2 * eu-west-1 * eu-west-2 * ap-northeast-1 * ap-southeast-1 * ap-southeast-2 ### Operation The same API endpoint can return a sync or async operation, depending on the database size and plan. The “operation” object represents an asynchronous operation. [block:parameters] { "data": { "0-0": "Resource path", "0-1": "/operations/{operationId}", "1-0": "id", "1-1": "String (uuid)", "1-2": "Operation id", "2-0": "databaseId", "2-1": "String (uuid)", "2-2": "Database id", "3-0": "description", "3-1": "String (text)", "3-2": "Operation description", "4-0": "stopped", "4-1": "Boolean", "4-2": "Is the database stopped?", "5-0": "createdAt", "5-1": "String (tstamp)", "5-2": "UNIX epoch", "6-0": "currentState", "6-1": "String (enum)", "6-2": "global operation status:\n* started\n* finished\n* failed", "7-0": "events", "7-1": "Array", "7-2": "Collection of events" }, "cols": 3, "rows": 8 } [/block] ### Operation Event [block:parameters] { "data": { "0-0": "state", "0-1": "String (enum)", "0-2": "Event identifier (human-readable). Examples:\n* freezing-volume\n* creating-snapshot\n* copy-snapshot\n* ...", "1-0": "createdAt", "1-1": "Integer (tstamp)", "1-2": "UNIX epoch" }, "cols": 3, "rows": 2 } [/block] ### Database [block:parameters] { "data": { "0-0": "Resource path", "0-1": "/databases/{databaseId}", "1-0": "id", "1-1": "String (uuid)", "1-2": "Database identifier", "2-0": "name", "2-1": "String (text)", "2-2": "Database name", "3-0": "url", "3-1": "String (url)", "3-2": "Access the Neo4j REST API through this endpoint", "4-0": "boltURL", "4-1": "String (url)", "4-2": "Endpoint for Bolt, new Neo4j binary protocol. Available as of Neo4j 3.0", "5-0": "webAdminURL", "5-1": "String", "5-2": "Neo4j browser URL. Use Basic Auth with the same credentials as above. This is a REST endpoint.", "6-0": "metricsURL", "6-1": "String (url, optional)", "7-0": "createdAt", "7-1": "String (timestamp)", "7-2": "db creation date, in ISO-8601", "8-0": "version", "8-1": "String (text)", "8-2": "Full description of the installed Neo4j version", "9-0": "currentSize", "9-1": "Integer (long)", "9-2": "Database size in bytes", "10-0": "plugins", "10-1": "Array (object)", "10-2": "Installed extensions", "11-0": "maxSize", "11-1": "Integer (long)", "11-2": "Maximum database size in bytes, depending on the plan", "12-0": "plan", "12-1": "Object", "12-2": "Plan object", "13-0": "awsRegion", "13-1": "String", "13-2": "EC2 region identifier", "14-0": "counters", "14-1": "Object (optional)", "14-2": "Current number of nodes and relationships", "15-0": "cluster", "15-1": "Object (optional)", "15-2": "Information about the cluster, in case the instance is a member" }, "cols": 3, "rows": 17 } [/block] ### Plugin object [block:parameters] { "data": { "0-0": "id", "0-1": "String(uuid)", "0-2": "Plugin UUID", "1-0": "name", "1-1": "String", "1-2": "Plugin name", "2-0": "enabled", "2-1": "Boolean", "2-2": "Is the extension enabled?", "3-0": "isManaged", "3-1": "Boolean", "3-2": "Is it a managed extension?", "4-0": "kind", "4-1": "String(enum, optional)", "4-2": "Extension type:\n* storedprocedure\n* extension", "5-0": "createdAt", "5-1": "String(date)", "5-2": "ISO-8601 date with creation timestamp" }, "cols": 3, "rows": 6 } [/block] ### Plan object [block:parameters] { "data": { "0-0": "type", "0-1": "String(enum)", "0-2": "Plan type (see corresponding section)", "1-0": "limits", "1-1": "Object", "1-2": "Plan limits" }, "cols": 3, "rows": 2 } [/block] ### Limits object [block:parameters] { "data": { "0-0": "Nodes", "0-1": "Integer(long)", "0-2": "Max no. of nodes in this plan", "1-0": "Relationships", "1-1": "Integer(long)", "1-2": "Max no. of relationships in this plan" }, "cols": 3, "rows": 2 } [/block] ### Counters object [block:parameters] { "data": { "0-0": "Nodes", "0-1": "Integer(long)", "0-2": "Current no. of nodes", "1-0": "Relationships", "1-1": "Integer(long)", "1-2": "Current no. of relationships" }, "cols": 3, "rows": 2 } [/block] ### Cluster object [block:parameters] { "data": { "0-0": "masterURL", "0-1": "String(url)", "0-2": "URL of the master node", "1-0": "nodes", "1-1": "Array (serverId)", "1-2": "Array of nodes" }, "cols": 3, "rows": 2 } [/block] ### ServerId object [block:parameters] { "data": { "0-0": "serverId", "0-1": "Integer", "0-2": "Node identifier" }, "cols": 3, "rows": 1 } [/block] ### Backup [block:parameters] { "data": { "0-0": "Resource path", "0-1": "/databases/{databaseId}/backups/{backupId}", "1-0": "id", "1-1": "String(uuid)", "1-2": "Backup identifier", "2-0": "state", "2-1": "String(enum)", "2-2": "Backup status:\n* done\n* working", "3-0": "origin", "3-1": "String(enum)", "3-2": "Backup origin:\n* scheduled\n* manual\n* automatic", "4-0": "timestamp", "4-1": "String(date)", "4-2": "ISO-8601 timestamp of the backup termination", "5-0": "size", "5-1": "Integer(long)", "5-2": "Backup size in bytes", "6-0": "duration", "6-1": "Integer(long)", "6-2": "Backup duration in seconds", "7-0": "packageURL", "7-1": "String(UrlPath)", "7-2": "Path to append to the API root to produce a downloadable link with the package (graph.tar.gz)", "8-0": "downloadable", "8-1": "Boolean", "8-2": "Can the user download the backup package?" }, "cols": 3, "rows": 9 } [/block] ### Backup Schedule [block:parameters] { "data": { "0-0": "Resource path", "0-1": "/databases/{databaseId}/backups/schedule", "1-0": "time", "1-1": "String(time)", "1-2": "H:MM:SS", "2-0": "timezone", "2-1": "String(enum)", "2-2": "Always set to UTC", "3-0": "frequency", "3-1": "String(enum)", "3-2": "Always set to “daily”" }, "cols": 3, "rows": 6 } [/block] ### Backup Package [block:parameters] { "data": { "0-0": "Resource path", "0-1": "/databases/{databaseId}/backups/{backupId}/package", "1-0": "backupUrl", "1-1": "String(url)", "1-2": "Secure one-time URL pointing to a volatile S3 bucket." }, "cols": 3, "rows": 2 } [/block] ### Database Export [block:parameters] { "data": { "0-0": "Resource path", "0-1": "/databases/{databaseId}/export", "1-0": "url", "1-1": "String(url)", "1-2": "Secure one-time URL pointing to a volatile S3 bucket.", "2-0": "size", "2-1": "Integer", "2-2": "Export file size (graphdb.zip)" }, "cols": 3, "rows": 3 } [/block] ## Request Objects ### Database [block:parameters] { "data": { "0-0": "Resource path", "0-1": "/databases", "1-0": "name", "1-1": "String", "1-2": "Name of the database", "2-0": "version", "2-1": "String(id)", "2-2": "Version identifier, eg. “v236”", "3-0": "awsRegion", "3-1": "String(id)", "3-2": "EC2 valid region, eg. “eu-west-1”", "4-0": "plan", "4-1": "String(id)", "4-2": "GrapheneDB plan. “cluster” is not accepted" }, "cols": 3, "rows": 5 } [/block] ### Backup schedule [block:parameters] { "data": { "0-0": "Resource path", "0-1": "/databases/{databaseId}/backups/schedule", "1-0": "time", "1-1": "String(time)", "1-2": "H:MM:SS", "2-0": "timezone", "2-1": "String(enum)", "2-2": "Always set to UTC", "3-0": "frequency", "3-1": "String(enum)", "3-2": "Always set to “daily”" }, "cols": 3, "rows": 4 } [/block] ### Database Import [block:parameters] { "data": { "0-0": "Resource path", "0-1": "/databases/{databaseId}/import", "1-0": "url", "1-1": "String(url)", "1-2": "Link to the S3-stored graphdb.zip. Please give it permissions so our internal infrastructure can access it." }, "cols": 3, "rows": 2 } [/block]