1Password · Schema

Device

An asset (device)

Password ManagerPasswordsSecuritySecretsCanada

Properties

Name Type Description
id stringnull The asset's SaaS Manager ID. Supply to replace an existing asset.
externalId stringnull The asset's external ID, sourced from the integration that imported it.
status stringnull The device's status. This is the status's reference ID; custom statuses are prefixed `user_`. Defaults to New on creation.
statusType stringnull The base status the device's status maps to. Custom statuses always map to one of these.
hardwareVendor stringnull The hardware vendor (manufacturer). Required when creating an asset.
modelName stringnull The model name. Required when creating an asset.
assetType stringnull The asset type, e.g. Laptop
serialNumber stringnull The serial number
description stringnull A description of the asset, sourced from integrations.
deviceName stringnull The device name, sourced from integrations.
assetTag stringnull The asset tag
purchasedDate stringnull (ISO format) The purchase date
disposalDate stringnull (ISO format) The disposal date
warrantyExpirationDate stringnull (ISO format) The warranty expiration date
lifespanExpirationDate stringnull (ISO format) The end of the asset's useful life
notes stringnull Notes about the asset
assignedTo object The person the asset is assigned to. To set the assignee, use assignedToEmail.
assignedToEmail stringnull Assign the asset to a person by email address. Pass null to unassign.
netPrice numbernull The net price, in the currency given by netPriceCurrency
netPriceCurrency stringnull The ISO currency code for netPrice. Defaults to your base currency.
enrolledDtm stringnull (ISO format) The date the asset was enrolled
lastSyncDtm stringnull The timestamp of the asset's last sync from an integration.
platform object The asset's operating system platform
osVersion stringnull The operating system version
isEncrypted booleannull Whether the asset's storage is encrypted
customFields objectnull Custom field values, keyed by the field's lookup key. Each value is the field's value directly: a string (text/single-select), a number, an ISO-8601 date, an array of strings (multi-select), or a link
createdBy object The user that created the asset record
createdDtm stringnull The timestamp for when the asset record was created
lastModifiedBy object The user that last modified the asset record
lastModifiedDtm stringnull The timestamp for when the asset record was last modified
location object The asset's location. To set the location, use locationName.
locationName stringnull Assign the asset to a location by name (a location is found or created). Pass null to clear.
View JSON Schema on GitHub

JSON Schema

1password-device-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/1password/json-schema/1password-device-schema.json",
  "title": "Device",
  "description": "An asset (device)",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/1password-devices-api-openapi.yml#/components/schemas/Device",
  "type": "object",
  "properties": {
    "id": {
      "type": [
        "string",
        "null"
      ],
      "description": "The asset's SaaS Manager ID. Supply to replace an existing asset."
    },
    "externalId": {
      "type": [
        "string",
        "null"
      ],
      "description": "The asset's external ID, sourced from the integration that imported it.",
      "readOnly": true
    },
    "status": {
      "type": [
        "string",
        "null"
      ],
      "description": "The device's status. This is the status's reference ID; custom statuses are prefixed `user_`. Defaults to New on creation."
    },
    "statusType": {
      "enum": [
        "New",
        "ReadyToDeploy",
        "Deployed",
        "OutForRepair",
        "Retired"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "The base status the device's status maps to. Custom statuses always map to one of these.",
      "readOnly": true
    },
    "hardwareVendor": {
      "type": [
        "string",
        "null"
      ],
      "description": "The hardware vendor (manufacturer). Required when creating an asset."
    },
    "modelName": {
      "type": [
        "string",
        "null"
      ],
      "description": "The model name. Required when creating an asset."
    },
    "assetType": {
      "type": [
        "string",
        "null"
      ],
      "description": "The asset type, e.g. Laptop"
    },
    "serialNumber": {
      "type": [
        "string",
        "null"
      ],
      "description": "The serial number"
    },
    "description": {
      "type": [
        "string",
        "null"
      ],
      "description": "A description of the asset, sourced from integrations.",
      "readOnly": true
    },
    "deviceName": {
      "type": [
        "string",
        "null"
      ],
      "description": "The device name, sourced from integrations.",
      "readOnly": true
    },
    "assetTag": {
      "type": [
        "string",
        "null"
      ],
      "description": "The asset tag"
    },
    "purchasedDate": {
      "type": [
        "string",
        "null"
      ],
      "description": "(ISO format) The purchase date",
      "format": "date-time"
    },
    "disposalDate": {
      "type": [
        "string",
        "null"
      ],
      "description": "(ISO format) The disposal date",
      "format": "date-time"
    },
    "warrantyExpirationDate": {
      "type": [
        "string",
        "null"
      ],
      "description": "(ISO format) The warranty expiration date",
      "format": "date-time"
    },
    "lifespanExpirationDate": {
      "type": [
        "string",
        "null"
      ],
      "description": "(ISO format) The end of the asset's useful life",
      "format": "date-time"
    },
    "notes": {
      "type": [
        "string",
        "null"
      ],
      "description": "Notes about the asset"
    },
    "assignedTo": {
      "allOf": [
        {
          "$ref": "#/$defs/DeviceAssignee"
        }
      ],
      "description": "The person the asset is assigned to. To set the assignee, use assignedToEmail.",
      "readOnly": true
    },
    "assignedToEmail": {
      "type": [
        "string",
        "null"
      ],
      "description": "Assign the asset to a person by email address. Pass null to unassign."
    },
    "netPrice": {
      "type": [
        "number",
        "null"
      ],
      "description": "The net price, in the currency given by netPriceCurrency",
      "format": "double"
    },
    "netPriceCurrency": {
      "type": [
        "string",
        "null"
      ],
      "description": "The ISO currency code for netPrice. Defaults to your base currency."
    },
    "enrolledDtm": {
      "type": [
        "string",
        "null"
      ],
      "description": "(ISO format) The date the asset was enrolled",
      "format": "date-time"
    },
    "lastSyncDtm": {
      "type": [
        "string",
        "null"
      ],
      "description": "The timestamp of the asset's last sync from an integration.",
      "format": "date-time",
      "readOnly": true
    },
    "platform": {
      "allOf": [
        {
          "$ref": "#/$defs/DevicePlatform"
        }
      ],
      "description": "The asset's operating system platform"
    },
    "osVersion": {
      "type": [
        "string",
        "null"
      ],
      "description": "The operating system version"
    },
    "isEncrypted": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Whether the asset's storage is encrypted"
    },
    "customFields": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {},
      "description": "Custom field values, keyed by the field's lookup key. Each value is the field's value directly: a string (text/single-select), a number, an ISO-8601 date, an array of strings (multi-select), or a link object ({ href, description })."
    },
    "createdBy": {
      "allOf": [
        {
          "$ref": "#/$defs/UserInfo"
        }
      ],
      "description": "The user that created the asset record",
      "readOnly": true
    },
    "createdDtm": {
      "type": [
        "string",
        "null"
      ],
      "description": "The timestamp for when the asset record was created",
      "format": "date-time",
      "readOnly": true
    },
    "lastModifiedBy": {
      "allOf": [
        {
          "$ref": "#/$defs/UserInfo"
        }
      ],
      "description": "The user that last modified the asset record",
      "readOnly": true
    },
    "lastModifiedDtm": {
      "type": [
        "string",
        "null"
      ],
      "description": "The timestamp for when the asset record was last modified",
      "format": "date-time",
      "readOnly": true
    },
    "location": {
      "allOf": [
        {
          "$ref": "#/$defs/DeviceLocation"
        }
      ],
      "description": "The asset's location. To set the location, use locationName.",
      "readOnly": true
    },
    "locationName": {
      "type": [
        "string",
        "null"
      ],
      "description": "Assign the asset to a location by name (a location is found or created). Pass null to clear."
    }
  },
  "additionalProperties": false,
  "$defs": {
    "DeviceAssignee": {
      "type": "object",
      "properties": {
        "userId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The assignee's SaaS Manager person ID"
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "The assignee's name"
        },
        "email": {
          "type": [
            "string",
            "null"
          ],
          "description": "The assignee's email address"
        }
      },
      "additionalProperties": false,
      "description": "The person an asset is assigned to"
    },
    "DeviceLocation": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The location's unique ID"
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "The location's name"
        },
        "countryCode": {
          "type": [
            "string",
            "null"
          ],
          "description": "The location's ISO country code"
        }
      },
      "additionalProperties": false,
      "description": "A real world location"
    },
    "DevicePlatform": {
      "enum": [
        "Mac",
        "Windows",
        "iOS",
        "Android",
        "ChromeOS",
        "Linux"
      ],
      "type": "string"
    },
    "UserInfo": {
      "type": "object",
      "properties": {
        "userId": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "email": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/1password-device"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.