@startDocuBlock get_api_database_new @brief creates a new database @RESTHEADER{POST /_api/database, Create database, createDatabase} @RESTBODYPARAM{name,string,required,string} Has to contain a valid database name. @RESTBODYPARAM{users,array,optional,get_api_database_new_USERS} Has to be an array of user objects to initially create for the new database. User information will not be changed for users that already exist. If *users* is not specified or does not contain any users, a default user *root* will be created with an empty string password. This ensures that the new database will be accessible after it is created. Each user object can contain the following attributes: @RESTSTRUCT{username,get_api_database_new_USERS,string,required,string} Login name of the user to be created @RESTSTRUCT{passwd,get_api_database_new_USERS,string,required,string} The user password as a string. If not specified, it will default to an empty string. @RESTSTRUCT{active,get_api_database_new_USERS,boolean,required,} A flag indicating whether the user account should be activated or not. The default value is *true*. If set to *false*, the user won't be able to log into the database. @RESTSTRUCT{extra,get_api_database_new_USERS,object,optional,} A JSON object with extra user information. The data contained in *extra* will be stored for the user but not be interpreted further by ArangoDB. @RESTDESCRIPTION Creates a new database The response is a JSON object with the attribute *result* set to *true*. **Note**: creating a new database is only possible from within the *_system* database. @RESTRETURNCODES @RESTRETURNCODE{201} is returned if the database was created successfully. @RESTRETURNCODE{400} is returned if the request parameters are invalid or if a database with the specified name already exists. @RESTRETURNCODE{403} is returned if the request was not executed in the *_system* database. @RESTRETURNCODE{409} is returned if a database with the specified name already exists. @EXAMPLES Creating a database named *example*. @EXAMPLE_ARANGOSH_RUN{RestDatabaseCreate} var url = "/_api/database"; var name = "example"; try { db._dropDatabase(name); } catch (err) { } var data = { name: name }; var response = logCurlRequest('POST', url, data); db._dropDatabase(name); assert(response.code === 201); logJsonResponse(response); @END_EXAMPLE_ARANGOSH_RUN Creating a database named *mydb* with two users. @EXAMPLE_ARANGOSH_RUN{RestDatabaseCreateUsers} var url = "/_api/database"; var name = "mydb"; try { db._dropDatabase(name); } catch (err) { } var data = { name: name, users: [ { username : "admin", passwd : "secret", active: true }, { username : "tester", passwd : "test001", active: false } ] }; var response = logCurlRequest('POST', url, data); db._dropDatabase(name); assert(response.code === 201); logJsonResponse(response); @END_EXAMPLE_ARANGOSH_RUN @endDocuBlock