A newer version of this documentation is available.

View Latest
March 16, 2025
+ 12

Description of the Sync Gateway Public REST API, alternative representation as a static page

Resources

This resources section groups together the available API operations under functional categories.

Attachment

Work with attachments

Get Specific Attachment

GET /{db}/{doc}/{attachment}
Description

This request retrieves a file attachment 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.

To remove an attachment from a document, simply update the _attachments dictionary of the document in the PUT /{db}/{id} request. From then on, the attachment will not be replicated but will still reside in the Couchbase Server bucket (see open ticket #1648).

Parameters
Type Name Description Schema

Path

attachment
required

Attachment name. This value must be URL encoded. For example, if the attachment name is blob_/avatar, the path component passed to the URL should be blob_%2Favatar (tested with URLEncoder).

string

Path

db
required

Database name

string

Path

doc
required

Document ID

string

Query

rev
optional

Revision identifier of the parent revision the new one should replace. (Not used when creating a new document.)

string

Responses
HTTP Code Description Schema

200

The message body contains the attachment, in the format specified in the Content-Type header.

string (binary)

304

Not Modified, the attachment wasn’t modified if ETag equals the If-None-Match header

No Content

404

Not Found, the specified database, document or attachment was not found.

No Content

Create or Update Specific Attachment

PUT /{db}/{doc}/{attachment}
Description

This request adds or updates the supplied request content as an attachment to the specified document, the maximum content size of an attachment is 20MB. The attachment name must be a URL-encoded string (the file name). You must also supply either the rev query parameter or the If-Match HTTP header for validation, and the Content-Type headers (to set the attachment content type).

When uploading an attachment using an existing attachment name, the corresponding stored content of the database will be updated. Because you must supply the revision information to add an attachment to the document, this serves as validation to update the existing attachment.

Uploading an attachment updates the corresponding document revision. Revisions are tracked for the parent document, not individual attachments.

To remove an attachment from a document, simply update the _attachments dictionary of the document in the PUT /{db}/{id} request. From then on, the attachment will not be replicated but will still reside in the Couchbase Server bucket (see open ticket #1648).

Parameters
Type Name Description Schema

Header

Content-Type
optional

Attachment Content-Type

string

Path

attachment
required

Attachment name. This value must be URL encoded. For example, if the attachment name is blob_/avatar, the path component passed to the URL should be blob_%2Favatar (tested with URLEncoder).

string

Path

db
required

Database name

string

Path

doc
required

Document ID

string

Query

rev
optional

Revision identifier of the parent revision the new one should replace. (Not used when creating a new document.)

string

Body

body
optional

The request body

string (binary)

Responses
HTTP Code Description Schema

200

Operation completed successfully

Success

409

Conflict, the document revision wasn’t specified or it’s not the latest.

No Content

Authentication

Work with authentication

Get Facebook Authenticated Session

POST /{db}/_facebook
Description

Sync Gateway allows users to authenticate using a Facebook account.

Your application is responsible for generating a Facebook token; this generally needs to be done by running the Facebook login flow inside a web-view and capturing the generated token. This endpoint can be used to check the validity of the access token. To allow Facebook Login with Sync Gateway, it must be explicitly enabled in the Sync Gateway configuration file by setting the facebook.register property to true.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Body

body
optional

Request body

body

body

Name Description Schema

access_token
optional

The access token for the user to authenticate

string

Responses
HTTP Code Description Schema

200

Session successfully created. The Set-Cookie response header contains the session credentials.

Session

401

Facebook verification server status <Facebook status code>

No Content

502

Invalid response from Facebook verifier

No Content

Get Google Authenticated Session

POST /{db}/_google
Description

Sync Gateway allows users to authenticate using a Google account.

Your application is responsible for generating a Google token; this generally needs to be done by running the Google login flow inside a web-view and capturing the generated token. This endpoint can be used to check the validity of the access token. To allow Google Login with Sync Gateway, it must be explicitly enabled in the Sync Gateway configuration file by setting the google.register property to true and setting the google.app_client_id property with a Google app client ID.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Body

body
optional

Request body

body

body

Name Description Schema

id_token
optional

The access token for the user to authenticate

string

Responses
HTTP Code Description Schema

200

Session successfully created. The Set-Cookie response header contains the session credentials.

Session

401

Returns the Google response’s ErrorDescription

No Content

502

Invalid response from Google token verifier

No Content

OpenID Connect Authentication.

GET /{db}/_oidc
Description

Called by clients to initiate the OIDC Authorization Code flow.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Query

offline
optional

When true, requests a refresh token from the OP. Sets access_type=offline and prompt=consent on the redirect to the OP. Secure clients should set offline=true and persist the returned refresh token to secure storage.

boolean

Query

provider
optional

OpenId Connect provider to be used for authentication, from the list of providers defined in the Sync Gateway Config. If not specified, will attempt to authenticate using the default provider.

string

Responses
HTTP Code Description Schema

302

Redirect to the requested OpenID Connect provider for authentication. Redirect link is returned in the Location header.

No Content

400

Bad request. Reason is returned as "OpenID Connect not configured for database default". If a provider was specified in the request, that provider was not defined in the Sync Gateway config. If no provider was specified, OpenID Connect is not configured in the Sync Gateway config.

No Content

500

Server Error. Sync Gateway is unable to connect and validate the OpenID Connect provider requested.

No Content

Get OIDC Callback.

GET /{db}/_oidc_callback
Description

Sync Gateway callback URL that clients are redirected to by the OpenID Connect provider.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Query

code
required

OpenID Connect Authorization code.

string

Query

provider
optional

OpenId Connect provider to be used for authentication, from the list of providers defined in the Sync Gateway Config. If not specified, will attempt to authenticate using the default provider.

string

Responses
HTTP Code Description Schema

200

Successful OpenID Connect authentication.

Response 200

400

Bad request.

No Content

401

Authentication failed. Reason returned in the response body.

No Content

Response 200

Name Description Schema

access_token
optional

OpenID Connect access token

string

expires_in
optional

TTL for id_token

number

id_token
optional

OpenID Connect ID token

string

name
optional

Sync Gateway username

string

refresh_token
optional

OpenID Connect refresh token

string

session_id
optional

Sync Gateway session token

string

token_type
optional

OpenID Connect token type

string

Get OIDC Authentication.

GET /{db}/_oidc_challenge
Description

Called by clients to initiate the OIDC Authorization Code flow.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Query

offline
optional

When true, requests a refresh token from the OP. Sets access_type=offline and prompt=consent on the redirect to the OP. Secure clients should set offline=true and persist the returned refresh token to secure storage.

boolean

Query

provider
optional

OpenId Connect provider to be used for authentication, from the list of providers defined in the Sync Gateway Config. If not specified, will attempt to authenticate using the default provider.

string

Responses
HTTP Code Description Schema

302

Redirect to the requested OpenID Connect provider for authentication. Redirect link is returned in the Location header.

No Content

400

Bad request. Reason is returned as "OpenID Connect not configured for database default". If a provider was specified in the request, that provider was not defined in the Sync Gateway config. If no provider was specified, OpenID Connect is not configured in the Sync Gateway config.

No Content

500

Server Error. Sync Gateway is unable to connect and validate the OpenID Connect provider requested.

No Content

Get OIDC Refresh.

GET /{db}/_oidc_refresh
Description

Used to obtain a new OpenID Connect ID token based on the provided refresh token.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Query

provider
optional

OpenId Connect provider to be used for authentication, from the list of providers defined in the Sync Gateway Config. If not specified, will attempt to authenticate using the default provider.

string

Query

refresh_token
required

OpenID Connect refresh token.

string

Responses
HTTP Code Description Schema

200

Successful OpenID Connect authentication.

Response 200

400

Bad request.

No Content

401

Authentication failed. Unable to refresh token.

No Content

Response 200

Name Description Schema

access_token
optional

OpenID Connect access token

string

expires_in
optional

TTL for id_token

number

id_token
optional

OpenID Connect ID token

string

name
optional

Sync Gateway username

string

session_id
optional

Sync Gateway session token

string

token_type
optional

OpenID Connect token type

string

Database

Work with databases

Get Database Data

GET /{db}/
Description

This request retrieves information about the database.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Responses
HTTP Code Description Schema

200

Request completed successfully.

Database

401

Unauthorized. Login required.

No Content

404

Not Found. Requested database not found.

No Content

Get All Specified Documents

POST /{db}/_all_docs
Description

This request retrieves specified documents from the database.

Parameters
Type Name Description Schema Default

Path

db
required

Database name

string

Query

access
optional

Indicates whether to include in the response a list of what access this document grants (i.e. which users it allows to access which channels.) This option may only be used from the admin port.

boolean

"false"

Query

channels
optional

Indicates whether to include in the response a channels property containing an array of channels this document is assigned to. (Channels not accessible by the user making the request will not be listed.)

boolean

"false"

Query

include_docs
optional

Default is false. Indicates whether to include the associated document with each result. If there are conflicts, only the winning revision is returned.

boolean

"false"

Query

revs
optional

Default is false. Indicates whether to include a _revisions property for each document in the response, which contains a revision history of the document. The length of the returned revision tree can be specified with the revs_limit querystring parameter.

boolean

"false"

Query

update_seq
optional

Default is false. Indicates whether to include the update_seq (document sequence ID) property in the response.

boolean

"false"

Body

body
optional

Request body

AllDocs

Responses
HTTP Code Description Schema

200

Query results

QueryResult

Get All Docs

GET /{db}/_all_docs
Description

This request returns a built-in view of all the documents in the database.

Parameters
Type Name Description Schema Default

Path

db
required

Database name

string

Query

access
optional

Indicates whether to include in the response a list of what access this document grants (i.e. which users it allows to access which channels.) This option may only be used from the admin port.

boolean

"false"

Query

channels
optional

Indicates whether to include in the response a channels property containing an array of channels this document is assigned to. (Channels not accessible by the user making the request will not be listed.)

boolean

"false"

Query

endkey
optional

If this parameter is provided, stop returning records when the specified key is reached.

string

Query

include_docs
optional

Default is false. Indicates whether to include the associated document with each result. If there are conflicts, only the winning revision is returned.

boolean

"false"

Query

keys
optional

Specify a list of document IDs.

< string > array

Query

limit
optional

Limits the number of result rows to the specified value. Using a value of 0 has the same effect as the value 1.

integer

Query

revs
optional

Default is false. Indicates whether to include a _revisions property for each document in the response, which contains a revision history of the document. The length of the returned revision tree can be specified with the revs_limit querystring parameter.

boolean

"false"

Query

startkey
optional

Returns records starting with the specified key.

string

Query

update_seq
optional

Default is false. Indicates whether to include the update_seq (document sequence ID) property in the response.

boolean

"false"

Responses
HTTP Code Description Schema

200

Query results

QueryResult

Create, Update or Delete Bulk docs

POST /{db}/_bulk_docs
Description

This request enables you to add, update, or delete multiple documents to a database in a single request. To add new documents, you can either specify the ID (_id) or let the software create an ID. To update existing documents, you must provide the document ID, revision identifier (_rev), and new document values. To delete existing documents you must provide the document ID, revision identifier, and the deletion flag (_deleted).

The JSON returned by the _bulk_docs operation consists of an array of JSON structures, one for each document in the original submission. The returned JSON structure should be examined to ensure that all of the documents submitted in the original request were successfully added to the database.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Body

BulkDocsBody
optional

The request body

BulkDocsBody

BulkDocsBody

Name Description Schema

docs
optional

List containing new or updated documents. Each object in the array can contain the following properties _id, _rev, _deleted, and values for new and updated documents.

< Document > array

new_edits
optional

Indicates whether to assign new revision identifiers to new edits.
Default : true

boolean

Responses
HTTP Code Description Schema

201

Documents have been created or updated. The response object is an array with the status for each document submitted in the original request.

< Response 201 > array

409

The operation failed with a forbidden error. Probably because the document already exists in the database but a revision number wasn’t specified.

Forbidden

Response 201

Name Description Schema

id
optional

Design document identifier

string

rev
optional

Revision identifier

string

Get Bulk Documents

POST /{db}/_bulk_get
Description

This request returns any number of documents, as individual bodies in a MIME multipart response.

Each enclosed body contains one requested document. The bodies appear in the same order as in the request, but can also be identified by their X-Doc-ID and X-Rev-ID headers. A body for a document with no attachments will have content type application/json and contain the document itself. A body for a document that has attachments will be written as a nested multipart/related body. Its first part will be the document’s JSON, and the subsequent parts will be the attachments (each identified by a Content-Disposition header giving its attachment name.)

Parameters
Type Name Description Schema Default

Path

db
required

Database name

string

Query

attachments
optional

Default is false. Include attachment bodies in response.

boolean

"false"

Query

revs
optional

Default is false. Indicates whether to include a _revisions property for each document in the response, which contains a revision history of the document. The length of the returned revision tree can be specified with the revs_limit querystring parameter.

boolean

"false"

Query

revs_limit
optional

The number of revisions to include in the response from the document history. This parameter is only honoured if the revs=true querystring parameter is also sent in the request. If revs=true is specified and revs_limit isn’t, the full revision history is returned.

integer

Body

BulkGetBody
optional

List of documents being requested. Each array element is an object that must contain an id property giving the document ID. It may contain a rev property if a specific revision is desired. It may contain an atts_since property (as in a single-document GET) to limit which attachments are sent.

BulkGetBody

BulkGetBody

Name Schema

docs
optional

< docs > array

docs

Name Description Schema

id
optional

Document ID.

string

Responses
HTTP Code Description Schema

200

Request completed successfully

No Content

301

Request failed with a forbidden error. This usually happens because the user requesting that document doesn’t have access to it. Access to documents is granted to users through channels.

Response 301

Response 301

Name Description Schema

_id
optional

The document ID that was requested

string

_removed
optional

Default : true

boolean

_rev
optional

The revision number that was requested

string

Produces
  • multipart/mixed

Example HTTP response
Response 200
json
{ "multipart/mixed (document found)" : "--1cba224ff2aa106566e3ab65de9c861c24558ba368f8cd7f6fcde53b88f4\nContent-Type: application/json\n\n{\"_id\":\"doc123\",\"_rev\":\"1-c543d6514c609f65180f94af247aaffe\",\"hello\":\"world!\"}\n--1cba224ff2aa106566e3ab65de9c861c24558ba368f8cd7f6fcde53b88f4\n", "multipart/mixed (document not found)" : "--1cba224ff2aa106566e3ab65de9c861c24558ba368f8cd7f6fcde53b88f4\nContent-Type: application/json; error=\"true\"\n\n{\"error\":\"not_found\",\"id\":\"doc1234\",\"reason\":\"missing\",\"status\":404}\n--1cba224ff2aa106566e3ab65de9c861c24558ba368f8cd7f6fcde53b88f4\n" }

Get Changes Feed (body parameters)

POST /{db}/_changes
Description

Same as the GET /_changes request except the parameters are in the JSON body.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Body

ChangesBody
optional

The request body

ChangesBody

ChangesBody

Name Description Schema

active_only
optional

Default is false. When true, the changes response doesn’t include either deleted documents, or notification for documents that the user no longer has access to.
Default : false

boolean

channels
optional

A comma-separated list of channel names. The response will be filtered to only documents in these channels. (This parameter must be used with the sync_gateway/bychannel filter parameter; see below.)

string

doc_ids
optional

A list of document IDs as a valid JSON array. The response will be filtered to only documents with these IDs. (This parameter must be used with the _doc_ids filter parameter; see below.)

< string > array

feed
optional

Default is 'normal'. Specifies type of change feed. Valid values are normal, continuous, longpoll, websocket.
Default : "normal"

string

filter
optional

Indicates that the returned documents should be filtered. The valid values are sync_gateway/bychannel and _doc_ids.

string

heartbeat
optional

The heartbeat defines the interval (in milliseconds) at which an empty line (CRLF) is written to the response. It helps prevent Sync Gateway from deciding the socket is idle and closing it.

The heartbeat value overrides any timeout value, to keep the feed alive indefinitely.

Setting heartbeat=0 results in no heartbeat.

Default: 0, which is no heartbeat

Constraints:

* Applies ONLY where feed=longpoll or feed=continuous

* Minimum: 25000 (25 seconds)

* Maximum: None – unless you define one in your configuration file using MaxHeartbeat

integer

include_docs
optional

Default is false. Indicates whether to include the associated document with each result. If there are conflicts, only the winning revision is returned.
Default : false

boolean

limit
optional

Limits the number of result rows to the specified value. Using a value of 0 has the same effect as the value 1.

integer

since
optional

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.

object

style
optional

Default is 'main_only'. Number of revisions to return in the changes array. The only possible value is all_docs and it returns all leaf revisions including conflicts and deleted former conflicts.
Default : "main_only"

string

timeout
optional

The timeout value defines the maximum period (in milliseconds) to wait for a change, before sending a response. This wait applies even when there are no results.

Setting timeout=0 results in no timeout.

Default: 300000 (5 minutes/300 seconds)

Constraints:

* Applies ONLY where feed=longpoll or feed=continuous

* Minimum: 0, no timeout

* Maximum: 1500000 (15 minutes)

integer

Responses
HTTP Code Description Schema

200

Request completed successfully

Changes

Get Changes Feed (query parameters)

GET /{db}/_changes
Description

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’s 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.

Parameters
Type Name Description Schema Default

Path

db
required

Database name

string

Query

active_only
optional

Default is false. When true, the changes response doesn’t include either deleted documents, or notification for documents that the user no longer has access to.

boolean

"false"

Query

channels
optional

A comma-separated list of channel names. The response will be filtered to only documents in these channels. (This parameter must be used with the sync_gateway/bychannel filter parameter; see below.)

string

Query

doc_ids
optional

A list of document IDs as a valid JSON array. The response will be filtered to only documents with these IDs. This parameter must be used with the filter=_doc_ids and feed=normal parameters.

< string > array

Query

feed
optional

Default is 'normal'. Specifies type of change feed. Valid values are normal, continuous, longpoll, websocket.

string

"normal"

Query

filter
optional

Indicates that the reported documents should be filtered. The valid values are sync_gateway/bychannel and _doc_ids.

string

Query

heartbeat
optional

The heartbeat defines the interval (in milliseconds) at which an empty line (CRLF) is written to the response. It helps prevent Sync Gateway from deciding the socket is idle and closing it.

The heartbeat value overrides any timeout value, to keep the feed alive indefinitely.

Setting heartbeat=0 results in no heartbeat.

Default: 0, which is no heartbeat

Constraints:

* Applies ONLY where feed=longpoll or feed=continuous.

* Minimum: 25000 (25 seconds)

* Maximum: None – unless you define one in your configuration file using MaxHeartbeat

integer

0

Query

include_docs
optional

Default is false. Indicates whether to include the associated document with each result. If there are conflicts, only the winning revision is returned.

boolean

"false"

Query

limit
optional

Limits the number of result rows to the specified value. Using a value of 0 has the same effect as the value 1.

integer

Query

since
optional

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.

string

Query

style
optional

Default is 'main_only'. Number of revisions to return in the changes array. main_only returns the current winning revision, all_docs returns all leaf revisions including conflicts and deleted former conflicts.

string

"main_only"

Query

timeout
optional

The timeout value defines the maximum period (in milliseconds) to wait for a change, before sending a response. This wait applies even when there are no results.

Setting timeout=0 results in no timeout.

Default: 300000 (5 minutes/300 seconds)

Constraints:

* Applies ONLY where feed=longpoll or feed=continuous.

* Minimum: 0, no timeout

* Maximum: 1500000 (15 minutes)

integer

300000

Responses
HTTP Code Description Schema

200

Request completed successfully

Changes

Get Revision ID Diff

POST /{db}/_revs_diff
Description

Given a set of document/revision IDs, returns the subset of those that do not correspond to revisions stored in the database.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Body

body
optional

Request body

< string, < string > array > map

Responses
HTTP Code Description Schema

200

The request was successful

< string, Response 200 > map

Response 200

Name Description Schema

missing
optional

A list of revision IDs for that document (the ones that are not stored in the database).

< string > array

Document

Work with documents

Create New Document

POST /{db}/
Description

This request creates a new document in the specified database.

You can either specify the document ID by including the _id in the request message body (the value must be a string), or let the software generate an ID.

The maximum size allowed for a document is 20MB.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Body

body
optional

The document body

object

Responses
HTTP Code Description Schema

201

The document was written successfully

Success

Get Specific Document

GET /{db}/{doc}
Description

This request retrieves a document from a database.

Parameters
Type Name Description Schema Default

Path

db
required

Database name

string

Path

doc
required

Document ID

string

Query

attachments
optional

Default is false. Include attachment bodies in response.

boolean

"false"

Query

atts_since
optional

Include attachments only since specified revisions. Does not include attachments for specified revisions.

< string > array

Query

open_revs
optional

Option to fetch specified revisions of the document. The value can be all to fetch all leaf revisions or an array of revision numbers (i.e. open_revs=["rev1", "rev2"]). Only leaf revision bodies that haven’t been pruned are guaranteed to be returned.

If this option is specified the response will be in multipart format. Use the Accept: application/json request header to get the result as a JSON object.

< string > array

Query

rev
optional

Revision identifier of the revision to get. By default, Sync Gateway returns the current revision. This parameter is generally only needed for conflict resolution. For example where the app might need to retrieve a conflicting leaf revision that isn’t the current revision.

string

Query

revs
optional

Default is false. Indicates whether to include a _revisions property for each document in the response, which contains a revision history of the document. The length of the returned revision tree can be specified with the revs_limit querystring parameter.

boolean

"false"

Query

show_exp
optional

Whether to show the _exp property in the response.

boolean

"false"

Responses
HTTP Code Description Schema

200

The message body contains the following objects in a JSON document.

object

Create or Update Specific Document

PUT /{db}/{doc}
Description

This request creates a new document or creates a new revision of an existing document. It enables you to specify the identifier for a new document rather than letting the software create an identifier.

If you want to create a new document and let the software create an identifier, use the POST /db request.

If the document specified by doc does not exist, a new document is created and assigned the identifier specified in doc. If the document already exists, the document is updated with the JSON document in the message body and given a new revision. The maximum size allowed for a document is 20MB.

Since Sync Gateway 1.3, an expiry property (_exp) can also be specified to purge the document after a given time. If convergence is enabled (introduced in Sync Gateway 1.5), the behavior of the expiry feature changes in the following way: when the expiry value is reached, instead of getting purged, the active revision of the document is tombstoned. If there is another non-tombstoned revision for this document (i.e a conflict) it will become the active revision. The tombstoned revision will be purged when the server’s metadata purge interval is reached.

Parameters
Type Name Description Schema Default

Path

db
required

Database name

string

Path

doc
required

Document ID

string

Query

new_edits
optional

Default is true. Setting this to false indicates that the request body is an already-existing revision that should be directly inserted into the database, instead of a modification to apply to the current document. (This mode is used by the replicato.) This option must be used in conjunction with the _revisions property in the request body.

boolean

"true"

Query

rev
required

Revision identifier of the revision to update. It must be the last revision in the history.

string

Body

Document
optional

Request body

Document

Responses
HTTP Code Description Schema

200

The response is a JSON document that contains the following objects

Success

Delete Specific Document

DELETE /{db}/{doc}
Description

This request deletes a document from the database.

When a document is deleted, the revision number is updated so the database can track the deletion in synchronized copies.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Path

doc
required

Document ID

string

Query

rev
required

Revision identifier of the revision to delete. It must be the identifier of the latest revision in the history.

string

Responses
HTTP Code Description Schema

200

Document successfully removed

Success

Document (local)

Work with local documents

Get Specific Local Document

GET /{db}/_local/{local_doc}
Description

This request retrieves a local document.

Local document IDs begin with _local/. Local documents are not replicated or indexed, don’t support attachments, and don’t save revision histories.

In practice local documents mostly used by Couchbase Lite’s replicator, as a place to store replication checkpoint data.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Path

local_doc
required

Local document IDs begin with _local/.

string

Responses
HTTP Code Description Schema

200

The message body contains the following objects in a JSON document.

Success

Create or Update a Local Document

PUT /{db}/_local/{local_doc}
Description

This request creates or updates a local document.

Local document IDs begin with _local/. Local documents are not replicated or indexed, don’t support attachments, and don’t save revision histories.

In practice they are almost only used by the client’s replicator, as a place to store replication checkpoint data.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Path

local_doc
required

Local document IDs begin with _local/.

string

Responses
HTTP Code Description Schema

201

Created

Success

Delete Specific Local Document

DELETE /{db}/_local/{local_doc}
Description

This request deletes a local document.

Local document IDs begin with _local/. Local documents are not replicated or indexed, don’t support attachments, and don’t save revision histories. In practice they are almost only used by Couchbase Lite’s replicator, as a place to store replication checkpoint data.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Path

local_doc
required

Local document IDs begin with _local/.

string

Query

batch
optional

Stores the document in batch mode. To use, set the value to ok.

string

Query

rev
optional

Revision identifier of the parent revision the new one should replace. (Not used when creating a new document.)

string

Responses
HTTP Code Description Schema

200

Document successfully removed

Success

Server

Work with the server

Get Server Data

GET /
Description

Returns meta-information about the server.

Responses
HTTP Code Description Schema

200

Meta-information about the server.

ServerData_model

Session

Work with sessions

Create User Session

POST /{db}/_session
Description

If the credentials provided in the request body are valid, the session is created with an idle session timeout of 24 hours.

An idle session timeout in the context of Sync Gateway is defined as the following: if 10% or more of the current expiration time has elapsed when a subsequent request with that session id is processed, the session’s expiry time is automatically updated to 24 hours from that time.

Parameters
Type Name Description Schema

Path

db
required

Database name

string

Body

SessionBody
optional

The message body is a JSON document that contains the following objects.

SessionBody

SessionBody

Name Description Schema

name
optional

Username of the user the session will be associated to.

string

password
optional

User password.

string

Responses
HTTP Code Description Schema

200

Session successfully created. The Set-Cookie response header contains the session credentials.

Session

Delete User Session

DELETE /{db}/_session
Description

This request deletes the session that currently authenticates the requests.

Parameters
Type Name Description Schema

Header

cookie
optional

The cookie of the logged-in session.

string

Path

db
required

Database name

string

Responses
HTTP Code Description Schema

200

The session was successfully removed.

No Content

Definitions

DocumentResponse

Name Description Schema

_id
optional

Document identifier

string

_rev
optional

Revision identifier

string

Error

Name Schema

code
optional

integer (int32)

fields
optional

string

message
optional

string

ExpVars

Name Description Schema

cb
optional

Variables reported by the Couchbase SDK (go_couchbase package)

object

cmdline
optional

Built-in variables from the Go runtime, lists the command-line arguments

object

mc
optional

Variables reported by the low-level memcached API (gomemcached package)

object

memstats
optional

Dumps a large amount of information about the memory heap and garbage collector

object

syncGateway_changeCache
optional

syncGateway_changeCache

syncGateway_db
optional

syncGateway_db

syncGateway_changeCache

Name Description Schema

lag-queue-0000ms
optional

Histogram of delay from Tap feed till doc is posted to changes feed

object

lag-tap-0000ms
optional

Histogram of delay from doc save till it shows up in Tap feed

object

lag-total-0000ms
optional

Histogram of total delay from doc save till posted to changes feed

object

maxPending
optional

Max number of sequences waiting on a missing earlier sequence number

object

outOfOrder
optional

Number of out-of-order sequences posted

object

view_queries
optional

Number of queries to channels view

object

syncGateway_db

Name Description Schema

channelChangesFeeds
optional

Number of calls to db.changesFeed, i.e. generating a changes feed for a single channel.

object

channelLogAdds
optional

Number of entries added to channel logs

object

channelLogAppends
optional

Number of times entries were written to channel logs using an APPEND operation

object

channelLogCacheHits
optional

Number of requests for channel-logs that were fulfilled from the in-memory cache

object

channelLogRewriteCollisions
optional

Number of collisions while attempting to rewrite channel logs using SET

object

channelLogRewrites
optional

Number of times entries were written to channel logs using a SET operation (rewriting the entire log)

object

document_gets
optional

Number of times a document was read from the database

object

revisionCache_adds
optional

Number of revisions added to the revision cache

object

revisionCache_hits
optional

Number of times a revision-cache lookup succeeded

object

revisionCache_misses
optional

Number of times a revision-cache lookup failed

object

revs_added
optional

Number of revisions added to the database (including deletions)

object

sequence_gets
optional

Number of times the database’s lastSequence was read

object

sequence_reserves
optional

Number of times the database’s lastSequence was incremented

object

Forbidden

Name Description Schema

error
optional

Default : "conflict"

string

id
optional

string

reason
optional

string

status
optional

integer

LogTags

Name Description Schema

Access
optional

access() calls made by the sync function

boolean

Attach
optional

Attachment processing

boolean

Auth
optional

Authentication

boolean

Bucket
optional

Sync Gateway interactions with the bucket (verbose logging).

boolean

CRUD
optional

Updates made by Sync Gateway to documents (CRUD+ for verbose logging)

boolean

Cache
optional

Interactions with Sync Gateway’s in-memory channel cache (Cache+ for verbose logging)

boolean

Changes
optional

Processing of _changes requests (Changes+ for verbose logging)

boolean

DCP
optional

DCP-feed processing (verbose logging)

boolean

Events
optional

Event processing (webhooks) (Events+ for verbose logging)

boolean

Feed
optional

Server-feed processing (Feed+ for verbose logging)

boolean

HTTP
optional

All requests made to the Sync Gateway REST APIs (Sync and Admin). Note that the log keyword HTTP is always enabled, which means that HTTP requests and error responses are always logged (in a non-verbose manner). HTTP+ provides more verbose HTTP logging.

boolean

PurgeBody

Document ID

Name Description Schema

a_doc_id
optional

Only possible value is ["*"]. It permanently removes all revisions for that document ID.

< enum (*) > array

Success

Name Description Schema

id
optional

Design document identifier

string

ok
optional

Indicates whether the operation was successful

boolean

rev
optional

Revision identifier

string

User

Name Description Schema

admin_channels
optional

Array of channel names to give the user access to

< string > array

admin_roles
optional

Array of role names to assign to this user

< string > array

all_channels
optional

Array of channel names the user is given access to

< string > array

disabled
optional

Boolean property to disable this user. The user will not be able to login if this property is set to true.

boolean

email
optional

Email of the user that will be created.

string

name
optional

Name of the user that will be created

string

password
optional

Password of the user that will be created. Required, unless the allow_empty_password Sync Gateway per-database configuration value is set to true, in which case the password can be omitted.

string

roles
optional

Array of role names the user is given access to

< string > array

ChangesFeedRow

Name Description Schema

changes
optional

List of the document’s leafs. Each leaf object contains one field, rev.

< changes > array

deleted
optional

Indicate whether the row is deleted
Default : false

boolean

doc
optional

object

id
optional

Document identifier

string

seq
optional

Update sequence number

integer

changes

Name Description Schema

rev
optional

Identifier of the document revision that changed.

string

View

Name Description Schema

_rev
optional

Revision identifier of the parent revision the new one should replace. (Not used when creating a new document.)

string

views
optional

List of views to save on this design document.

views

views

Name Description Schema

my_view_name
optional

The view’s map/reduce functions.

my_view_name

my_view_name

Name Description Schema

map
optional

Inline JavaScript definition for the map function

string

reduce
optional

Inline JavaScript definition for the reduce function

string

QueryRow

Name Description Schema

doc
optional

The document body. This is only returned if include_docs=true is specified in the URL.

object

id
optional

The ID of the document.

string

key
optional

The key in the output row.

object

value
optional

The value in the output row.

object

Design

Name Description Schema

count
optional

Total number of items available.

integer (int32)

limit
optional

Number of items to retrieve (100 max).

integer (int32)

offset
optional

Position in pagination.

integer (int32)

AllDocs

Name Description Schema

keys
optional

List of identifiers of the documents to retrieve

< string > array

Changes

Name Description Schema

last_seq
optional

Last change sequence number

object

results
optional

List of changes to the database. See the following table for a list of fields in this object.

< ChangesFeedRow > array

Database

Name Description Schema

db_name
optional

Name of the database

string

db_uuid
optional

Database identifier

integer

disk_format_version
optional

Database schema version

integer

disk_size
optional

Total amount of data stored on the disk (in bytes)

integer

instance_start_time
optional

Date and time the database was opened (in microseconds since 1 January 1970)

string

state
optional

The state of the specified database. Possible values are 'Online' and 'Offline'. A database can be taken offline and brought back online using the /{db}/_offline and /{db}/_online endpoints on the Admin REST API.

string

update_seq
optional

Number of updates to the database

string

Document

Name Description Schema

_attachments
optional

_attachments

_exp
optional

Expiry time after which the document will be purged. The expiration time is set and managed on the Couchbase Server document (TTL is not supported for databases in walrus mode). The value can be specified in two ways; in ISO-8601 format, for example the 6th of July 2016 at 17:00 in the BST timezone would be 2016-07-06T17:00:00+01:00; it can also be specified as a numeric Couchbase Server expiry value. Couchbase Server expiries are specified as Unix time, and if the desired TTL is below 30 days then it can also represent an interval in seconds from the current time (for example, a value of 5 will remove the document 5 seconds after it is written to Couchbase Server). The document expiration time is returned in the response of GET /{db}/{doc} when show_exp=true is included in the querystring.

As with the existing explicit purge mechanism, this applies only to the local database; it has nothing to do with replication. This expiration time is not propagated when the document is replicated. The purge of the document does not cause it to be deleted on any other database.

string

_id
optional

The document ID.

string

_rev
optional

Revision identifier of the parent revision the new one should replace. (Not used when creating a new document.)

string

_revisions
optional

_revisions

_attachments

Name Schema

attachment_name
optional

attachment_name

attachment_name

Name Description Schema

content_type
optional

The content type of the attachment.

string

_revisions

Name Description Schema

ids
optional

Array of valid revision IDs, in reverse order (latest first).

< string > array

start
optional

Prefix number for the latest revision.

integer

QueryResult

Name Description Schema

offset
optional

Starting index of the returned rows.

string

rows
optional

< QueryRow > array

total_rows
optional

Number of documents in the database. This number is not the number of rows returned.

integer

Replication

Name Description Schema

ok
optional

Indicates whether the replication operation was successful

boolean

session_id
optional

Session identifier

string

ServerData_model

Name Description Schema

couchdb
optional

Contains the string 'Welcome' (this is required for compatibility with CouchDB)

string

vendor/name
optional

The server type ('Couchbase Sync Gateway)

string

vendor/version
optional

The server version

string

version
optional

Sync Gateway version number

string

Session

Name Description Schema

authentication_handlers
optional

List of authentication methods.

< string > array

ok
optional

Always true if the operation was successful.

boolean

userCtx
optional

UserContext

UserContext

Context for this user.

Name Description Schema

channels
optional

Key-value pairs with a channel name as the key and the sequence number that granted the user access to the channel as value. ! is the public channel and every user has access to it.

object

name
optional

The user’s name.

string