to navigate · to open See all results
PUT /api/v1/assets/{record}/assignments/subscriptions

Set an asset’s subscriptions

Replace the subscriptions assigned to this asset.

Last updated

Request

PUT /api/v1/assets/{record}/assignments/subscriptions

Requires assets:assignments, subscriptions:update. See token permissions. Every listed permission is required for this endpoint.

Send Authorization: Bearer YOUR_API_TOKEN and Accept: application/json. Send request bodies as JSON with Content-Type: application/json. This workflow write requires Idempotency-Key. Reuse the same key only when retrying the same action.

record is the numeric asset ID in your token’s organization.

Request body

Field Type Usage
event_date string Optional. ISO 8601 timestamp with seconds and an explicit offset, such as 2026-09-01T10:30:00-07:00. Defaults to now.
description string or null Optional. Plain text, up to 10,000 characters.
subscription_ids array of integers Required, including for an empty list. Up to 100 unique IDs from this organization.

Fetch available values before choosing IDs. IDs and required fields vary by organization.

Example

Set ASSETCENTER_API_TOKEN as described in the quick start. Replace example record and option IDs with values from your organization. Set IDEMPOTENCY_KEY to a new UUID for this action; keep it for retries.

cURL / Bash
curl --request PUT "https://my.assetcenter.app/api/v1/assets/123/assignments/subscriptions" \
  --header "Authorization: Bearer $ASSETCENTER_API_TOKEN" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --data '{"subscription_ids":[42]}'

Response

200 OK. Illustrative response structure. Event arrays, to-do/space values, and current state depend on the action and the record.

JSON
{
  "data": {
    "asset_id": 123,
    "asset_event_ids": [],
    "subscription_event_ids": [
      901
    ],
    "todo": null,
    "tracker_disconnect_pending": false,
    "state": {
      "status": "available",
      "person_id": null,
      "location_id": null,
      "sublocation_id": null,
      "is_in_storage": false,
      "person_loan_due": null,
      "location_loan_due": null,
      "condition_id": null,
      "decommission_event_type_id": null
    }
  }
}

Behavior and constraints

Send the complete desired list for this assignment type, up to 100 unique organization IDs. Send [] to remove every assignment of this type. Other assignment types are retained. Unchanged links add no history. State changes reject future timestamps (422) and dates preceding newer relevant state changes (409). Omit event_date to use now. Decommissioned assets and cancelled or retired subscriptions cannot receive new assignments. Inactive people can retain or remove existing links but cannot receive new ones. Inactive locations remain assignable. Assignment updates preserve a subscription’s paused status; otherwise active status reflects all remaining subscribers.

Errors

401 means the token is missing, expired, revoked, or not a customer API token. 403 means a required permission or administrator access is missing. 404 means the record or child record is unavailable in this organization. 422 identifies invalid or unsupported input; inspect the errors object when present. 409 indicates a conflicting state or concurrent change; inspect the message and refresh the record before deciding how to proceed. Reusing an idempotency key with a different method, path, or body also returns 409. 429 means a rate limit was reached. See error handling and rate limits.