> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acusight.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Register new device

> Register a new edge device for management and monitoring



## OpenAPI

````yaml /api-spec.json post /core/devices
openapi: 3.0.0
info:
  contact:
    name: Acusight API Support
  description: >-
    Acusight platform API - custom endpoints + Portainer proxy routes for edge
    AI deployments
  title: Acusight API
  version: 1.0.0
servers:
  - url: https://acusight.io/api
    description: AcuSight Cloud (hosted)
security: []
tags:
  - name: Devices & provisioning
    description: Register, provision, and manage edge devices and their agents.
  - name: Virtual devices
    description: Create and drive simulated devices for testing and demos.
  - name: Alerts & telemetry
    description: Model alerts, alert rules, and product telemetry.
  - name: Organization
    description: Organization-level settings.
  - name: Datasets & data
    description: Projects, batches, datasets, images, annotations, and drift.
  - name: Models & training
    description: Model registry, training jobs, exports, and inference.
  - name: Pipeline data
    description: Detection time-series and aggregated pipeline analytics.
paths:
  /core/devices:
    post:
      tags:
        - Devices & provisioning
      summary: Register new device
      description: Register a new edge device for management and monitoring
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/types.DeviceCreateRequest'
        description: Device registration payload
        required: true
      responses:
        '201':
          description: Device registered successfully
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
        '404':
          description: Auto-assign project not found
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
        '409':
          description: Device ID already in use
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
      security:
        - BearerAuth: []
components:
  schemas:
    types.DeviceCreateRequest:
      properties:
        auto_assign_to:
          type: integer
        device_id:
          type: string
        device_type:
          enum:
            - physical
            - virtual
          type: string
        name:
          type: string
        virtual_config:
          $ref: '#/components/schemas/types.VirtualDeviceConfigRequest'
      required:
        - device_id
      type: object
    types.VirtualDeviceConfigRequest:
      properties:
        event_frequency:
          description: Seconds between new track creation
          type: integer
        event_types:
          description: JSON array of event type configs
          type: string
        loop:
          description: Continuous generation
          type: boolean
        max_concurrent_tracks:
          description: Max simultaneous tracks
          type: integer
        upload_frequency:
          description: Seconds between event checks
          type: integer
      type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        JWT access token. Paste the token only; the Bearer prefix is added
        automatically.

````