Download OpenAPI specification:
Edge Server is a REST and sync server for Couchbase Mobile databases.
Retrieve information about the database.
| db required | string Example: db1 The name of the database to run the operation against. |
{- "db_name": "db",
- "update_seq": 123456,
- "committed_update_seq": 123456,
- "instance_start_time": 1644600082279583,
- "state": "Online",
- "server_uuid": "995618a6a6cc9ac79731bd13240e19b5"
}| db required | string Example: db1 The name of the database to run the operation against. |
| expires | integer A timestamp in UNIX seconds indicating when a doc should expire. The document will expire and be automatically purged at this time. If ttl is also specified the lower of the resulting timestamps is used. |
| ttl | integer The time-to-live (in seconds) for the document. The document will expire and be automatically purged after this time. If expires is also specified the lower of the resulting timestamps is used. |
| property name* additional property | any |
{ }{- "id": "string",
- "ok": true,
- "rev": "string",
- "expires": 0
}Returns all documents in the database based on the specified parameters.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| descending | boolean Default: false Reverses sort order (descending docID) |
| include_docs | boolean Include the body associated with each document. |
| keys | Array of strings An array of document ID strings to filter by. |
| limit | number This limits the number of result rows returned. Using a value of |
| skip | number Offset into the result rows returned. Combined with |
| startkey | string Return records starting with the specified key. |
| endkey | string Stop returning records when this key is reached. |
{- "rows": [
- {
- "key": "string",
- "id": "string",
- "value": {
- "rev": "string",
- "cv": "string"
}
}
], - "total_rows": 0,
- "update_seq": 0
}Returns all documents in the database based on the specified parameters.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| descending | boolean Default: false Reverses sort order (descending docID) |
| include_docs | boolean Default: true Adds body of each doc |
| keys | Array of strings List of docIDs to limit results to |
| limit | number Limits number of results |
| skip | number Offset into results |
| startkey | string docID to start at |
| endkey | string docID to end at (max value, or min if descending) |
{- "descending": false,
- "include_docs": true,
- "keys": [
- "string"
], - "limit": 0,
- "skip": 0,
- "startkey": "string",
- "endkey": "string"
}{- "rows": [
- {
- "key": "string",
- "id": "string",
- "value": {
- "rev": "string",
- "cv": "string"
}
}
], - "total_rows": 0,
- "update_seq": 0
}| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| include_docs | boolean Include the body associated with each document. |
| keys | Array of strings An array of document ID strings to filter by. |
| startkey | string Return records starting with the specified key. |
| endkey | string Stop returning records when this key is reached. |
| limit | number This limits the number of result rows returned. Using a value of |
{- "error": "string",
- "reason": "string"
}This will allow multiple documented to be created, updated or deleted in bulk.
To create a new document, simply add the body in an object under docs. A doc ID will be generated by Edge Server unless _id is specified.
To update an existing document, provide the document ID (_id) and revision ID (_rev) as well as the new body values.
To delete an existing document, provide the document ID (_id), revision ID (_rev), and set the deletion flag (_deleted) to true.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| new_edits | boolean Default: true This controls whether to assign new revision identifiers to new edits ( |
required | Array of objects |
{- "new_edits": true,
- "docs": [
- {
- "_id": "FooBar",
- "foo": "bar"
}, - {
- "_id": "AliceSettings",
- "_rev": "5-832a6db48ed130adadede928aee54576",
- "FailedLoginAttempts": 7
}, - {
- "_id": "BobSettings",
- "_rev": "1-fa76ba41ee5fdfee1b91fc478ed09e59",
- "_deleted": true
}
]
}[- {
- "id": "FooBar",
- "rev": "1-cd809becc169215072fd567eebd8b8de"
}, - {
- "id": "AliceSettings",
- "rev": "6-b3e8dcf825b71ccee112f3572ec4323c"
}, - {
- "id": "BobSettings",
- "rev": "2-5145e1086bb8d1d71a531e9f6b543c58"
}
]Retrieve a document from the database by its doc ID.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| docid required | string Example: doc1 The document ID to run the operation against. |
| rev | string Example: rev=2-5145e1086bb8d1d71a531e9f6b543c58 The document revision to target. |
| revs_from | Array of strings Trim the revision history to stop at the first revision in the provided list. If no match is found, the revisions will be trimmed to the |
| revs_limit | integer Maximum amount of revisions to return for each document. |
{- "FailedLoginAttempts": 5,
- "Friends": [
- "Bob"
], - "_id": "AliceSettings",
- "_rev": "1-64d4a1f179db5c1848fe52967b47c166",
- "_cv": "1@src"
}This will upsert a document meaning if it does not exist, then it will be created. Otherwise a new revision will be made for the existing document. A revision ID must be provided if targetting an existing document.
A document ID must be specified for this endpoint. To let Edge Server generate the ID, use the POST /{db}/ endpoint.
If a document does exist, then replace the document content with the request body. This means unspecified fields will be removed in the new revision.
The maximum size for a document is 20MB.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| docid required | string Example: doc1 The document ID to run the operation against. |
| roundtrip | boolean Block until document has been received by change cache |
| rev | string Example: rev=2-5145e1086bb8d1d71a531e9f6b543c58 The document revision to target. |
| expires | integer A timestamp in UNIX seconds indicating when a doc should expire. The document will expire and be automatically purged at this time. If ttl is also specified the lower of the resulting timestamps is used. |
| ttl | integer The time-to-live (in seconds) for the document. The document will expire and be automatically purged after this time. If expires is also specified the lower of the resulting timestamps is used. |
| If-Match | string The revision ID to target. |
| _id required | string document ID |
| _rev required | string revision ID of the document |
| property name* additional property | any |
{- "_id": "string",
- "_rev": "string"
}{- "id": "string",
- "ok": true,
- "rev": "string",
- "expires": 0
}Delete a document from the database. A new revision is created so the database can track the deletion in synchronized copies.
A revision ID either in the header or on the query parameters is required.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| docid required | string Example: doc1 The document ID to run the operation against. |
| rev | string Example: rev=2-5145e1086bb8d1d71a531e9f6b543c58 The document revision to target. |
| expires | integer A timestamp in UNIX seconds indicating when a doc should expire. The document will expire and be automatically purged at this time. If ttl is also specified the lower of the resulting timestamps is used. |
| ttl | integer The time-to-live (in seconds) for the document. The document will expire and be automatically purged after this time. If expires is also specified the lower of the resulting timestamps is used. |
| If-Match | string The revision ID to target. |
{- "id": "string",
- "ok": true,
- "rev": "string",
- "expires": 0
}Return a status code based on if the document exists or not.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| docid required | string Example: doc1 The document ID to run the operation against. |
| rev | string Example: rev=2-5145e1086bb8d1d71a531e9f6b543c58 The document revision to target. |
| revs_from | Array of strings Trim the revision history to stop at the first revision in the provided list. If no match is found, the revisions will be trimmed to the |
| revs_limit | integer Maximum amount of revisions to return for each document. |
{- "error": "string",
- "reason": "string"
}This request retrieves a file attachment or sub-document associated with the document.
The raw data of the associated attachment is returned (just as if you were accessing a static file). The Content-Type response header is the same content type set when the document attachment was added to the database. The Content-Disposition response header will be set if the content type is considered unsafe to display in a browser (unless overridden by by database config option serve_insecure_attachment_types) which will force the attachment to be downloaded.
If the meta query parameter is set then the response will be in JSON with the additional metadata tags.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| docid required | string Example: doc1 The document ID to run the operation against. |
| key required | string If key identifies a document property that's a blob, the response will be the contents of the blob. Otherwise, the property value is returned as JSON. For compatibility with CouchDB, if key doesn't exist but _attachments/key does, the response will be a redirect to the latter path. |
| rev | string Example: rev=2-5145e1086bb8d1d71a531e9f6b543c58 The document revision to target. |
{ }This request adds or updates an attachment associated with the document. If the document does not exist, it will be created and the attachment will be added to it.
If the attachment already exists, the data of the existing attachment will be replaced in the new revision.
The maximum content size of an attachment is 20MB. The Content-Type header of the request specifies the content type of the attachment.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| docid required | string Example: doc1 The document ID to run the operation against. |
| key required | string If key identifies a document property that's a blob, the response will be the contents of the blob. Otherwise, the property value is returned as JSON. For compatibility with CouchDB, if key doesn't exist but _attachments/key does, the response will be a redirect to the latter path. |
| rev | string The existing document revision ID to modify. Required only when modifying an existing document. |
| Content-Type | string Default: application/octet-stream The content type of the attachment. |
The attachment data
The content to store in the body
{- "id": "string",
- "ok": true,
- "rev": "string",
- "expires": 0
}This request deletes an attachment associated with the document.
If the attachment exists, the attachment will be removed from the document.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| docid required | string Example: doc1 The document ID to run the operation against. |
| key required | string If key identifies a document property that's a blob, the response will be the contents of the blob. Otherwise, the property value is returned as JSON. For compatibility with CouchDB, if key doesn't exist but _attachments/key does, the response will be a redirect to the latter path. |
| rev | string The existing document revision ID to modify. |
{- "id": "string",
- "ok": true,
- "rev": "string",
- "expires": 0
}Instruct Edge Server to initiate replication/sync with another server, i.e. Sync Gateway.
Not the same as /db/_blipsync, which is for clients initiating replication with the Edge Server.
| source | string The source database name or URL |
| target | string The destination database name or URL |
| bidirectional | boolean Default: false Set to |
| continuous | boolean Default: false Set to |
Array of strings | |
object (AuthConfig) Configuration for authentication to a remote server. Either for replication, or a proxy. | |
object (ProxyConfig) Configuration of a proxy to use during replication. |
{- "source": "string",
- "target": "string",
- "bidirectional": false,
- "continuous": false,
- "collections": [
- "string"
], - "auth": {
- "user": "string",
- "password": "string",
- "session_cookie": "string",
- "openid_token": "string",
- "tls_client_cert": "string",
- "tls_client_cert_key": "string"
}, - "proxy": {
- "type": "HTTP",
- "host": "string",
- "port": 0,
- "auth": {
- "user": "string",
- "password": "string",
- "session_cookie": "string",
- "openid_token": "string",
- "tls_client_cert": "string",
- "tls_client_cert_key": "string"
}
}
}{- "error": "string",
- "reason": "string"
}This request retrieves a sorted list of changes made to documents in the database, in time order of application. Each document appears at most once, ordered by its most recent change, regardless of how many times it has been changed.
This request can be used to listen for update and modifications to the database for post processing or synchronization. A continuously connected changes feed is a reasonable approach for generating a real-time log for most applications.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| limit | integer Maximum number of changes to return. |
| since | string Starts the results from the change immediately after the given sequence ID. Sequence IDs should be considered opaque; they come from the last_seq property of a prior response. |
| style | string Default: "main_only" Enum: "main_only" "all_docs" Controls whether to return the current winning revision ( |
| active_only | boolean Default: "false" Set true to exclude deleted documents and notifications for documents the user no longer has access to from the changes feed. |
| include_docs | boolean Include the body associated with each document. |
| revocations | boolean If true, revocation messages will be sent on the changes feed. |
| filter | string Enum: "sync_gateway/bychannel" "_doc_ids" Set a filter to either filter by channels or document IDs. |
| channels | string A comma-separated list of channel names to filter the response to only the channels specified. To use this option, the |
| doc_ids | Array of strings A valid JSON array of document IDs to filter the documents in the response to only the documents specified. To use this option, the |
| heartbeat | integer >= 25000 Default: 0 The interval (in milliseconds) to send an empty line (CRLF) in the response. This is to help prevent gateways from deciding the socket is idle and therefore closing it. This is only applicable to |
| timeout | integer [ 0 .. 900000 ] Default: 300000 This is the maximum period (in milliseconds) to wait for a change before the response is sent, even if there are no results. This is only applicable for |
| feed | string Default: "normal" Enum: "longpoll" "continuous" "sse" The type of changes feed to use. |
{- "results": [
- {
- "seq": 0,
- "id": "string",
- "changes": [
- {
- "rev": "string"
}
]
}
], - "last_seq": "string"
}This request retrieves a sorted list of changes made to documents in the database, in time order of application. Each document appears at most once, ordered by its most recent change, regardless of how many times it has been changed.
This request can be used to listen for update and modifications to the database for post processing or synchronization. A continuously connected changes feed is a reasonable approach for generating a real-time log for most applications.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| limit | string Maximum number of changes to return. |
| style | string Controls whether to return the current winning revision ( |
| active_only | string Set true to exclude deleted documents and notifications for documents the user no longer has access to from the changes feed. |
| include_docs | boolean Include the body associated with each document. |
| revocations | string If true, revocation messages will be sent on the changes feed. |
| filter | string Set a filter to either filter by channels or document IDs. |
| channels | string A comma-separated list of channel names to filter the response to only the channels specified. To use this option, the |
| doc_ids | string A valid JSON array of document IDs to filter the documents in the response to only the documents specified. To use this option, the |
| heartbeat | string The interval (in milliseconds) to send an empty line (CRLF) in the response. This is to help prevent gateways from deciding the socket is idle and therefore closing it. This is only applicable to |
| timeout | string This is the maximum period (in milliseconds) to wait for a change before the response is sent, even if there are no results. This is only applicable for |
| feed | string The type of changes feed to use. |
{- "limit": "string",
- "style": "string",
- "active_only": "string",
- "include_docs": true,
- "revocations": "string",
- "filter": "string",
- "channels": "string",
- "doc_ids": "string",
- "heartbeat": "string",
- "timeout": "string",
- "feed": "string"
}{- "results": [
- {
- "seq": 0,
- "id": "string",
- "changes": [
- {
- "rev": "string"
}
]
}
], - "last_seq": "string"
}-| Run an ad-hoc query. Only possible when the database's enable_adhoc_queries property is true.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| query required | string SQL++ Query string |
object Query parameters |
{- "query": "string",
- "parameters": { }
}[- { }
]Run a pre-defined query as named by the database configuration's query object. If the query has parameters, they should be passed as query parameters like ?key=value.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| name required | string Name of the query as defined in the database configuration. |
[- { }
]Run a pre-defined query as named by the database configuration's query object. If the query has parameters, they should be passed as JSON object in the request body.
| keyspace required | string Examples:
The keyspace to run the operation against. A keyspace is a dot-separated string, comprised of a database name, and optionally a named scope and collection. |
| name required | string Name of the query as defined in the database configuration. |
| property name* additional property | any |
{ }[- { }
]