Druva Customers API

Lists the APIs to get information and perform operations on customers managed.

Operations 5

GET /msp/v3/customers List all customers #
POST /msp/v3/customers Create a new customer #
GET /msp/v3/customers/{customerID} Get customer details #
PUT /msp/v3/customers/{customerID} Update customer details #
POST /msp/v2/customers/{customerID}/token Generate API access token for a customer #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/druva-customers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

druva-customers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Druva MSP Customers API
  version: 1.0.0
  x-logo:
    url: ''
  description: Lists the APIs to get information and perform operations on customers managed.
servers:
- url: https://apis.druva.com/
security: []
tags:
- name: Customers
  description: Lists the APIs to get information and perform operations on customers managed.
paths:
  /msp/v3/customers:
    get:
      tags:
      - Customers
      parameters:
      - name: Authorization
        description: Specify the Bearer access token
        schema:
          type: string
        in: header
        required: true
      - name: pageSize
        description: "Specify the number of records you wish to receive in API response. Example - 30. \n Note: Maximum allowed page size is 100. \n pageSize and pageToken are mutually exclusive options."
        schema:
          type: string
        in: query
      - name: pageToken
        description: "- The token to access the next page of results. Use the token value received in the previous response's parameter 'nextPageToken'. \n- Keep this field blank in the first request.\n"
        schema:
          type: string
        in: query
      - name: includeFeatures
        description: "Specify whether customer features should be included in the response. \n includeFeatures and pageToken are mutually exclusive options."
        schema:
          type: boolean
        in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCustomersV3Response'
              examples:
                ListCustomers Sample1:
                  value: "{\n  \"customers\": [\n    {\n      \"id\": \"bde7f8c2-d063-4a4a-9a8f-c2ea5aff42f3-198\",\n      \"accountName\": \"Druva\",\n      \"address\": \"213 Derrick Street Boston, MA 02130 USA\",\n      \"phone\": \"12345678910\",\n      \"customerName\": \"Druva\",\n      \"features\": [\n        {\n          \"name\": \"Security Posture and Observability\"\n        }\n      ],\n      \"tenantAdmins\": [\n        1,\n        2,\n        3\n      ],\n      \"status\": 1,\n      \"createdOn\": \"2022-10-25T00:00:00Z\",\n      \"activeSince\": \"2022-10-25T00:00:00Z\",\n      \"attributes\": [\n        {\n          \"name\": \"licenseManagementAllowed\",\n          \"value\": \"1\"\n        },\n        {\n          \"name\": \"dataAccessAllowed\",\n          \"value\": \"1\"\n        }\n      ],\n      \"cloud\": 0\n    },\n\t{\n      \"id\": \"bde7f8c2-d063-4a4a-9a8f-c2ea5aff42f3-199\",\n      \"accountName\": \"Druvas\",\n      \"address\": \"214 Derrick Street Boston, MA 02130 USA\",\n      \"phone\": \"12345678911\",\n      \"customerName\": \"Druva-Customer\",\n      \"features\": [\n        {\n          \"name\": \"Security Posture and Observability\"\n        }\n      ],\n      \"tenantAdmins\": [\n        1,\n        3\n      ],\n      \"status\": 1,\n      \"createdOn\": \"2022-10-21T00:00:00Z\",\n      \"activeSince\": \"2022-10-21T00:00:00Z\",\n      \"attributes\": [\n        {\n          \"name\": \"licenseManagementAllowed\",\n          \"value\": \"0\"\n        },\n        {\n          \"name\": \"dataAccessAllowed\",\n          \"value\": \"0\"\n        }\n      ],\n      \"cloud\": 2\n    }\n  ],\n  \"nextPageToken\": \"eyJwYWdlU2l6ZSI6IDEwMH0=\"\n}"
          description: Ok
        '400':
          description: Bad Request
        '401':
          description: The request did not include a valid access token. Provide a valid token to proceed.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: The request could not be processed due to an internal error. Try again later. If the error persists, contact Druva Support.
      security:
      - Bearer: []
      operationId: GetCustomersV3
      summary: List all customers
      description: Returns the list of all customers.
    post:
      requestBody:
        description: Specify the details for a new customer.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomerV3Request'
      tags:
      - Customers
      parameters:
      - name: Authorization
        description: Specify the Bearer access token
        schema:
          type: string
        in: header
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskCreatedResponse'
          description: Ok
        '400':
          description: Bad Request
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: The request was not processed due to an internal error in MSP Portal Service.
      security:
      - Bearer: []
      operationId: CreateCustomerV3
      summary: Create a new customer
      description: '- The API supports the creation of Druva Provisioned customers.

        - If no attributes are specified, an MSC Provisioned managed customer is created by default.

        - The only supported attributes are licenseManagedAllowed and dataAccessAllowed. Providing any other attributes will result in an error.

        - For dataAccessAllowed, the only supported value is 1 (Managed).

        - This is an asynchronous operation. Upon initiation, a taskID is generated and can be retrieved from the success response. Use this taskID with the ''Get Task Details'' API to track the progress of the operation.'
  /msp/v3/customers/{customerID}:
    get:
      tags:
      - Customers
      parameters:
      - name: Authorization
        description: Specify the Bearer access token
        schema:
          type: string
        in: header
        required: true
      - name: customerID
        description: Specify the unique ID of the customer you wish to update. Get the ID of the customer using the 'List all customers' API.
        schema:
          type: string
        in: path
        required: true
      - name: includeFeatures
        description: Specify whether customer features should be included in the response.
        schema:
          type: boolean
        in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCustomerV3Response'
              examples:
                GetCustomer Sample1:
                  value: "{\n  \"id\": \"bde7f8c2-d063-4a4a-9a8f-c2ea5aff42f3-198\",\n  \"accountName\": \"Druva\",\n  \"address\": \"213 Derrick Street Boston, MA 02130 USA\",\n  \"phone\": \"12345678910\",\n  \"customerName\": \"Druva\",\n  \"features\": [\n    {\n      \"name\": \"Security Posture and Observability\"\n    }\n  ],\n  \"tenantAdmins\": [\n    1,\n    2,\n    3\n  ],\n  \"status\": 1,\n  \"createdOn\": \"2022-10-25T00:00:00Z\",\n  \"activeSince\": \"2022-10-25T00:00:00Z\",\n  \"attributes\": [\n    {\n      \"name\": \"licenseManagementAllowed\",\n      \"value\": \"1\"\n    },\n    {\n      \"name\": \"dataAccessAllowed\",\n      \"value\": \"1\"\n    }\n  ],\n  \"cloud\": 0\n}"
          description: Ok
        '400':
          description: Bad Request
        '401':
          description: The request did not include a valid access token. Provide a valid token to proceed.
        '404':
          description: The requested resource was not found.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: The request could not be processed due to an internal error. Try again later. If the error persists, contact Druva Support.
      security:
      - Bearer: []
      operationId: GetCustomerV3
      summary: Get customer details
      description: Returns information about a customer using Customer ID.
    put:
      tags:
      - Customers
      parameters:
      - description: Authorization header should contain the Bearer access token.
        name: Authorization
        in: header
        required: true
        schema:
          type: string
      - description: Specify the unique ID of the customer you wish to update. Get the unique ID of the customer using the 'List all customers' API.
        name: customerID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Specify the details to update the customer.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerV3Request'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskCreatedResponse'
          description: Ok
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: The requested resource was not found.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: The request was not processed due to an internal error in MSP Portal Service.
      operationId: UpdateCustomerV3ForDoc
      summary: Update customer details
      description: 'Update existing customer details.

        - The only supported attributes are licenseManagedAllowed and dataAccessAllowed. Providing any other attributes will result in an error.

        - For dataAccessAllowed, the existing value cannot be changed.

        - Refer this page for supported attributes: https://developer.druva.com/docs/msp-product-and-attribute-values.

        - After you initiate the operation, it is queued and a task ID is generated. You can get the task ID from the success response. Use this task ID in the ''Get Task Details'' API to track the operation''s progress.

        - You must provide existing information in all the fields that do not require an update.'
  /msp/v2/customers/{customerID}/token:
    post:
      requestBody:
        description: Generate API Access Token for a customer.
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenerateTokenRequest'
      tags:
      - Customers
      parameters:
      - name: Authorization
        description: Specify the Bearer access token
        schema:
          type: string
        in: header
        required: true
      - name: customerID
        description: Specify the unique ID of the customer for whom you wish to generate the API access token. Get the ID of the customer using the 'List all customers' API.
        schema:
          type: string
        in: path
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateTokenResponse'
          description: Ok
        '400':
          description: Bad Request
        '404':
          description: The requested resource was not found.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: The request was not processed due to an internal error in MSP Portal Service.
      security:
      - Bearer: []
      operationId: Generate API access token
      summary: Generate API access token for a customer
      description: Use this API to generate an API access token that is unique to the customer. Use this token for accessing Druva APIs relevant to the specific customer.
components:
  schemas:
    CustomerAttributes:
      description: The Customer-level attributes for a customer
      type: object
      required:
      - name
      - value
      properties:
        name:
          description: "- The name of the customer attribute\n - For valid attributes and their values, see - https://developer.druva.com/docs/msp-product-and-attribute-values"
          type: string
          example: licenseManagementAllowed
        value:
          description: "- The value of the customer attribute\n - For valid attributes and their values, see - https://developer.druva.com/docs/msp-product-and-attribute-values"
          type: string
          example: '1'
    GenerateTokenResponse:
      type: object
      properties:
        access_token:
          type: string
          description: API access token for specified customer.
          example: MWFkOTdjNzFkMmI2ZTEwZjc1ZTlDMjY2Njp2Y1NZeTN3azdCaVgzUHlZNjNZMzFBPT06MA==
        token_type:
          type: string
          description: Type of the token. This will always be a bearer token.
          example: bearer
        expires_in:
          type: integer
          description: The token expiry time in seconds.
          example: 1800
    TaskCreatedResponse:
      type: object
      properties:
        task:
          type: object
          properties:
            id:
              description: The task ID of the operation, and can be used to track the progress. Use this task ID in the 'Get Task Details' API to track the operation's progress. Example - 'c8b54819-486a-497a-b86e-5b93f2422711'.
              type: string
              example: c8b54819-486a-497a-b86e-5b93f2422711
    GenerateTokenRequest:
      type: object
      properties:
        grant_type:
          type: string
          default: client_credentials
          description: Provide **client_credentials** as the value in this field.
    APIError:
      description: APIError defines an application error result format
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    CreateCustomerV3Request:
      description: Specify the details for a new customer.
      required:
      - accountName
      - address
      - phone
      - customerName
      type: object
      properties:
        accountName:
          description: Specify the account name for the customer. Account name cannot be changed after creation. Example - 'Druva'
          type: string
          example: Druva
        address:
          description: Specify the address for the customer. Example - '213 Derrick Street Boston, MA 02130 USA'
          type: string
          example: 213 Derrick Street Boston, MA 02130 USA
        customerName:
          description: Specify the organization name for the customer. It should be unique across all customers of Druva. Example - 'Druva'
          type: string
          example: Druva
        phone:
          description: "- Specify the phone number for the customer. Example - '12345678910'\n    - Maximum length can be 30.\n    - The country code must be prefixed with a '+' sign.\n"
          type: string
          example: '12345678910'
        tenantAdmins:
          description: Specify the IDs of tenant admins assigned to the customers. You can get tenant admin IDs using 'List admins' API. Example - [1]
          type: array
          items:
            format: int64
            type: integer
          example:
          - 1
          - 2
          - 3
        features:
          description: Specify the features supported at Druva MSP customer level.
          type: array
          items:
            type: object
          example:
          - name: Security Posture and Observability
        attributes:
          description: Specify the attributes supported at Druva MSP customer level.
          type: array
          items:
            $ref: '#/components/schemas/CustomerAttributes'
          example:
          - name: licenseManagementAllowed
            value: '1'
    GetCustomersV3Response:
      type: object
      properties:
        customers:
          description: The list of returned customers.
          type: array
          items:
            $ref: '#/components/schemas/GetCustomerV3Response'
        nextPageToken:
          description: The token to access the next page of results. This is empty if there are no more results. Example - 'eyJwYWdlU2l6ZSI6IDEwMH0='
          type: string
          example: eyJwYWdlU2l6ZSI6IDEwMH0=
    UpdateCustomerV3Request:
      type: object
      required:
      - customerName
      - attributes
      properties:
        accountName:
          description: "- Specify the account name for the customer. Account name cannot be changed in updation. Example - 'Druva'. \n- If account name is different than existing, it will return error.\n - If account name is empty then it will return success"
          type: string
          example: Druva
        address:
          description: Specify the address for the customer. This field can be left empty only for Druva Provisioned customers.
          type: string
          example: 213 Derrick Street Boston, MA 02130 USA
        customerName:
          description: Specify the customer name for the customer.
          type: string
          example: Druva
        features:
          description: Specify the features supported at Druva MSP customer level.
          type: array
          items:
            type: object
          example:
          - name: Security Posture and Observability
        phone:
          description: "- Specify the phone number for the customer.\n    - This field can be left empty only for Druva Provisioned customers.\n    - Maximum length can be 30.\n    - The country code must be prefixed with a '+' sign.\n"
          type: string
          example: '12345678910'
        tenantAdmins:
          type: array
          items:
            type: integer
            format: int64
          example:
          - 1
          - 2
          - 3
          description: '- Specify the unique IDs of tenant administrators who should manage the tenant for the customer. Get the list of tenant administrators IDs using the ''List all administrators'' API.

            - If you want to remove a tenant administrator from this customer, simply do not specify the unique ID of the administrator.

            - If tenant admin list is empty then all tenant admins will be removed'
        attributes:
          description: 'Specify the attributes supported at Druva MSP customer level.

            - Refer this page for supported attributes: https://developer.druva.com/docs/msp-product-and-attribute-values'
          type: array
          items:
            $ref: '#/components/schemas/CustomerAttributes'
          example:
          - name: licenseManagementAllowed
            value: '1'
          - name: dataAccessAllowed
            value: '1'
    GetCustomerV3Response:
      type: object
      properties:
        id:
          description: The unique ID of the customer. Example - 'bde7f8c2-d063-4a4a-9a8f-c2ea5aff42f3-198'
          type: string
          example: bde7f8c2-d063-4a4a-9a8f-c2ea5aff42f3-198
        accountName:
          description: The Account name of the customer. Example - Druva
          type: string
          example: Druva
        address:
          description: The postal address of the customer. Example - '213 Derrick Street Boston, MA 02130 USA'.
          type: string
          example: 213 Derrick Street Boston, MA 02130 USA
        phone:
          description: The contact number of the customer. Example - '12345678910'.
          type: string
          example: '12345678910'
        customerName:
          description: The name of the customer. Example - 'Druva'
          type: string
          example: Druva
        features:
          description: The features subscribed by the customer.
          type: array
          items:
            type: object
          example:
          - name: Security Posture and Observability
        tenantAdmins:
          description: The unique IDs of the tenant admins assigned to the customer. Example - [1]
          type: array
          items:
            format: int64
            type: integer
          example:
          - 1
          - 2
          - 3
        status:
          format: int64
          description: 'The current status of the customer account creation in the MSP Console. Example - 1

            - 0 - Creation pending

            - 1 - Ready

            - 2 - Tenant processing

            '
          type: integer
          example: 1
        createdOn:
          format: date-time
          description: The date and time when the customer was created in the MSP Console. Example - '2022-10-25T00:00:00Z'
          type: string
          example: '2022-10-25T00:00:00Z'
        activeSince:
          format: date-time
          description: The date and time since the customer is in Active state in MSP Console. Example - '2022-10-25T00:00:00Z'.
          type: string
          example: '2022-10-25T00:00:00Z'
        attributes:
          description: The attributes of the given customer
          type: array
          items:
            $ref: '#/components/schemas/CustomerAttributes'
          example:
          - name: licenseManagementAllowed
            value: '1'
        cloud:
          format: int64
          description: 'The cloud where customer account is present. Example - 1

            - 0 - Public

            - 1 - FIPS

            - 2 - FedRamp

            '
          type: integer
          example: 1
  securitySchemes:
    OAuth2:
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: https://apis.druva.com/msp/auth/v1/token
      type: oauth2
    Bearer:
      type: apiKey
      name: Authorization
      in: header