A newer version of this documentation is available.

View Latest

Public REST API (Static Page)

      +

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

      Resources

      This section describes the operations available with this REST API. The operations are grouped in the following categories.

      Authentication

      Manage OpenID Connect Authentication

      OpenID Connect authentication initiation via Location header redirect

      GET /{db}/_oidc
      Description

      Called by clients to initiate the OpenID Connect Authorization Code Flow. Redirects to the OpenID Connect provider if successful.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Query Parameters
      Name Description Schema

      provider
      optional

      The OpenID Connect provider to use for authentication. The list of providers are defined in the Sync Gateway config. If left empty, the default provider will be used.

      String

      offline
      optional

      If true, the OpenID Connect provider is requested to confirm with the user the permissions requested and refresh the OIDC token. To do this, access_type=offline and prompt=consent is set on the redirection link.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      302

      Successfully connected with the OpenID Connect provider so now redirecting to the requested OIDC provider for authentication.

      400

      The provider provided is not defined in the Sync Gateway config. If no provided was specified then there is no default provider set.

      404

      Resource could not be found

      HTTP_Error

      500

      Unable to connect and validate with the OpenID Connect provider requested

      OpenID Connect authentication callback

      GET /{db}/_oidc_callback
      Description

      The callback URL that the client is redirected to after authenticating with the OpenID Connect provider.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Query Parameters
      Name Description Schema

      error
      optional

      The OpenID Connect error, if any occurred.

      String

      code
      required

      The OpenID Connect authentication code.

      String

      provider
      optional

      The OpenID Connect provider to use for authentication. The list of providers are defined in the Sync Gateway config. If left empty, the default provider will be used.

      String

      state
      optional

      The OpenID Connect state to verify against the state cookie. This is used to prevent cross-site request forgery (CSRF). This is not required if disable_callback_state=true for the provider config (NOT recommended).

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Successfully authenticated with OpenID Connect.

      OpenID_Connect_callback_properties

      400

      A problem occurred when reading the callback request body

      401

      An error was received from the OpenID Connect provider. This means the error query parameter was filled.

      404

      Resource could not be found

      HTTP_Error

      500

      A problem occurred in regards to the token

      post_db__facebook_401_response

      OpenID Connect authentication initiation via WWW-Authenticate header

      GET /{db}/_oidc_challenge
      Description

      Called by clients to initiate the OpenID Connect Authorization Code Flow. This will establish a connection with the provider, then put the redirect URL in the WWW-Authenticate header.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Query Parameters
      Name Description Schema

      provider
      optional

      The OpenID Connect provider to use for authentication. The list of providers are defined in the Sync Gateway config. If left empty, the default provider will be used.

      String

      offline
      optional

      If true, the OpenID Connect provider is requested to confirm with the user the permissions requested and refresh the OIDC token. To do this, access_type=offline and prompt=consent is set on the redirection link.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      400

      The provider provided is not defined in the Sync Gateway config. If no provided was specified then there is no default provider set.

      401

      Successfully connected with the OpenID Connect provider so now the client can login.

      404

      Resource could not be found

      HTTP_Error

      500

      Unable to connect and validate with the OpenID Connect provider requested

      OpenID Connect token refresh

      GET /{db}/_oidc_refresh
      Description

      Refresh the OpenID Connect token based on the provided refresh token.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Query Parameters
      Name Description Schema

      refresh_token
      required

      The OpenID Connect refresh token.

      String

      provider
      optional

      The OpenID Connect provider to use for authentication. The list of providers are defined in the Sync Gateway config. If left empty, the default provider will be used.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Successfully authenticated with OpenID Connect.

      OpenID_Connect_callback_properties

      400

      The provider provided is not defined in the Sync Gateway config. If no provided was specified then there is no default provider set.

      404

      Resource could not be found

      HTTP_Error

      500

      Unable to connect and validate with the OpenID Connect provider requested

      OpenID Connect mock provider

      GET /{db}/_oidc_testing/.well-known/openid-configuration
      Description

      Mock an OpenID Connect provider response for testing purposes. This returns a response that is the same structure as what Sync Gateway expects from an OIDC provider after initiating OIDC authentication.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Successfully generated OpenID Connect provider mock response.

      get_db__oidc_testing__well_known_openid_configuration_200_response

      403

      The OpenID Connect unsupported config option oidc_test_provider is not enabled. To use this endpoint, this option must be enabled.

      404

      Resource could not be found

      HTTP_Error

      OpenID Connect mock login page handler

      GET /{db}/_oidc_testing/authenticate
      Description

      Used to handle the login page displayed for the GET /{db}/_oidc_testing/authorize endpoint.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Query Parameters
      Name Description Schema

      redirect_uri
      optional

      The Sync Gateway OpenID Connect callback URL.

      String

      scope
      required

      The OpenID Connect authentication scope.

      String

      username
      required

      String

      tokenttl
      required

      Integer

      identity-token-formats
      required

      String

      authenticated
      required

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      302

      Redirecting to Sync Gateway OpenID Connect callback URL

      403

      The OpenID Connect unsupported config option oidc_test_provider is not enabled. To use this endpoint, this option must be enabled.

      404

      Resource could not be found

      HTTP_Error

      OpenID Connect mock login page

      GET /{db}/_oidc_testing/authorize
      Description

      Show a mock OpenID Connect login page for the client to log in to.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Query Parameters
      Name Description Schema

      scope
      required

      The OpenID Connect authentication scope.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      OK

      400

      A validation error occurred with the scope.

      HTTP_Error

      403

      The OpenID Connect unsupported config option oidc_test_provider is not enabled. To use this endpoint, this option must be enabled.

      404

      Resource could not be found

      HTTP_Error

      500

      An error occurred.

      HTTP_Error

      OpenID Connect public certificates for signing keys

      GET /{db}/_oidc_testing/certs
      Description

      Return a mock OpenID Connect public key to be used as signing keys.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Returned public key successfully

      get_db__oidc_testing_certs_200_response

      403

      The OpenID Connect unsupported config option oidc_test_provider is not enabled. To use this endpoint, this option must be enabled.

      404

      Resource could not be found

      HTTP_Error

      500

      An error occurred while getting the private RSA key

      post_db__facebook_401_response

      Create a new Facebook-based session

      POST /{db}/_facebook
      Description

      Creates a new session based on a Facebook user. On a successful session creation, a session cookie is stored to keep the user authenticated for future API calls.

      If CORS is enabled, the origin must match an allowed login origin otherwise an error will be returned.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      PostDbFacebookRequest

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Session created successfully

      400

      Origin is not in the approved list of allowed origins

      HTTP_Error

      401

      Received error from Facebook verifier

      post_db__facebook_401_response

      404

      Resource could not be found

      HTTP_Error

      502

      Received invalid response from the Facebook verifier

      post_db__facebook_401_response

      504

      Unable to send request to Facebook API

      post_db__facebook_401_response

      Create a new Google-based session

      POST /{db}/_google
      Description

      Creates a new session based on a Google user. On a successful session creation, a session cookie is stored to keep the user authenticated for future API calls.

      If CORS is enabled, the origin must match an allowed login origin otherwise an error will be returned.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      PostDbGoogleRequest

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Session created successfully

      400

      Origin is not in the approved list of allowed origins

      HTTP_Error

      401

      Received error from Google token verifier or invalid application ID in the config

      post_db__facebook_401_response

      404

      Resource could not be found

      HTTP_Error

      502

      Received invalid response from the Google token verifier

      post_db__facebook_401_response

      504

      Unable to send request to the Google token verifier

      OpenID Connect mock login page handler

      POST /{db}/_oidc_testing/authenticate
      Description

      Used to handle the login page displayed for the GET /{db}/_oidc_testing/authorize endpoint.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      Properties passed from the OpenID Connect mock login page to the handler

      PostDbOidcTestingAuthenticateRequest

      Query Parameters
      Name Description Schema

      redirect_uri
      optional

      The Sync Gateway OpenID Connect callback URL.

      String

      scope
      required

      The OpenID Connect authentication scope.

      String

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      302

      Redirecting to Sync Gateway OpenID Connect callback URL

      403

      The OpenID Connect unsupported config option oidc_test_provider is not enabled. To use this endpoint, this option must be enabled.

      404

      Resource could not be found

      HTTP_Error

      OpenID Connect mock login page

      POST /{db}/_oidc_testing/authorize
      Description

      Show a mock OpenID Connect login page for the client to log in to.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Query Parameters
      Name Description Schema

      scope
      required

      The OpenID Connect authentication scope.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      OK

      400

      A validation error occurred with the scope.

      HTTP_Error

      403

      The OpenID Connect unsupported config option oidc_test_provider is not enabled. To use this endpoint, this option must be enabled.

      404

      Resource could not be found

      HTTP_Error

      500

      An error occurred.

      HTTP_Error

      OpenID Connect mock token

      POST /{db}/_oidc_testing/token
      Description

      Return a mock OpenID Connect token for the OIDC authentication flow.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      PostDbOidcTestingTokenRequest

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Properties expected back from an OpenID Connect provider after successful authentication

      OIDC_token

      400

      Invalid token provided

      403

      The OpenID Connect unsupported config option oidc_test_provider is not enabled. To use this endpoint, this option must be enabled.

      404

      Resource could not be found

      HTTP_Error

      Database Management

      Create and manage Sync Gateway databases

      Get database information

      GET /{db}/
      Description

      Retrieve information about the database.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Successfully returned database information

      get_db__200_response

      404

      Resource could not be found

      HTTP_Error

      Get changes list

      GET /{keyspace}/_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 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.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      Query Parameters
      Name Description Schema

      limit
      optional

      Maximum number of changes to return.

      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.

      String

      style
      optional

      Controls whether to return the current winning revision (main_only) or all the leaf revision including conflicts and deleted former conflicts (all_docs).

      Values: main_only, all_docs
      Default: main_only

      String

      active_only
      optional

      Set true to exclude deleted documents and notifications for documents the user no longer has access to from the changes feed.

      Default: false

      Boolean

      include_docs
      optional

      Include the body associated with each document.

      Boolean

      revocations
      optional

      If true, revocation messages will be sent on the changes feed.

      Boolean

      filter
      optional

      Set a filter to either filter by channels or document IDs.

      Values: sync_gateway/bychannel, _doc_ids

      String

      channels
      optional

      A comma-separated list of channel names to filter the response to only the channels specified. To use this option, the filter query option must be set to sync_gateway/bychannels.

      String

      doc_ids
      optional

      A valid JSON array of document IDs to filter the documents in the response to only the documents specified. To use this option, the filter query option must be set to _doc_ids and the feed parameter must be normal. Also accepts a comma separated list of document IDs instead.

      String List

      heartbeat
      optional

      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 feed=longpoll or feed=continuous. This will override any timeouts to keep the feed alive indefinitely. Setting to 0 results in no heartbeat. The maximum heartbeat can be set in the server replication configuration.

      Default: 0
      Minimum: 25000

      Integer

      timeout
      optional

      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=longpoll or feed=continuous changes feeds. Setting to 0 results in no timeout.

      Default: 300000
      Minimum: 0
      Maximum: 900000

      Integer

      feed
      optional

      The type of changes feed to use.

      Values: normal, longpoll, continuous, websocket
      Default: normal

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Successfully returned the changes feed

      get_keyspace__changes_200_response

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      Check if database exists

      HEAD /{db}/
      Description

      Check if a database exists by using the response status code.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Database exists

      404

      Resource could not be found

      HTTP_Error

      /{db}/_changes

      HEAD /{keyspace}/_changes
      Description
      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      Responses
      HTTP Code Description Schema

      200

      OK

      400

      Bad Request

      404

      Not Found

      /{db}/_ensure_full_commit

      POST /{db}/_ensure_full_commit
      Description

      This endpoint is non-functional but is present for CouchDB compatibility.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      201

      OK

      post_db__ensure_full_commit_201_response

      Get changes list

      POST /{keyspace}/_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 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.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      PostKeyspaceChangesRequest

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Successfully returned the changes feed

      get_keyspace__changes_200_response

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      Compare revisions to what is in the database

      POST /{keyspace}/_revs_diff
      Description

      Takes a set of document IDs, each with a set of revision IDs. For each document, an array of unknown revisions are returned with an array of known revisions that may be recent ancestors.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      PostKeyspaceRevsDiffRequest

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Comparisons successful

      post_keyspace__revs_diff_200_response

      404

      Resource could not be found

      HTTP_Error

      Create DB public API stub

      PUT /{targetdb}/
      Description

      A stub that always returns an error on the Public API, for createTarget/CouchDB compatibility.

      Parameters
      Path Parameters
      Name Description Schema

      targetdb
      required

      The database name to target.

      String

      Responses
      HTTP Code Description Schema

      403

      Database does not exist and cannot be created over the public API

      412

      Database exists

      Document

      Create and manage documents

      Delete a document

      DELETE /{keyspace}/{docid}
      Description

      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.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The document ID to run the operation against.

      String

      Header Parameters
      Name Description Schema

      If-Match
      optional

      The revision ID to target.

      String

      Query Parameters
      Name Description Schema

      rev
      optional

      The document revision to target.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      New revision created successfully

      New_revision

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      Delete a local document

      DELETE /{keyspace}/_local/{docid}
      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
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The name of the local document ID excluding the _local/ prefix.

      String

      Query Parameters
      Name Description Schema

      rev
      required

      The revision ID of the revision to delete.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Successfully removed the local document.

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      409

      A revision ID conflict would result from deleting this document revision.

      Gets all the documents in the database with the given parameters

      GET /{keyspace}/_all_docs
      Description

      Returns all documents in the database based on the specified parameters.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      Query Parameters
      Name Description Schema

      include_docs
      optional

      Include the body associated with each document.

      Boolean

      channels
      optional

      Include the channels each document is part of that the calling user also has access too.

      Boolean

      access
      optional

      Include what user/roles that each document grants access too.

      Boolean

      revs
      optional

      Include all the revisions for each document under the _revisions property.

      Boolean

      update_seq
      optional

      Include the document sequence number update_seq property for each document.

      Boolean

      keys
      optional

      An array of document ID strings to filter by.

      String List

      startkey
      optional

      Return records starting with the specified key.

      String

      endkey
      optional

      Stop returning records when this key is reached.

      String

      limit
      optional

      This limits the number of result rows returned. Using a value of 0 has the same effect as the value 1.

      BigDecimal

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Operation ran successfully

      get_keyspace__all_docs_200_response

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      Get a document

      GET /{keyspace}/{docid}
      Description

      Retrieve a document from the database by its doc ID.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The document ID to run the operation against.

      String

      Query Parameters
      Name Description Schema

      rev
      optional

      The document revision to target.

      String

      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 List

      show_exp
      optional

      Whether to show the expiry property (_exp) in the response.

      Boolean

      revs_from
      optional

      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.

      String List

      atts_since
      optional

      Include attachments only since specified revisions. Excludes the attachments for the specified revisions. Only gets used if attachments=true.

      String List

      revs_limit
      optional

      Maximum amount of revisions to return for each document.

      Integer

      attachments
      optional

      Include attachment bodies in response.

      Boolean

      replicator2
      optional

      Returns the document with the required properties for replication. This is an enterprise-edition only feature.

      Boolean

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Document found and returned successfully

      get_keyspace_docid_200_response

      400

      Document ID is not in an allowed format therefore is invalid. This could be because it is over 250 characters or is prefixed with an underscore (\"_\").

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      501

      Not Implemented. It is likely this error was caused due to trying to use an enterprise-only feature on the community edition.

      HTTP_Error

      Get local document

      GET /{keyspace}/_local/{docid}
      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 they are almost only used by Couchbase Lite's replicator, as a place to store replication checkpoint data.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The name of the local document ID excluding the _local/ prefix.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Successfully found local document

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      /{db}/_all_docs

      HEAD /{keyspace}/_all_docs
      Description
      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      Query Parameters
      Name Description Schema

      include_docs
      optional

      Include the body associated with each document.

      Boolean

      channels
      optional

      Include the channels each document is part of that the calling user also has access too.

      Boolean

      access
      optional

      Include what user/roles that each document grants access too.

      Boolean

      revs
      optional

      Include all the revisions for each document under the _revisions property.

      Boolean

      update_seq
      optional

      Include the document sequence number update_seq property for each document.

      Boolean

      keys
      optional

      An array of document ID strings to filter by.

      String List

      startkey
      optional

      Return records starting with the specified key.

      String

      endkey
      optional

      Stop returning records when this key is reached.

      String

      limit
      optional

      This limits the number of result rows returned. Using a value of 0 has the same effect as the value 1.

      BigDecimal

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      OK

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      Check if a document exists

      HEAD /{keyspace}/{docid}
      Description

      Return a status code based on if the document exists or not.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The document ID to run the operation against.

      String

      Query Parameters
      Name Description Schema

      rev
      optional

      The document revision to target.

      String

      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 List

      show_exp
      optional

      Whether to show the expiry property (_exp) in the response.

      Boolean

      revs_from
      optional

      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.

      String List

      atts_since
      optional

      Include attachments only since specified revisions. Excludes the attachments for the specified revisions. Only gets used if attachments=true.

      String List

      revs_limit
      optional

      Maximum amount of revisions to return for each document.

      Integer

      attachments
      optional

      Include attachment bodies in response.

      Boolean

      replicator2
      optional

      Returns the document with the required properties for replication. This is an enterprise-edition only feature.

      Boolean

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Document exists

      400

      Document ID is not in an allowed format therefore is invalid. This could be because it is over 250 characters or is prefixed with an underscore (\"_\").

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      Check if local document exists

      HEAD /{keyspace}/_local/{docid}
      Description

      This request checks if a local document exists.

      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
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The name of the local document ID excluding the _local/ prefix.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Document exists

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      Create a new document

      POST /{keyspace}/
      Description

      Create a new document in the keyspace.

      This will generate a random document ID unless specified in the body.

      A document can have a maximum size of 20MB.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      PostKeyspaceRequest

      Query Parameters
      Name Description Schema

      roundtrip
      optional

      Block until document has been received by change cache

      Boolean

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      200

      New document revision created successfully.

      New_revision

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      409

      Resource already exists under that name

      HTTP_Error

      415

      Invalid content type

      HTTP_Error

      Get all the documents in the database using a built-in view

      POST /{keyspace}/_all_docs
      Description

      Returns all documents in the database based on the specified parameters.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      PostKeyspaceAllDocsRequest

      Query Parameters
      Name Description Schema

      include_docs
      optional

      Include the body associated with each document.

      Boolean

      channels
      optional

      Include the channels each document is part of that the calling user also has access too.

      Boolean

      access
      optional

      Include what user/roles that each document grants access too.

      Boolean

      revs
      optional

      Include all the revisions for each document under the _revisions property.

      Boolean

      update_seq
      optional

      Include the document sequence number update_seq property for each document.

      Boolean

      startkey
      optional

      Return records starting with the specified key.

      String

      endkey
      optional

      Stop returning records when this key is reached.

      String

      limit
      optional

      This limits the number of result rows returned. Using a value of 0 has the same effect as the value 1.

      BigDecimal

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Operation ran successfully

      get_keyspace__all_docs_200_response

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      Bulk document operations

      POST /{keyspace}/_bulk_docs
      Description

      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 Sync Gateway 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.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      Example: {"new_edits":true,"docs":[{"_id":"FooBar","foo":"bar"},{"_id":"AliceSettings","_rev":"5-832a6db48ed130adadede928aee54576","FailedLoginAttempts":7},{"_id":"BobSettings","_rev":"1-fa76ba41ee5fdfee1b91fc478ed09e59","_deleted":true}]}

      PostKeyspaceBulkDocsRequest

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      201

      Executed all operations. Each object in the returned array represents a document. Each document should be checked to make sure it was successfully added to the database.

      Set

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      Get multiple documents in a MIME multipart response

      POST /{keyspace}/_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 (if the attachments query is true).

      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.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      Example: {"docs":[{"id":"FooBar"},{"id":"attachment"},{"id":"AliceSettings"}]}

      PostKeyspaceBulkGetRequest

      Header Parameters
      Name Description Schema

      X-Accept-Part-Encoding
      optional

      If this header includes gzip then the part HTTP compression encoding will be done.

      String

      Accept-Encoding
      optional

      If this header includes gzip then the the HTTP response will be compressed. This takes priority over X-Accept-Part-Encoding. Only part compression will be done if X-Accept-Part-Encoding=gzip and the User-Agent is below 1.2 due to clients not being able to handle full compression.

      String

      Query Parameters
      Name Description Schema

      attachments
      optional

      This is for whether to include attachments in each of the documents returned or not.

      Default: false

      Boolean

      revs
      optional

      Include all the revisions for each document under the _revisions property.

      Boolean

      revs_limit
      optional

      The number of revisions to include in the response from the document history. This parameter only makes a different if the revs query parameter is set to true. The full revision history will be returned if revs is set but this is not.

      Integer

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Returned the requested docs as multipart/mixed response type

      400

      Bad Request

      404

      Resource could not be found

      HTTP_Error

      Upsert a document

      PUT /{keyspace}/{docid}
      Description

      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 Sync Gateway 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.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The document ID to run the operation against.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      PostKeyspaceRequest

      Header Parameters
      Name Description Schema

      If-Match
      optional

      The revision ID to target.

      String

      Query Parameters
      Name Description Schema

      roundtrip
      optional

      Block until document has been received by change cache

      Boolean

      replicator2
      optional

      Returns the document with the required properties for replication. This is an enterprise-edition only feature.

      Boolean

      new_edits
      optional

      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 for replication. This option must be used in conjunction with the _revisions property in the request body.

      Default: true

      Boolean

      rev
      optional

      The document revision to target.

      String

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      201

      Created

      New_revision

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      409

      Resource already exists under that name

      HTTP_Error

      415

      Invalid content type

      HTTP_Error

      Upsert a local document

      PUT /{keyspace}/_local/{docid}
      Description

      This request creates or updates a local document. Updating a local document requires that the revision ID be put in the body under _rev.

      Local document IDs are given a _local/ prefix. 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
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The name of the local document ID excluding the _local/ prefix.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      The body of the document

      PutKeyspaceLocalDocidRequest

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      201

      Document successfully written. The document ID will be prefixed with _local/.

      New_revision

      400

      There was a problem with your request

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      409

      A revision ID conflict would result from updating this document revision.

      Document Attachment

      Create and manage document attachments

      Delete an attachment on a document

      DELETE /{keyspace}/{docid}/{attach}
      Description

      This request deletes an attachment associated with the document.

      If the attachment exists, the attachment will be removed from the document.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The document ID to run the operation against.

      String

      attach
      required

      The 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

      Header Parameters
      Name Description Schema

      If-Match
      optional

      An alternative way of specifying the document revision ID.

      String

      Query Parameters
      Name Description Schema

      rev
      optional

      The existing document revision ID to modify.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Attachment removed from the document successfully

      New_revision

      404

      Resource could not be found

      HTTP_Error

      409

      Resource already exists under that name

      HTTP_Error

      Get an attachment from a document

      GET /{keyspace}/{docid}/{attach}
      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. 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.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The document ID to run the operation against.

      String

      attach
      required

      The 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

      Header Parameters
      Name Description Schema

      Range
      optional

      RFC-2616 bytes range header.

      String

      Query Parameters
      Name Description Schema

      rev
      optional

      The document revision to target.

      String

      content_encoding
      optional

      Set to false to disable the Content-Encoding response header.

      Default: true

      Boolean

      meta
      optional

      Return only the metadata of the attachment in the response body.

      Default: false

      Boolean

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Found attachment successfully.

      206

      Partial attachment content returned

      404

      Resource could not be found

      HTTP_Error

      416

      Requested range exceeds content length

      Check if attachment exists

      HEAD /{keyspace}/{docid}/{attach}
      Description

      This request check if the attachment exists on the specified document.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The document ID to run the operation against.

      String

      attach
      required

      The 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

      Query Parameters
      Name Description Schema

      rev
      optional

      The document revision to target.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      The document exists and the attachment exists on the document.

      404

      Resource could not be found

      HTTP_Error

      Create or update an attachment on a document

      PUT /{keyspace}/{docid}/{attach}
      Description

      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.

      Parameters
      Path Parameters
      Name Description Schema

      keyspace
      required

      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.

      String

      docid
      required

      The document ID to run the operation against.

      String

      attach
      required

      The 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

      Body Parameter
      Name Description Schema

      Body
      optional

      The attachment data

      Example: body_example

      String

      Header Parameters
      Name Description Schema

      Content-Type
      optional

      The content type of the attachment.

      Default: application/octet-stream

      String

      If-Match
      optional

      An alternative way of specifying the document revision ID.

      String

      Query Parameters
      Name Description Schema

      rev
      optional

      The existing document revision ID to modify. Required only when modifying an existing document.

      String

      Produces
      • application/json

      Consumes
      • Attachment content type

      Responses
      HTTP Code Description Schema

      201

      Attachment added to new or existing document successfully

      New_revision

      404

      Resource could not be found

      HTTP_Error

      409

      Resource already exists under that name

      HTTP_Error

      Replication

      Create and manage inter-Sync Gateway replications

      Handle incoming BLIP Sync web socket request

      GET /{db}/_blipsync
      Description

      This handles incoming BLIP Sync requests from either Couchbase Lite or another Sync Gateway node. The connection has to be upgradable to a websocket connection or else the request will fail.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Query Parameters
      Name Description Schema

      client
      optional

      This is the client type that is making the BLIP Sync request. Used to control client-type specific replication behaviour.

      Values: cbl2, sgr2
      Default: cbl2

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      101

      Upgraded to a web socket connection

      404

      Resource could not be found

      HTTP_Error

      426

      Cannot upgrade connection to a web socket connection

      HTTP_Error

      Server

      Manage server activities

      Get server information

      GET /
      Description

      Returns information about the Sync Gateway node.

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Returned server information

      get___200_response

      Check if API is available

      GET /_ping
      Description

      Returns OK status if API is available.

      Produces
      • text/plain

      Responses
      HTTP Code Description Schema

      200

      Returned status

      String

      Check if server online

      HEAD /
      Description

      Check if the server is online by checking the status code of response.

      Responses
      HTTP Code Description Schema

      200

      Server is online

      Check if API is available

      HEAD /_ping
      Description

      Returns OK status if API is available.

      Responses
      HTTP Code Description Schema

      200

      Server is available

      Session

      Manage user sessions

      Log out

      DELETE /{db}/_session
      Description

      Invalidates the session for the currently authenticated user and removes their session cookie.

      If CORS is enabled, the origin must match an allowed login origin otherwise an error will be returned.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Successfully removed session (logged out)

      400

      Bad Request

      404

      Resource could not be found

      HTTP_Error

      Get information about the current user

      GET /{db}/_session
      Description

      This will get the information about the current user.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Properties associated with a user session

      User_Session_Information

      404

      Resource could not be found

      HTTP_Error

      /{db}/_session

      HEAD /{db}/_session
      Description
      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      OK

      404

      Resource could not be found

      HTTP_Error

      Create a new user session

      POST /{db}/_session
      Description

      Generates a login session for the user based on the credentials provided in the request body or if that fails (due to invalid credentials or none provided at all), generates the new session for the currently authenticated user instead. On a successful session creation, a session cookie is stored to keep the user authenticated for future API calls.

      If CORS is enabled, the origin must match an allowed login origin otherwise an error will be returned.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      The body can depend on if using the Public or Admin APIs.

      PostDbSessionRequest

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Session created successfully. Returned body is dependant on if using Public or Admin APIs

      post_db__session_200_response

      400

      Origin is not in the approved list of allowed origins

      HTTP_Error

      404

      Resource could not be found

      HTTP_Error

      Unsupported

      Endpoints that are not supported by Sync Gateway

      Delete a design document | Unsupported

      DELETE /{db}/_design/{ddoc}
      Description

      This is unsupported

      Delete a design document.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      ddoc
      required

      The design document name.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Design document deleted successfully

      403

      Forbidden access possibly due to not using the Admin API or the design document is a built-in Sync Gateway one.

      404

      Resource could not be found

      HTTP_Error

      Get views of a design document | Unsupported

      GET /{db}/_design/{ddoc}
      Description

      This is unsupported

      Query a design document.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      ddoc
      required

      The design document name.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Successfully returned design document.

      get_db__design_ddoc_200_response

      403

      Forbidden access possibly due to not using the Admin API or the design document is a built-in Sync Gateway one.

      404

      Resource could not be found

      HTTP_Error

      Query a view on a design document | Unsupported

      GET /{db}/_design/{ddoc}/_view/{view}
      Description

      This is unsupported

      Query a view on a design document.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      ddoc
      required

      The design document name.

      String

      view
      required

      The view to target.

      String

      Query Parameters
      Name Description Schema

      inclusive_end
      optional

      Indicates whether the specified end key should be included in the result.

      Boolean

      descending
      optional

      Return documents in descending order.

      Boolean

      include_docs
      optional

      Only works when using Couchbase Server 3.0 and earlier. Indicates whether to include the full content of the documents in the response.

      Boolean

      reduce
      optional

      Whether to execute a reduce function on the response or not.

      Boolean

      group
      optional

      Group the results using the reduce function to a group or single row.

      Boolean

      skip
      optional

      Skip the specified number of documents before starting to return results.

      Integer

      limit
      optional

      Return only the specified number of documents

      Integer

      group_level
      optional

      Specify the group level to be used.

      Integer

      startkey_docid
      optional

      Return documents starting with the specified document identifier.

      String

      endkey_docid
      optional

      Stop returning records when the specified document identifier is reached.

      String

      stale
      optional

      Allow the results from a stale view to be used, without triggering a rebuild of all views within the encompassing design document.

      Values: ok, update_after

      String

      startkey
      optional

      Return records starting with the specified key.

      String

      endkey
      optional

      Stop returning records when this key is reached.

      String

      key
      optional

      Return only the document that matches the specified key.

      String

      keys
      optional

      An array of document ID strings to filter by.

      String List

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Returned view successfully

      get_db__design_ddoc__view_view_200_response

      403

      Forbidden

      404

      Resource could not be found

      HTTP_Error

      Check if view of design document exists | Unsupported

      HEAD /{db}/_design/{ddoc}
      Description

      This is unsupported

      Check if a design document can be queried.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      ddoc
      required

      The design document name.

      String

      Produces
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Design document exists

      403

      Forbidden access possibly due to not using the Admin API or the design document is a built-in Sync Gateway one.

      404

      Resource could not be found

      HTTP_Error

      Update views of a design document | Unsupported

      PUT /{db}/_design/{ddoc}
      Description

      This is unsupported

      Update the views of a design document.

      Parameters
      Path Parameters
      Name Description Schema

      db
      required

      The name of the database to run the operation against.

      String

      ddoc
      required

      The design document name.

      String

      Body Parameter
      Name Description Schema

      Body
      optional

      GetDbDesignDdoc200Response

      Produces
      • application/json

      Consumes
      • application/json

      Responses
      HTTP Code Description Schema

      200

      Design document changes successfully

      403

      Forbidden access possibly due to not using the Admin API or the design document is a built-in Sync Gateway one.

      404

      Resource could not be found

      HTTP_Error

      Definitions

      This section describes the properties consumed and returned by this REST API.

      ChangesFeed

      Name Description Schema

      results
      optional

      get_keyspace__changes_200_response_results_inner Set

      last_seq
      optional

      The last change sequence number.

      String

      DesignDoc

      Name Description Schema

      language
      optional

      String

      views
      optional

      get_db__design_ddoc_200_response_views_value Map

      options
      optional

      get_db__design_ddoc_200_response_options

      Document

      Name Description Schema

      _id
      optional

      The ID of the document.

      String

      _rev
      optional

      The revision of the document.

      String

      _exp
      optional

      Expiry time after which the document will be purged. The expiration time is set and managed on the Couchbase Server document. The value can be specified in two ways; in ISO-8601 format, for example the 6th of July 2022 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 expiry values 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 query.

      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

      _deleted
      optional

      Whether the document is a tombstone or not. If true, it is a tombstone.

      Boolean

      _revisions
      optional

      post_keyspace__request__revisions

      _attachments
      optional

      post_keyspace__request__attachments_value Map

      Get200Response

      Name Description Schema

      ADMIN
      optional

      true if the request is from the Admin API - otherwise omitted.

      Example: true

      Boolean

      couchdb
      required

      CouchDB welcome

      Example: Welcome

      String

      vendor
      required

      Product vendor

      get___200_response_vendor

      version
      optional

      Product version, including the build number and edition (i.e. EE or CE) Omitted if api.hide_product_version=true

      Example: Couchbase Sync Gateway/3.1.0(1;a765231) EE

      String

      persistent_config
      optional

      Indication for whether sync gateway is running in persistent config mode or legacy config mode. true if the sync gateway node is running in persistent config mode.

      Example: true

      Boolean

      Get200ResponseVendor

      Name Description Schema

      name
      required

      Product name

      Example: Couchbase Sync Gateway

      String

      version
      optional

      API version. Omitted if api.hide_product_version=true

      Example: 3.1

      String

      GetDb200Response

      Name Description Schema

      db_name
      optional

      Database name

      Example: db

      String

      update_seq
      optional

      The last sequence number that was committed to the database.

      Will return 0 if the database is offline.

      Example: 123456

      Integer

      committed_update_seq
      optional

      The last sequence number that was committed to the database.

      Will return 0 if the database is offline.

      Example: 123456

      Integer

      instance_start_time
      optional

      Timestamp of when the database opened, in microseconds since the Unix epoch.

      Example: 1644600082279583

      Integer

      compact_running
      optional

      Indicates whether database compaction is currently taking place or not.

      Boolean

      purge_seq
      optional

      Unused field.

      Default: 0

      BigDecimal

      disk_format_version
      optional

      Unused field.

      Default: 0

      BigDecimal

      state
      optional

      The database state. Change using the /{db}/_offline and /{db}/_online endpoints.

      Values: Online, Offline

      String

      server_uuid
      optional

      Unique server identifier.

      Example: 995618a6a6cc9ac79731bd13240e19b5

      String

      GetDbDesignDdoc200Response

      Name Description Schema

      language
      optional

      String

      views
      optional

      get_db__design_ddoc_200_response_views_value Map

      options
      optional

      get_db__design_ddoc_200_response_options

      GetDbDesignDdoc200ResponseOptions

      Name Description Schema

      local_seq
      optional

      String

      include_design
      optional

      String

      raw
      optional

      String

      index_xattr_on_deleted_docs
      optional

      String

      GetDbDesignDdoc200ResponseViewsValue

      Name Description Schema

      map
      optional

      String

      reduce
      optional

      String

      GetDbDesignDdocViewView200Response

      Name Description Schema

      total_rows
      required

      Integer

      rows
      required

      get_db__design_ddoc__view_view_200_response_rows_inner List

      errors
      optional

      get_db__design_ddoc__view_view_200_response_errors_inner List

      GetDbDesignDdocViewView200ResponseErrorsInner

      Name Description Schema

      From
      optional

      String

      Reason
      optional

      String

      GetDbDesignDdocViewView200ResponseRowsInner

      Name Description Schema

      id
      optional

      String

      key
      optional

      Object

      value
      optional

      Object

      doc
      optional

      Object

      GetDbOidcTestingCerts200Response

      Name Description Schema

      keys
      required

      get_db__oidc_testing_certs_200_response_keys_inner List

      GetDbOidcTestingCerts200ResponseKeysInner

      Name Description Schema

      Key
      required

      Object

      KeyID
      required

      String

      Use
      required

      String

      Certificates
      optional

      Object List

      Algorithm
      optional

      String

      GetDbOidcTestingWellKnownOpenidConfiguration200Response

      Name Description Schema

      issuer
      optional

      String

      authorization_endpoint
      optional

      String

      token_endpoint
      optional

      String

      jwks_uri
      optional

      String

      userinfo_endpoint
      optional

      String

      id_token_signing_alg_values_supported
      optional

      String

      response_types_supported
      optional

      String

      subject_types_supported
      optional

      String

      scopes_supported
      optional

      String

      claims_supported
      optional

      String

      token_endpoint_auth_methods_supported
      optional

      String

      GetKeyspaceAllDocs200Response

      Name Description Schema

      rows
      required

      get_keyspace__all_docs_200_response_rows_inner Set

      total_rows
      required

      BigDecimal

      update_seq
      required

      BigDecimal

      GetKeyspaceAllDocs200ResponseRowsInner

      Name Description Schema

      key
      optional

      String

      id
      optional

      String

      value
      optional

      get_keyspace__all_docs_200_response_rows_inner_value

      GetKeyspaceAllDocs200ResponseRowsInnerValue

      Name Description Schema

      rev
      optional

      String

      GetKeyspaceChanges200Response

      Name Description Schema

      results
      optional

      get_keyspace__changes_200_response_results_inner Set

      last_seq
      optional

      The last change sequence number.

      String

      GetKeyspaceChanges200ResponseResultsInner

      Name Description Schema

      seq
      optional

      The change sequence number.

      BigDecimal

      id
      optional

      The document ID the change happened on.

      String

      changes
      optional

      List of document leafs with each leaf containing only a rev field.

      get_keyspace__changes_200_response_results_inner_changes_inner Set

      GetKeyspaceChanges200ResponseResultsInnerChangesInner

      Name Description Schema

      rev
      optional

      The new revision that was caused by that change.

      String

      GetKeyspaceDocid200Response

      Name Description Schema

      _id
      optional

      The ID of the document.

      String

      _rev
      optional

      The revision ID of the document.

      String

      HTTP-Error

      Name Description Schema

      error
      required

      The error name.

      String

      reason
      required

      The error description.

      String

      New-revision

      Name Description Schema

      id
      required

      The ID of the document.

      String

      ok
      required

      Whether the request completed successfully.

      Boolean

      rev
      required

      The revision of the document.

      String

      NodeInfo

      Name Description Schema

      ADMIN
      optional

      true if the request is from the Admin API - otherwise omitted.

      Example: true

      Boolean

      couchdb
      required

      CouchDB welcome

      Example: Welcome

      String

      vendor
      required

      Product vendor

      get___200_response_vendor

      version
      optional

      Product version, including the build number and edition (i.e. EE or CE) Omitted if api.hide_product_version=true

      Example: Couchbase Sync Gateway/3.1.0(1;a765231) EE

      String

      persistent_config
      optional

      Indication for whether sync gateway is running in persistent config mode or legacy config mode. true if the sync gateway node is running in persistent config mode.

      Example: true

      Boolean

      OpenID Connect callback properties

      Name Description Schema

      id_token
      optional

      The OpenID Connect ID token

      String

      refresh_token
      optional

      The OpenID Connect ID refresh token

      String

      session_id
      optional

      The Sync Gateway session token

      String

      name
      optional

      The Sync Gateway user

      String

      access_token
      optional

      The OpenID Connect access token

      String

      token_type
      optional

      The OpenID Connect ID token type

      String

      expires_in
      optional

      The time until the id_token expires (TTL).

      BigDecimal

      OIDCLoginPageHandler

      Name Description Schema

      username
      required

      String

      tokenttl
      required

      String

      identity-token-formats
      required

      String

      authenticated
      required

      String

      OIDC-token

      Name Description Schema

      access_token
      optional

      String

      token_type
      optional

      String

      refresh_token
      optional

      String

      expires_in
      optional

      String

      id_token
      optional

      String

      OpenID Connect callback properties

      Name Description Schema

      id_token
      optional

      The OpenID Connect ID token

      String

      refresh_token
      optional

      The OpenID Connect ID refresh token

      String

      session_id
      optional

      The Sync Gateway session token

      String

      name
      optional

      The Sync Gateway user

      String

      access_token
      optional

      The OpenID Connect access token

      String

      token_type
      optional

      The OpenID Connect ID token type

      String

      expires_in
      optional

      The time until the id_token expires (TTL).

      BigDecimal

      PostDbEnsureFullCommit201Response

      Name Description Schema

      instance_start_time
      optional

      Timestamp of when the database opened, in microseconds since the Unix epoch.

      Example: 1644600082279583

      Integer

      ok
      optional

      Default: true
      Example: true

      Boolean

      PostDbFacebook401Response

      Name Description Schema

      error
      optional

      String

      reason
      optional

      String

      PostDbFacebookRequest

      Name Description Schema

      access_token
      required

      Facebook access token to base the new session on.

      String

      PostDbGoogleRequest

      Name Description Schema

      id_token
      required

      Google ID token to base the new session on.

      String

      PostDbOidcTestingAuthenticateRequest

      Name Description Schema

      username
      required

      String

      tokenttl
      required

      String

      identity-token-formats
      required

      String

      authenticated
      required

      String

      PostDbOidcTestingTokenRequest

      Name Description Schema

      grant_type
      required

      The grant type of the token to request. Can either be an authorization_code or refresh_token.

      String

      code
      optional

      grant_type=authorization_code only: The OpenID Connect authentication token.

      String

      refresh_token
      optional

      grant_type=refresh_token only: The OpenID Connect refresh token.

      String

      PostDbSession200Response

      Name Description Schema

      authentication_handlers
      required

      Used for CouchDB compatability. Always contains "default" and "cookie".

      Values:

      String List

      ok
      required

      Used for CouchDB compatability. Always true.

      Default: true

      Boolean

      userCtx
      required

      post_db__session_200_response_userCtx

      PostDbSession200ResponseUserCtx

      Name Description Schema

      channels
      required

      A map of the channels the user is in along with the sequence number the user was granted access.

      post_db__session_200_response_userCtx_channels_value Map

      name
      required

      The name of the user.

      String

      PostDbSession200ResponseUserCtxChannelsValue

      One of the following:

      • BigDecimal

      • String

      PostDbSessionRequest

      Name Description Schema

      name
      optional

      User name to generate the session for.

      String

      password
      optional

      Password of the user to generate the session for.

      String

      PostKeyspaceAllDocsRequest

      Name Description Schema

      keys
      required

      List of the documents to retrieve.

      String List

      PostKeyspaceBulkDocs201ResponseInner

      Name Description Schema

      id
      required

      The ID of the document that the operation was performed on.

      String

      rev
      optional

      The new revision of the document if the operation was a success.

      String

      error
      optional

      The error type if the operation of the document failed.

      String

      reason
      optional

      The reason the operation failed.

      String

      status
      optional

      The HTTP status code for why the operation failed.

      Integer

      PostKeyspaceBulkDocsRequest

      Name Description Schema

      new_edits
      optional

      This controls whether to assign new revision identifiers to new edits (true) or use the existing ones (false).

      Default: true

      Boolean

      docs
      required

      post_keyspace__request List

      PostKeyspaceBulkGetRequest

      Name Description Schema

      docs
      required

      post_keyspace__bulk_get_request_docs_inner List

      PostKeyspaceBulkGetRequestDocsInner

      Name Description Schema

      id
      required

      ID of the document to retrieve.

      String

      PostKeyspaceChangesRequest

      Name Description Schema

      limit
      optional

      Maximum number of changes to return.

      String

      style
      optional

      Controls whether to return the current winning revision (main_only) or all the leaf revision including conflicts and deleted former conflicts (all_docs).

      String

      active_only
      optional

      Set true to exclude deleted documents and notifications for documents the user no longer has access to from the changes feed.

      String

      include_docs
      optional

      Include the body associated with each document.

      Boolean

      revocations
      optional

      If true, revocation messages will be sent on the changes feed.

      String

      filter
      optional

      Set a filter to either filter by channels or document IDs.

      String

      channels
      optional

      A comma-separated list of channel names to filter the response to only the channels specified. To use this option, the filter query option must be set to sync_gateway/bychannels.

      String

      doc_ids
      optional

      A valid JSON array of document IDs to filter the documents in the response to only the documents specified. To use this option, the filter query option must be set to _doc_ids and the feed parameter must be normal.

      String

      heartbeat
      optional

      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 feed=longpoll or feed=continuous. This will override any timeouts to keep the feed alive indefinitely. Setting to 0 results in no heartbeat. The maximum heartbeat can be set in the server replication configuration.

      String

      timeout
      optional

      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=longpoll or feed=continuous changes feeds. Setting to 0 results in no timeout.

      String

      feed
      optional

      The type of changes feed to use.

      String

      PostKeyspaceRequest

      Name Description Schema

      _id
      optional

      The ID of the document.

      String

      _rev
      optional

      The revision of the document.

      String

      _exp
      optional

      Expiry time after which the document will be purged. The expiration time is set and managed on the Couchbase Server document. The value can be specified in two ways; in ISO-8601 format, for example the 6th of July 2022 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 expiry values 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 query.

      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

      _deleted
      optional

      Whether the document is a tombstone or not. If true, it is a tombstone.

      Boolean

      _revisions
      optional

      post_keyspace__request__revisions

      _attachments
      optional

      post_keyspace__request__attachments_value Map

      PostKeyspaceRequestAttachmentsValue

      Name Description Schema

      content_type
      optional

      Content type of the attachment.

      String

      data
      optional

      The data in the attachment in base64.

      String

      PostKeyspaceRequestRevisions

      Name Description Schema

      start
      optional

      Prefix number for the latest revision.

      BigDecimal

      ids
      optional

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

      String List

      PostKeyspaceRevsDiff200Response

      Name Description Schema

      docid
      optional

      The document ID.

      post_keyspace__revs_diff_200_response_docid

      PostKeyspaceRevsDiff200ResponseDocid

      Name Description Schema

      missing
      optional

      The revisions that are not in the database (and therefore missing).

      String List

      possible_ancestors
      optional

      An array of known revisions that might be the recent ancestors.

      String List

      PostKeyspaceRevsDiffRequest

      Name Description Schema

      docid
      optional

      The document ID with an array of revisions to use for the comparison.

      String List

      PutKeyspaceLocalDocidRequest

      Name Description Schema

      _rev
      optional

      Revision to replace. Required if updating existing local document.

      String

      User Session Information

      Name Description Schema

      authentication_handlers
      optional

      The ways authentication can be established to authenticate as the user.

      String List

      ok
      optional

      Boolean

      userCtx
      optional

      User_Session_Information_userCtx

      UserSessionInformationUserCtx

      Name Description Schema

      channels
      optional

      A map of the channels the user has access to and the sequence number each channel was created at.

      The key is the channel name and the value is the sequence number.

      Object

      name
      optional

      The name of the user.

      String