Add a new asset to the account

Create one manual asset

    1. You cannot create net new device records via the Public API. You can only create devices
     in Drata via the Drata Agent or one of our native MDM integrations.
    2. You need to assess whether the device to which you want to map evidence already exists.
        a. If a device already exists in Drata, you can upload evidence to this device specifically
         using the device ID at this endpoint.
        b. If the device does not exist in Drata, you can only upload evidence to the personnel record.
         Use the same endpoint, but use the personnel ID as the device ID.
    3. If you are pursuing use case 2a, Drata will have already created the following mappings:
        a. Asset <--> user (as asset owner)
        b. Device <--> personnel (as device owner)
        c. Asset <--> device (i.e. all devices are assets, but not all assets are devices)
             i. You cannot create, modify, or delete these mappings via the API
    4. If you are pursuing use case 2b, the ability to create the same above mappings is reduced:
        a. Via the API, you can create the desired Asset <--> user (as asset owner) mapping
        b. Drata does not create, and you cannot create, the Device <--> personnel (as device owner) mapping
            i. Drata creates a default “null” device record, where the device ID here is the same as the
             personnel ID
            ii. This is why you use the personnel ID as the device ID when uploading device compliance evidence
             to the personnel record
        c. Drata does not create, and you cannot create, the Asset <--> device (i.e. all devices are assets, but
             not all assets are devices) mapping
            i. You cannot create, modify, or delete this mapping via the API
Securitybearer
Request
Request Body schema: application/json
name
required
string <= 191 characters

The asset name

description
required
string <= 191 characters

The asset description

notes
string <= 191 characters

The asset notes

assetClassTypes
required
Array of arrays

The asset class types

assetType
required
string

The asset type

Enum: "PHYSICAL" "VIRTUAL"
ownerId
required
number

The owner id

uniqueId
string

Unique Id associated with this asset

removedAt
string <date-time>

Date the asset was removed

externalId
string

An externally sourced unique identifier for a virtual asset

externalOwnerId
string

Used to track the source of virtual assets, typically an account id

Responses
201

Record created!

400

Malformed data and/or validation errors

401

Invalid Authorization

403

You are not allowed to perform this action

404

Record Not Found

500

Internal server error

default

Response Code: 412

You must accept the Drata terms and conditions to use the API

post/public/assets
Request samples
application/json
{
  • "name": "Asset name",
  • "description": "This is a description",
  • "notes": "This is a note",
  • "assetClassTypes": [
    • "HARDWARE",
    • "PERSONNEL"
    ],
  • "assetType": "PHYSICAL",
  • "ownerId": 1,
  • "uniqueId": "C02T6CDJGTFL",
  • "removedAt": "2020-07-06 12:00:00.000000",
  • "externalId": "i-0c844e3b433e4e3f",
  • "externalOwnerId": "account-353"
}
Response samples
application/json
{
  • "id": 1,
  • "name": "MacbookPro 13",
  • "description": "MacbookPro 13",
  • "assetType": "PHYSICAL",
  • "assetProvider": "AGENT",
  • "approvedAt": "2020-07-06 12:00:00.000000",
  • "removedAt": "2020-07-06 12:00:00.000000",
  • "assetClassTypes": "AssetClassTypeResponseDto[]",
  • "company": "Acme, Inc",
  • "owner": {
    • "id": 1,
    • "email": "[email protected]",
    • "firstName": "Sally",
    • "lastName": "Smith",
    • "jobTitle": "CEO",
    • "drataTermsAgreedAt": "2020-07-06 12:00:00.000000",
    • "createdAt": "2020-07-06 12:00:00.000000",
    • "updatedAt": "2020-07-06 12:00:00.000000",
    • "roles": [
      • "ROLE",
      • "ANOTHER_ROLE"
      ],
    • "backgroundChecks": [
      • {
        • "id": 1,
        • "userId": 1,
        • "status": "OK",
        • "caseId": "abc123",
        • "caseInvitationId": "abc123",
        • "manualCheckDate": "2020-07-06",
        • "manuallyCheckUrl": "url.com",
        • "type": "CERTN",
        • "source": "DRATA",
        • "reportData": "string",
        • "user": { },
        • "outOfScopeReason": "abc123",
        • "outOfScopeAt": "2020-07-06 12:00:00.000000",
        • "invitationEmail": "[email protected]",
        • "linkedAt": "2020-07-06 12:00:00.000000",
        • "createdAt": "2020-07-06 12:00:00.000000",
        • "updatedAt": "2020-07-06 12:00:00.000000"
        }
      ],
    • "identities": [
      • {
        • "id": 1,
        • "identityId": "1a2b3c",
        • "username": "Username",
        • "connectedAt": "2020-07-06 12:00:00.000000",
        • "disconnectedAt": "2020-07-06 12:00:00.000000",
        • "hasMfa": true,
        • "user": { },
        • "connection": {
          • "id": "1",
          • "clientType": "GOOGLE",
          • "state": "ACTIVE",
          • "connected": false,
          • "connectedAt": "2020-07-06 12:00:00.000000",
          • "failedAt": "2020-07-06 12:00:00.000000",
          • "companyId": "12341234",
          • "assignmentId": "FLk12AsS",
          • "user": { },
          • "accountId": "string",
          • "clientId": "drata.com",
          • "clientAlias": "My-connection-alias-1",
          • "manuallyUpdatedAt": "2020-07-06 12:00:00.000000",
          • "aliasUpdatedAt": "2020-07-06 12:00:00.000000",
          • "deletedAt": "2020-07-06 12:00:00.000000",
          • "requestorId": "328d3016-71f3-4485-af20-06ce8044da18",
          • "product": "",
          • "writeAccessEnabled": false,
          • "sourcePreference": "LABEL",
          • "securityLabel": "Jira Security Label",
          • "jqlQuery": "project = IT AND type = \"Offboarding\"",
          • "authorized": true,
          • "workspaces": [],
          • "providerTypes": [
            • 5
            ],
          • "code": 10010,
          • "groupLabel": "Everyone"
          },
        • "hasIdp": true
        }
      ]
    },
  • "employmentStatus": "CURRENT_EMPLOYEE",
  • "notes": "string",
  • "assetReferenceType": "PERSONNEL",
  • "uniqueId": "C02T6CDJGTFL",
  • "createdAt": "2020-07-06 12:00:00.000000",
  • "updatedAt": "2020-07-06 12:00:00.000000",
  • "device": {
    • "id": 1,
    • "osVersion": "MacOS 10.15.6",
    • "serialNumber": "C02T6CDJGTFL",
    • "model": "MacBook Pro",
    • "screenLockTime": "60",
    • "agentVersion": "1.0",
    • "macAddress": "65-F9-3D-85-7B-6B,99-A9-3E-14-7A-3E",
    • "admins": "Admin A",
    • "processor": "Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz",
    • "memory": "17179869184",
    • "hddSize": "1TB",
    • "graphics": "RTX 3080",
    • "encryptionEnabled": false,
    • "firewallEnabled": true,
    • "gateKeeperEnabled": false,
    • "lastCheckedAt": "2020-07-06 12:00:00.000000",
    • "sourceType": "AGENT",
    • "createdAt": "2020-07-06 12:00:00.000000",
    • "updatedAt": "2020-07-06 12:00:00.000000",
    • "deletedAt": "2020-07-06 12:00:00.000000",
    • "appsCount": 20,
    • "complianceChecks": [ ],
    • "identifiers": [ ],
    • "documents": [ ],
    • "isDeviceCompliant": false
    },
  • "externalId": "i-0c844e3b433e4e3f",
  • "externalOwnerId": "account-353"
}