Loading TOC...

POST /v1/transactions


Create a multi-statement transaction. The resulting transaction id may be used in the txid request parameter of subsequent requests to force evaluation to take place in the context of the created transaction.

URL Parameters
name A symbolic name for the transaction. Default: client-txn.
timeLimit The transaction time limit to apply to this transaction, in seconds. Default: The request timeout configured for the App Server. If the transaction is not committed or rolled back within this time limit, the transaction is automatically rolled back. You may not set the limit to a value greater than the default request timeout configured for the App Server. For details, see xdmp:set-transaction-time-limit.
database? Perform this operation on the named content database instead of the default content database associated with the REST API instance. Using an alternative database requires the "eval-in" privilege; for details, see Security Requirements in the REST Application Developer's Guide.
Response Headers
Location Upon success, the Location header contains a transaction URI of the form /transactions/txid. Use the txid portion in the txid parameter or URI of subsequent requests.


Upon success, MarkLogic Server returns a status 303 (See Created Transaction) and returns the transaction id in the Location response header.

Required Privileges

This operation requires the rest-writer role, or the following privileges:



Usage Notes

By default, each REST request is serviced in a single transaction. The transaction is committed (or rolled back, in the case of error) automatically before the response sent. Use this request to create a transaction that can service multiple requests. Pass the transaction id in the txid parameter of subsequent requests to service a request in the created transaction.

Transactions created in this way should be explicitly committed or rolled back using the /transactions service. Transactions which are not explicitly committed are rolled back when the session or request times out.

For more details, see Understanding Transactions in MarkLogic Server in the Application Developer's Guide and Creating a Transaction in the REST Application Developer's Guide.


$ curl --anyauth --user user:password -X POST -d "" -i \
    -H "Content-type: text/plain" \

==> A transaction is created. MarkLogic Server returns the 
    transaction ID is returned in the Location header of the
    response. Use the contents of the Location header as the
    value of the "txid" parameter in other methods. The transaction
    ID is of the form /transactions/transactionid. For
    example, the following headers are returned:

Server: MarkLogic
Content-Type: text/plain; charset=UTF-8
Content-Length: 31
Connection: close

HTTP/1.1 303 See Created Transaction
Location: /transactions/3148548124558550433
Server: MarkLogic
Content-Length: 0
Connection: close


  • The example should be more like this: curl -i -H 'Content-Type: text/plain' -d '' -X POST --anyauth --user q:q http://localhost:8004/v1/transactions The content type is important, and so is the /v1 prefix.
Powered by MarkLogic Server 7.0-4.1 and rundmc | Terms of Use | Privacy Policy