REST API reference

      +
      The REST API supports the management of Couchbase-Server clusters.

      The REST API supports the management of Couchbase-Server clusters. This includes cluster-creation and the definition of nodes, services, and server groups. The API also supports the extensive retrieval of statistics.

      This page provides a complete list of HTTP methods and URIs. It also lists HTTP Request Headers and HTTP Response Codes.

      Nodes and Clusters API

      The Cluster API provides support for managing and retrieving information on clusters. It also provides support for managing rebalance, failover, and server group awareness. The APIs for each area are assigned a table, below.

      Cluster Initialization and Provisioning

      HTTP Method URI Documented at

      POST

      /clusterInit

      Initialize a Cluster

      POST

      /nodes/self/controller/settings

      Initializing a Node

      POST

      /settings/web

      Establishing Credentials

      POST

      /node/controller/rename

      Naming a Node

      POST

      /pools/default

      Configuring Memory

      POST

      /node/controller/setupServices

      Assigning Services

      POST

      /pools/default

      Naming a Cluster

      Node Addition and Removal

      HTTP Method URI Documented at

      POST

      /controller/addNode

      Adding Nodes to Clusters

      POST

      /node/controller/doJoinCluster

      Joining Nodes to Clusters

      POST

      /controller/ejectNode

      Removing Nodes from Clusters

      Rebalance

      HTTP Method URI Documented at

      POST

      /controller/rebalance

      Rebalancing the Cluster

      GET

      /pools/default/rebalanceProgress

      Getting Rebalance Progress

      GET

      /pools/default/retryRebalance

      Configuring Rebalance Retries

      POST

      /pools/default/retryRebalance

      Configuring Rebalance Retries

      GET

      /pools/default/pendingRetryRebalance

      Getting Rebalance-Retry Status

      POST

      /controller/cancelRebalanceRetry/<rebalance-id>

      Canceling Rebalance Retries

      GET

      /settings/rebalance

      Limiting Concurrent vBucket Moves

      POST

      /settings/rebalance

      Limiting Concurrent vBucket Moves

      POST

      /internalSettings

      Disabling Consistent View Query Results on Rebalance

      Manual-Failover

      HTTP Method URI Documented at

      POST

      /controller/failOver

      Performing Hard Failover

      POST

      /controller/startGracefulFailover

      Performing Graceful Failover

      POST

      /controller/setRecoveryType

      Setting Recovery Type

      Auto-Failover

      HTTP Method URI Documented at

      GET

      /settings/autoFailover

      Retrieving Auto-Failover Settings

      POST

      /settings/autoFailover

      Enabling and Disabling Auto-Failover

      POST

      /settings/autoFailover/resetCount

      Resetting Auto-Failover

      POST

      /controller/setRecoveryType

      Setting Recovery Type

      Settings and Connections

      HTTP Method URI Documented at

      GET

      /internalSettings

      Managing Internal Settings

      POST

      /internalSettings

      Managing Internal Settings

      GET

      /settings/maxParallelIndexers

      Managing Internal Settings

      POST

      /settings/maxParallelIndexers

      Managing Internal Settings

      GET

      /pools/default/settings/memcached/global

      Managing Cluster Connections

      POST

      /pools/default/settings/memcached/global

      Managing Cluster Connections

      PUT

      /node/controller/setupAlternateAddresses/external

      Managing Alternate Addresses

      DELETE

      /node/controller/setupAlternateAddresses/external

      Managing Alternate Addresses

      GET

      /settings/alerts

      Getting Alert Settings

      POST

      /settings/alerts

      Enabling and Disabling Email Notifications

      POST

      /settings/alerts/sendTestEmail

      Sending Test Emails

      Status and Events

      HTTP Method URI Documented at

      GET

      /pools/default/tasks

      Getting Cluster Tasks

      GET

      /logs/rebalanceReport?reportID=<report-id>

      Getting Cluster Tasks

      GET

      /pools

      Retrieving Cluster Information

      GET

      /pools/default

      Viewing Cluster Details

      GET

      /events

      Getting System Events

      GET

      /eventsStreaming

      Getting System Events

      GET

      /pools/default/terseClusterInfo

      Identifying the Orchestrator Node

      GET

      /pools/nodes

      Getting Information on Nodes

      GET

      /pools/default/nodeServices

      Listing Node Services

      Statistics

      HTTP Method URI Documented at

      GET

      /pools/default/stats/range/<metric_name>/[function-expression]

      Getting a Single Statistic

      POST

      /pools/default/stats/range

      Getting Multiple Statistics

      Logging

      HTTP Method URI Documented at

      GET

      /diag

      Retrieving Log Information

      GET

      /sasl_logs

      Retrieving Log Information

      GET

      /sasl_logs/[log-name]

      Retrieving Log Information

      POST

      /logClientError

      Creating Client Logs

      Buckets API

      Couchbase Server keeps items in buckets. Before an item can be saved, a bucket must exist for it. Buckets can be created and managed by means of the following REST API.

      HTTP Method URI Documented at

      POST

      /pools/default/buckets

      Creating and Editing Buckets

      POST

      /pools/default/buckets/<bucketName>

      Creating and Editing Buckets

      GET

      /pools/default/buckets

      Getting Bucket Information

      GET

      /pools/default/buckets/<bucket-name>

      Getting Bucket Information

      POST

      /pools/default/buckets/<bucket-name>/nodes

      Listing Nodes by Bucket

      GET

      /pools/default/buckets/[bucket-name]/stats

      Getting Bucket Statistics

      GET

      /pools/default/buckets/default

      Getting Bucket Streaming URI

      DELETE

      /pools/default/buckets/[bucket-name]

      Deleting Buckets

      DELETE

      /pools/default/buckets/[bucket-name]

      Deleting Buckets

      POST

      /pools/default/buckets/[bucket-name]/controller/doFlush

      Flushing Buckets

      GET

      /sampleBuckets

      Managing Sample Buckets

      POST

      /sampleBuckets/install

      Managing Sample Buckets

      Scopes and Collections API

      Couchbase Server provides scopes and collections; allowing documents to be categorized and organized, within a bucket. The REST API provided for the creation and management of scopes and collections is listed below.

      HTTP Method URI Documented at

      POST

      /pools/default/buckets/<bucket_name>/scopes

      Creating a Scope

      POST

      /pools/default/buckets/<bucket_name>/scopes/<scope_name>/collections

      Creating a Collection

      GET

      /pools/default/buckets/<bucket_name>/scopes/

      Listing Scopes and Collections

      DELETE

      /pools/default/buckets/<bucket_name>/scopes/<scope_name>/collections/<collection_name>

      Dropping a Collection

      DELETE

      /pools/default/buckets/<bucket_name>/scopes/<scope_name>

      Dropping a Scope

      Memory and Storage API

      Memory quotas can be allocated to services, and the current allocations retrieved. During cluster initialization, the on-disk paths for services can be specified on a per node basis.

      Reader and writer threads can be configured, to ensure that disk access is highly performant.

      Compaction can be managed: this is used by Couchbase Server to relocate on-disk data; so as to ensure the data’s closest-possible proximity, and thereby reclaim fragments of unused disk-space. The periodic compaction of a bucket’s data helps to ensure the ongoing efficiency of both reads and writes.

      HTTP Method URI Documented at

      POST

      /nodes/self/controller/settings

      Initializing a Node

      POST

      /pools/default

      Configuring Memory

      POST

      /pools/default/settings/memcached/global

      Setting Thread Allocations

      GET

      /nodes/self

      Getting Storage Information

      POST

      /pools/default/buckets/[bucket-name]/controller/compactBucket

      Performing Compaction Manually

      POST

      /pools/default/buckets/[bucket-name]/controller/cancelBucketCompaction

      Performing Compaction Manually

      GET

      /settings/autoCompaction

      Auto-Compaction: Global

      POST

      /controller/setAutoCompaction

      Auto-Compaction: Global

      GET

      /pools/default/buckets/[bucket-name]

      Auto-Compaction: Per Bucket

      POST

      /pools/default/buckets/[bucket-name]

      Auto-Compaction: Per Bucket

      Server Groups API

      Server Group Awareness provides enhanced availability. Specifically, it protects a cluster from large-scale infrastructure failure, through the definition of groups. Its REST API is expressed by the following table.

      HTTP Method URI Documented at

      GET

      /pools/default/serverGroups

      Getting Group Information

      POST

      /pools/default/serverGroups

      Creating Groups

      POST

      /pools/default/serverGroups/<:uuid>/addNode

      Adding Nodes to Groups

      PUT

      /pools/default/serverGroups/<:uuid>

      Renaming Groups

      PUT

      /pools/default/serverGroups?rev=<:number>

      Updating Group Membership

      DELETE

      /pools/default/serverGroups/<:uuid>

      Deleting Groups

      XDCR API

      Cross Data Center Replication (XDCR) replicates data between a source bucket and a target bucket. The buckets may be located on different clusters, and in different data centers: this provides protection against data-center failure, and also provides high-performance data-access for globally distributed, mission-critical applications. XDCR is supported by the REST API shown in the table below.

      HTTP Method URI Documented at

      POST

      /pools/default/remoteClusters

      Creating and Editing References

      GET

      /pools/default/remoteClusters

      Getting a Reference

      POST

      /controller/createReplication

      Creating a Replication

      POST

      /settings/replications/[replication_id]

      Pausing and Resuming a Replication

      DELETE

      /controller/cancelXDCR/[url_encoded_replication_id]

      Deleting a Replication

      DELETE

      /pools/default/remoteClusters/[destination-cluster-name]

      Deleting a Reference

      POST

      /settings/replications/

      Managing Advanced Settings

      POST

      /settings/replications/<settings_URI>

      Managing Advanced Settings

      GET

      /settings/replications/

      Managing Advanced Settings

      GET

      /settings/replications/<settings_URI>

      Managing Advanced Settings

      GET

      /pools/default/buckets/[source_bucket]/stats/[destination_endpoint]

      Getting Statistics

      Security API

      The Security REST API provides the endpoints for general security, for authentication, and for authorization. These APIs are listed in the tables below.

      General Security

      HTTP Method URI Documented at

      GET

      ./whoami

      Who Am I?

      GET

      /settings/audit

      Configure Auditing

      POST

      /settings/audit

      Configure Auditing

      GET

      /settings/audit/descriptors

      Configure Auditing

      GET

      /settings/security

      Restrict Node-Addition

      POST

      /settings/security

      Restrict Node-Addition

      POST

      /clusterInit

      Initialize a Cluster

      GET

      /settings/security/[service-name]

      Configure On-the-Wire Security

      POST

      /settings/security/[service-name]

      Configure On-the-Wire Security

      GET

      /settings/security/responseHeaders

      Configure HSTS

      POST

      /settings/security/responseHeaders

      Configure HSTS

      DELETE

      /settings/security/responseHeaders

      Configure HSTS

      POST

      /node/controller/changeMasterPassword

      Secret Management API

      POST

      /node/controller/rotateDataKey

      Secret Management API

      Authentication

      HTTP Method URI Documented at

      GET

      /settings/ldap

      Configure LDAP

      POST

      /settings/ldap

      Configure LDAP

      GET

      /settings/saslauthdAuth

      Configure saslauthd

      POST

      /settings/saslauthdAuth

      Configure saslauthd

      GET

      /settings/passwordPolicy

      Set Password Policy

      POST

      /settings/passwordPolicy

      Set Password Policy

      POST

      /node/controller/loadTrustedCAs

      Load Root Certificates

      GET

      /node/controller/loadTrustedCAs

      Get Root Certificates

      DELETE

      /pools/default/trustedCAs/<id>

      Delete Root Certificates

      GET

      /pools/default/certificates

      Retrieve All Node Certificates

      POST

      /node/controller/reloadCertificate

      Upload and Retrieve Node Certificates

      GET

      /pools/default/certificate/node/<ip-address-or-domain-name>

      Upload and Retrieve Node Certificates

      POST

      /controller/regenerateCertificate

      Regenerate All Certificates

      Authorization

      HTTP Method URI Documented at

      GET

      /settings/rbac/roles

      List Roles

      GET

      /settings/rbac/users

      List Current Users and Their Roles

      POST

      /pools/default/checkPermissions

      Check Permissions

      GET

      /settings/rbac/groups

      List Currently Defined Groups

      PUT

      /settings/rbac/users/local/<new-username>

      Create a Local User

      PATCH

      /settings/rbac/users/local/<existing-username>

      Create a Local User

      PUT

      /settings/rbac/users/local/<new-username>

      Create an External User

      PUT

      /settings/rbac/groups/<new-groupname>

      Create a Group

      DELETE

      /settings/rbac/users/local/<local-username>

      Delete Users and Groups

      DELETE

      /settings/rbac/users/external/<external-username>

      Delete Users and Groups

      DELETE

      /settings/rbac/groups/<groupname>

      Delete Users and Groups

      Query Service API

      The Query Service provides a REST API that covers four requirements; which are the administration of Query Service nodes, the configuration of the Query Service, the execution of N1QL statements, and the management of JavaScript libraries and objects used to create N1QL user-defined functions. The REST API is detailed in the tables below.

      Query Service Administration

      HTTP Method URI Documented at

      GET

      /admin/clusters

      Read All Clusters

      GET

      /admin/clusters/{cluster}

      Read a Cluster

      GET

      /admin/clusters/{cluster}/nodes

      Read All Nodes

      GET

      /admin/clusters/{cluster}/nodes/{node}

      Read a Node

      GET

      /admin/config

      Read Configuration

      GET

      /admin/prepareds

      Retrieve All Prepared Statements

      GET

      /admin/prepareds/{name}

      Retrieve a Prepared Statement

      DELETE

      /admin/prepareds/{name}

      Delete a Prepared Statement

      GET

      /admin/indexes/prepareds

      Retrieve Prepared Index Statements

      GET

      /admin/active_requests

      Retrieve All Active Requests

      GET

      /admin/active_requests/{request}

      Retrieve an Active Request

      DELETE

      /admin/active_requests/{request}

      Delete an Active Request

      GET

      /admin/indexes/active_requests

      Retrieve Active Index Requests

      GET

      /admin/completed_requests

      Retrieve All Completed Requests

      GET

      /admin/completed_requests/{request}

      Retrieve a Completed Request

      DELETE

      /admin/completed_requests/{request}

      Delete a Completed Request

      GET

      /admin/indexes/completed_requests

      Retrieve Completed Index Requests

      GET

      /admin/vitals

      Retrieve Vitals

      GET

      /admin/stats

      Retrieve All Statistics

      GET

      /admin/stats/{stats}

      Retrieve a Statistic

      GET

      /admin/settings

      Retrieve Node-Level Query Settings

      POST

      /admin/settings

      Update Node-Level Query Settings

      GET

      /admin/ping

      Ping

      Query Service Settings

      HTTP Method URI Documented at

      GET

      /settings/querySettings

      Retrieve Cluster-Level Query Settings

      POST

      /settings/querySettings

      Update Cluster-Level Query Settings

      GET

      /settings/querySettings/curlWhitelist

      Retrieve CURL Access List

      POST

      /settings/querySettings/curlWhitelist

      Update CURL Access List

      N1QL Statement Execution

      HTTP Method URI Documented at

      POST

      /query/service

      Query Service

      GET

      /query/service

      Read-Only Query Service

      JavaScript Management

      HTTP Method URI Documented at

      GET

      /evaluator/v1/libraries

      Read All Libraries

      GET

      /evaluator/v1/libraries/{library}

      Read a Library

      POST

      /evaluator/v1/libraries/{library}

      Create or Update a Library

      DELETE

      /evaluator/v1/libraries/{library}

      Delete a Library

      Index Service API

      The Index Service REST API provides configuration options for the Index Service. The API is listed below.

      HTTP Method URI Documented at

      GET

      /settings/indexes

      Retrieve GSI Settings

      POST

      /settings/indexes

      Set GSI Settings

      GET

      /api/v1/stats

      Get Node Statistics

      GET

      /api/v1/stats/{keyspace}

      Get Keyspace Statistics

      GET

      /api/v1/stats/{keyspace}/{index}

      Get Index Statistics

      Backup Service API

      The Backup Service API supports management of the Backup Service, providing endpoints categorized as follows: Cluster, Configuration, Repository, Plan, Task, and Data. All calls require the Full Admin role, and use port 8097. Each URI, in Couchbase Server Enterprise Edition Version 7.0 and later, must be prefixed with /api/v1.

      The individual endpoints are listed by category, in the tables below.

      Cluster

      HTTP Method URI Documented at

      GET

      /cluster/self

      Get Information on the Cluster

      Configuration

      HTTP Method URI Description

      GET

      /config

      Manage Backup Configuration

      POST

      /config

      Manage Backup Configuration

      PUT

      /config

      Manage Backup Configuration

      Repository

      HTTP Method URI Documented at

      GET

      /cluster/self/repository/<'active'|'archived'|'imported'>

      Get Information on Repositories

      GET

      /cluster/self/repository/active/<repository-id>

      Get Information on Repositories

      GET

      /cluster/self/repository/<'active'|'archived'|'imported'>/<repository-id>/info

      Get Information on Repositories

      POST

      /cluster/self/repository/active/<repository-id>

      Create a Repository

      POST

      /cluster/self/repository/<'archived'|'imported'>/<repository-id>/restore

      Restore Data

      POST

      /cluster/self/repository/import

      Import a Repository

      POST

      /cluster/self/repository/<'active'|'archived'|'imported'>/<repository-id>/examine

      Examine Backed-Up Data

      POST

      /cluster/self/repository/active/<repository-id>/backup

      Perform an Immediate Backup

      POST

      /cluster/self/repository/active/<repository-id>/merge

      Perform an Immediate Merge

      POST

      /cluster/self/repository/active/<repository-id>/archive

      Archive a Repository

      POST

      /cluster/self/repository/active/<repository-id>/pause

      Pause and Resume Tasks

      POST

      /cluster/self/repository/active/<repository-id>/resume

      Pause and Resume Tasks

      DELETE

      /cluster/self/repository/<'archived'|'imported'>/<repository-id>

      Delete a Repository

      DELETE

      /cluster/self/repository/<'archived'|'imported'>/<repository-id>?remove_repository

      Delete a Repository

      DELETE

      /cluster/self/repository/active/<repository-id>/backups/<backup-id>

      Delete a Backup

      Plan

      HTTP Method URI Documented at

      GET

      /cluster/plan

      Get Information on Plans

      GET

      /cluster/plan/<plan-id>

      Get Information on Plans

      POST

      /cluster/plan/<plan-id>

      Create and Edit Plans

      PUT

      /cluster/plan/<existing-plan-id>

      Create and Edit Plans

      DELETE

      /plan/<plan-id>

      Delete a Plan

      Task

      HTTP Method URI Documented at

      GET

      /cluster/self/repository/<'active'|'archived'|'imported'>/<repository-id>/taskHistory

      Get Information on Tasks

      GET

      /cluster/self/repository/<'active'|'archived'|'imported'>/<repository-id>/taskHistory?<task-subset-specification-string>

      Get Information on Tasks

      Data

      HTTP Method URI Documented at

      DELETE

      /cluster/self/repository/active/<repository-id>/backups/<backup-id>

      Delete Backups

      Search Service API

      The Search Service allows users to create, manage, and query Full Text Indexes, whereby searches can be performed and matches attained on character strings. The Search Service REST API allows such indexes to be created and maintained. The API is listed in the tables below.

      Index Definition

      HTTP Method URI Documented at

      GET

      /api/index

      Index Definition

      GET

      /api/index/{indexName}

      Index Definition

      PUT

      /api/index/{indexName}

      Index Definition

      DELETE

      /api/index/{indexName}

      Index Definition

      Index Management

      HTTP Method URI Documented at

      POST

      /api/index/{indexName}/ingestControl/{op}

      Index Management

      POST

      /api/index/{indexName}/planFreezeControl/{op}

      Index Management

      POST

      /api/index/{indexName}/planQueryControl/{op}

      Index Management

      Index Monitoring and Debugging

      HTTP Method URI Documented at

      GET

      /api/stats

      Index Monitoring And Debugging

      GET

      /api/stats/{indexName}

      Index Monitoring And Debugging

      POST

      /api/stats/{indexName}/analyzeDoc

      Index Monitoring And Debugging

      GET

      /api/query/index/{indexName}

      Index Monitoring And Debugging

      Index Querying

      HTTP Method URI Documented at

      GET

      /api/index/{indexName}/count

      Index Querying

      POST

      /api/index/{indexName}/query

      Index Querying

      Node Configuration

      HTTP Method URI Documented at

      GET

      /api/cfg

      Node Configuration

      POST

      /api/cfgRefresh

      Node Configuration

      POST

      /api/managerKick

      Node Configuration

      GET

      /api/managerMeta

      Node Configuration

      Node Diagnostics

      HTTP Method URI Documented at

      GET

      /api/diag

      Node Diagnostics

      GET

      /api/log

      Node Diagnostics

      GET

      /api/runtime

      Node Diagnostics

      GET

      /api/runtime/args

      Node Diagnostics

      POST

      /api/runtime/profile/cpu

      Node Diagnostics

      POST

      /api/runtime/profile/memory

      Node Diagnostics

      Node Management

      HTTP Method URI Documented at

      POST

      /api/runtime/gc

      Node Management

      Node Monitoring

      HTTP Method URI Documented at

      GET

      /api/runtime/stats

      Node Monitoring

      GET

      /api/runtime/stats/statsMem

      Node Monitoring

      Index Partition Definition

      HTTP Method URI Documented at

      GET

      /api/pindex

      Advanced

      GET

      /api/pindex/{pindexName}

      Advanced

      Index Partition Querying

      HTTP Method URI Documented at

      GET

      /api/pindex/{pindexName}/count

      Advanced

      POST

      /api/pindex/{pindexName}/query

      Advanced

      FTS Memory Quota

      HTTP Method URI Documented at

      POST

      /pools/default

      Advanced

      Eventing Service API

      The Eventing Service REST API provides methods for working with Eventing Functions. The complete API is listed at Eventing REST API.

      Analytics Service API

      The Analytics Service provides a REST API for querying, configuration, and the management of links and libraries. The API is listed in the following tables.

      Analytics Query API

      HTTP Method URI Documented at

      POST

      /analytics/service

      Query Service

      GET

      /analytics/service

      Read-Only Query Service

      POST

      /query/service

      Query Service (Alternative)

      GET

      /query/service

      Read-Only Query Service (Alternative)

      Analytics Admin API

      HTTP Method URI Documented at

      DELETE

      /analytics/admin/active_requests

      Request Cancellation

      GET

      /analytics/cluster

      Cluster Status

      POST

      /analytics/cluster/restart

      Cluster Restart

      POST

      /analytics/node/restart

      Node Restart

      GET

      /analytics/status/ingestion

      Ingestion Status

      Analytics Config API

      HTTP Method URI Documented at

      GET

      /analytics/config/service

      View Service-Level Parameters

      PUT

      /analytics/config/service

      Modify Service-Level Parameters

      GET

      /analytics/config/node

      View Node-Specific Parameters

      PUT

      /analytics/config/node

      Modify Node-Specific Parameters

      Analytics Settings API

      HTTP Method URI Documented at

      GET

      /settings/analytics

      View Analytics Settings

      PUT

      /settings/analytics

      Modify Analytics Settings

      HTTP Method URI Documented at

      POST

      /analytics/link/{scope}/{name}

      Create Link

      GET

      /analytics/link/{scope}/{name}

      Query Link

      PUT

      /analytics/link/{scope}/{name}

      Edit Link

      DELETE

      /analytics/link/{scope}/{name}

      Delete Link

      GET

      /analytics/link

      Query All Links

      GET

      /analytics/link/{scope}

      Query Scope Links

      Analytics Library API

      HTTP Method URI Documented at

      GET

      /analytics/library

      Read All Libraries

      POST

      /analytics/library/{scope}/{library}

      Create or Update a Library

      DELETE

      /analytics/library/{scope}/{library}

      Delete a Library

      HTTP Request Headers

      The following HTTP request headers are used to create requests:

      Header Supported Values Description of Use Required

      Accept

      Comma-delimited list of media types or media type patterns.

      Indicates to the server what media type(s) this client is prepared to accept.

      Recommended

      Authorization

      Basic plus username and password (per RFC 2617).

      Identifies the authorized user making this request.

      No, unless secured

      Content-Length

      Body Length (in bytes)

      Describes the size of the message body.

      Yes, on requests that contain a message body.

      Content-Type

      Content type

      Describes the representation and syntax of the request message body.

      Yes, on requests that contain a message body.

      Host

      Origin host name

      Required to allow support of multiple origin hosts at a single IP address.

      All requests

      X-YYYYY-Client-Specification-Version

      String

      Declares the specification version of the YYYYY API that this client was programmed against.

      No

      HTTP Response Codes

      The Couchbase Server returns one of the following HTTP status codes in response to REST API requests:

      HTTP response Description

      200 OK

      Successful request and an HTTP response body returns. If this creates a new resource with a URI, the 200 status will also have a location header containing the canonical URI for the newly created resource.

      201 Created

      Request to create a new resource is successful, but no HTTP response body returns. The URI for the newly created resource returns with the status code.

      202 Accepted

      The request is accepted for processing, but processing is not complete. Per HTTP/1.1, the response, if any, SHOULD include an indication of the request’s current status, and either a pointer to a status monitor or some estimate of when the request will be fulfilled.

      204 No Content

      The server fulfilled the request, but does not need to return a response body.

      400 Bad Request

      The request could not be processed because it contains missing or invalid information, such as validation error on an input field, a missing required value, and so on.

      401 Unauthorized

      The credentials provided with this request are missing or invalid.

      403 Forbidden

      The server recognized the given credentials, but you do not possess proper access to perform this request.

      404 Not Found

      URI provided in a request does not exist.

      405 Method Not Allowed

      The HTTP verb specified in the request (DELETE, GET, HEAD, POST, PUT) is not supported for this URI.

      406 Not Acceptable

      The resource identified by this request cannot create a response corresponding to one of the media types in the Accept header of the request.

      409 Conflict

      A create or update request could not be completed, because it would cause a conflict in the current state of the resources supported by the server. For example, an attempt to create a new resource with a unique identifier already assigned to some existing resource.

      500 Internal Server Error

      The server encountered an unexpected condition which prevented it from fulfilling the request.

      501 Not Implemented

      The server does not currently support the functionality required to fulfill the request.

      503 Service Unavailable

      The server is currently unable to handle the request due to temporary overloading or maintenance of the server.