Eagle Eye Networks Device I/O API

Operations on device I/O ports.

Operations 6

GET /devices/{deviceId}/io/ports Get ports1 #
GET /devices/{deviceId}/io/ports/{portId} Get port1 #
PATCH /devices/{deviceId}/io/ports/{portId} Update port2 #
GET /devices/{deviceId}/io/ports/{portId}/recordingActions Get port recorders #
GET /devices/{deviceId}/io/ports/{portId}/recordingActions/{cameraId} Get port recorder #
PATCH /devices/{deviceId}/io/ports/{portId}/recordingActions/{cameraId} Update port recorder #

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-auth-settings-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-auth-settings-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-client-settings-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-alert-action-rule-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-alert-action-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-event-alert-condition-rule-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-alert-action-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-event-alert-condition-rule-create-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-event-rules-fields-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-ptz-settings-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-add-camera-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-update-bulk-camera-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-ptz-position-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-camera-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-tunnel-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-event-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-alert-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-notification-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-filter-create-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-event-metric-query-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-events-by-type-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-location-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-layout-for-single-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-layout-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-paginated-location-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-paginated-location-descendants-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-paginated-floor-plans-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-download-details-with-includes-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-video-summary-export-details-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-job-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-copy-export-body-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-paginated-file-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-create-export-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-token-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-access-token-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-application-oauth-client-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-application-oauth-client-create-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-application-oauth-client-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-application-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-application-create-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-paginated-oauth-client-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-add-user-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-role-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-user-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-user-self-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-api-user-main-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-edition-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-lpr-fields-data-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-lpr-alert-condition-rule-untagged-for-post-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-lpr-alert-condition-rule-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-lpr-vehicle-list-untagged-record-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-lpr-vehicle-list-meta-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-lpr-vehicle-list-untagged-record-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-search-event-v1-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-paginated-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-region-info-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-actor-info-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/eagle-eye-networks/refs/heads/main/json-schema/eagle-eye-networks-person-attribute-list-schema.json

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/eagle-eye-networks:eagle-eye-networks-device-i-o-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

eagle-eye-networks-device-i-o-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DEVICES Device I/O API
  version: 3.0.0
  description: Operations on device I/O ports.
servers:
- url: https://{BaseUrl}/api/v3.0
  description: Eagle Eye Networks API Server
  variables:
    BaseUrl:
      default: api.cxxx.eagleeyenetworks.com
      description: HTTPS Base url to use for all API calls, retrieved from https://api.eagleeyenetworks.com/api/v3.0/clientSettings
security:
- bearerAuth: []
tags:
- name: Device I/O
  description: Operations on device I/O ports.
paths:
  /devices/{deviceId}/io/ports:
    parameters:
    - $ref: '#/components/parameters/deviceId'
    get:
      operationId: getPorts1
      parameters:
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/pageToken'
      - $ref: '#/components/parameters/pageSize'
      description: Retrieves list of device IO ports.
      tags:
      - Device I/O
      responses:
        '200':
          description: Successfully fetched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPortResponse'
        '400':
          $ref: '#/components/responses/validationError'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/resourceNotFound'
        '500':
          $ref: '#/components/responses/internalServerError'
      summary: Get ports1
      x-summary-source: derived
  /devices/{deviceId}/io/ports/{portId}:
    parameters:
    - $ref: '#/components/parameters/deviceId'
    - $ref: '#/components/parameters/portId'
    get:
      operationId: getPort1
      parameters:
      - $ref: '#/components/parameters/include'
      description: Retrieves the device port.
      tags:
      - Device I/O
      responses:
        '200':
          description: Successfully fetched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PortGet'
        '400':
          $ref: '#/components/responses/validationError'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/resourceNotFound'
        '500':
          $ref: '#/components/responses/internalServerError'
      summary: Get port1
      x-summary-source: derived
    patch:
      operationId: updatePort2
      description: Update the port configuration. Allowed properties depends on the port type.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PortPatch'
      tags:
      - Device I/O
      responses:
        '204':
          description: Port Updated
        '400':
          $ref: '#/components/responses/validationError'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/resourceNotFound'
        '500':
          $ref: '#/components/responses/internalServerError'
      summary: Update port2
      x-summary-source: derived
  /devices/{deviceId}/io/ports/{portId}/recordingActions:
    parameters:
    - $ref: '#/components/parameters/deviceId'
    - $ref: '#/components/parameters/portId'
    - $ref: '#/components/parameters/pageToken'
    - $ref: '#/components/parameters/pageSize'
    get:
      operationId: getPortRecorders
      description: Retrieves the list of all cameras that can be activated to record video, including those that are currently enabled for recording actions on this port.
      tags:
      - Device I/O
      responses:
        '200':
          description: Successfully fetched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPortRecordingActionResponse'
        '400':
          $ref: '#/components/responses/validationError'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/resourceNotFound'
        '500':
          $ref: '#/components/responses/internalServerError'
      summary: Get port recorders
      x-summary-source: derived
  /devices/{deviceId}/io/ports/{portId}/recordingActions/{cameraId}:
    parameters:
    - $ref: '#/components/parameters/deviceId'
    - $ref: '#/components/parameters/portId'
    - $ref: '#/components/parameters/cameraId'
    get:
      operationId: getPortRecorder
      description: Retrieves the recording action information for the camera and IO Port
      tags:
      - Device I/O
      responses:
        '200':
          description: Successfully fetched.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PortRecordingActionGet'
        '400':
          $ref: '#/components/responses/validationError'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/resourceNotFound'
        '500':
          $ref: '#/components/responses/internalServerError'
      summary: Get port recorder
      x-summary-source: derived
    patch:
      operationId: updatePortRecorder
      description: Update the recording action configuration for the given camera and port.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PortRecordingActionPatch'
      tags:
      - Device I/O
      responses:
        '204':
          description: Port Recorder Updated
        '400':
          $ref: '#/components/responses/validationError'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/resourceNotFound'
        '500':
          $ref: '#/components/responses/internalServerError'
      summary: Update port recorder
      x-summary-source: derived
components:
  schemas:
    ErrorInfoExceptionDetail:
      properties:
        type:
          description: A string enum describing the type of detail object.
          type: string
          enum:
          - errorInfo
        reason:
          description: 'The reason for the error. This is a constant value that identifies the proximate cause of the

            error. Error reasons are unique within a particular domain of errors.

            '
          type: string
          enum:
          - unauthenticated
          - unexpectedArgument
          - missingRequiredArgument
          - wrongArgumentValue
          - invalidPermission
          - wrongEdition
          - wrongAccountType
          - resourceNotFound
          - endpointNotFound
          - methodNotSupported
          - unexpectedError
          - acceptNotSupported
          - alreadyExists
          - foreignKeyConflict
          - childDevicesExist
          - contentNotSupported
          - deadlineExpired
          - tooManyRequests
          - deviceUnavailable
          - serviceUnavailable
          - invalidJSON
          - resourceLocked
          - notSupportedOnBridge
          - outOfRetention
          - deviceIdentificationFailed
          - credentialValidationFailed
          - credentialSetupFailed
          - localUrlValidationFailed
          - hwRegistrationFailed
          - failedAddingCameraAfterValidation
          - neverConnected
          - reconnectFailed
          - unsupportedModel
          - purged
          - userBlocked
          - userTemporarilyBlocked
          - quotaExceeded
          - alreadyValidated
          - reAuthenticationRequired
          - badGateway
        domain:
          description: 'Logical grouping to which the "reason" belongs

            '
          type: string
        metadata:
          $ref: '#/components/schemas/ExceptionMetadata'
    PaginatedPortResponse:
      allOf:
      - $ref: '#/components/schemas/PaginatedResponseWithSize'
      - type: object
        properties:
          results:
            type: array
            items:
              $ref: '#/components/schemas/PortGet'
    ExceptionDetail:
      type: object
      oneOf:
      - $ref: '#/components/schemas/ErrorInfoExceptionDetail'
      - $ref: '#/components/schemas/BadRequestExceptionDetail'
      - $ref: '#/components/schemas/ResourceInfoExceptionDetail'
      discriminator:
        propertyName: type
        mapping:
          errorInfo: '#/components/schemas/ErrorInfoExceptionDetail'
          badRequest: '#/components/schemas/BadRequestExceptionDetail'
          resourceInfo: '#/components/schemas/ResourceInfoExceptionDetail'
      properties:
        type:
          description: A string enum describing the type of detail object.
          type: string
          enum:
          - errorInfo
          - badRequest
          - resourceInfo
      required:
      - type
    PortStatusGet:
      type: object
      properties:
        state:
          type: string
          description: Interpreted state of the connected circuit.
          enum:
          - active
          - idle
          - unknown
    ApiV3Error:
      type: object
      properties:
        code:
          description: HTTP code defined in EEN Standard Code Values
          type: integer
        status:
          description: A string enum describing the code
          type: string
          enum:
          - cancelled
          - unknown
          - invalidArgument
          - deadlineExceeded
          - notFound
          - conflict
          - permissionDenied
          - resourceExhausted
          - failedPrecondition
          - aborted
          - outOfRange
          - unimplemented
          - internal
          - unavailable
          - dataLoss
          - unauthenticated
          - mediaTypeNotSupported
          - acceptNotSupported
          - methodNotSupported
          - tooManyRequests
          - badGateway
        message:
          description: Developer friendly human readable error message in English
          type: string
        details:
          description: An array of extensible objects that define error information
          type: array
          items:
            $ref: '#/components/schemas/ExceptionDetail'
      required:
      - code
      - status
      - message
      - details
    PortRules:
      type: object
      properties:
        recordOnActive:
          type: boolean
          description: If this value is set to true, the port is an input and the device can record video, then the bridge should start recording when the port becomes active.
        icon:
          type:
          - string
          - 'null'
          description: If enabled, the given icon is shown for all livestreams of the camera and highlighted when the port is active. For ports of "output" type the icon can then also be clicked to change the state of the camera.
          enum:
          - siren
          - light
          - dot
          - door
          - bell
        iconEnabled:
          type: boolean
          description: Inidicates if the icon should be visible on all livestreams.
    BadRequestExceptionDetail:
      properties:
        type:
          description: A string enum describing the type of detail object.
          type: string
          enum:
          - badRequest
        argumentViolations:
          type: array
          items:
            $ref: '#/components/schemas/ArgumentViolation'
    PortRecordingActionPatch:
      type: object
      properties:
        enabled:
          type: boolean
    PaginatedResponseNoTotalSize:
      type: object
      description: 'Used to wrap results for a paginated response, containing information on how to retrieve further pages.

        '
      properties:
        nextPageToken:
          type:
          - string
          - 'null'
          readOnly: true
          description: 'Token to retrieve the next page. The value of this token is passed into the field pageToken. This value can be null if there is no next page.

            '
        prevPageToken:
          type:
          - string
          - 'null'
          readOnly: true
          description: 'Token to retrieve the previous page. The value of this token is passed into the field pageToken. This value can be null of there is no previous page.

            '
        results:
          type: array
          readOnly: true
          description: The result set from a collection API call.
          items:
            type: object
      required:
      - nextPageToken
      - prevPageToken
      - results
    PortStatusPatch:
      type: object
      properties:
        state:
          type: string
          description: Set the state of the connected circuit.
          enum:
          - active
          - idle
        durationSeconds:
          type: integer
          description: 'Number of seconds to hold the circuit in the given state.  If not provided, the state will hold indefinitely.

            '
          example: 10
          minimum: 1
          maximum: 3600000
    PortOutputPatch:
      allOf:
      - $ref: '#/components/schemas/Port'
      - type: object
        properties:
          status:
            $ref: '#/components/schemas/PortStatusPatch'
    PaginatedPortRecordingActionResponse:
      allOf:
      - $ref: '#/components/schemas/PaginatedResponseWithSize'
      - type: object
        properties:
          results:
            type: array
            items:
              $ref: '#/components/schemas/PortRecordingActionGet'
    ResourceInfoExceptionDetail:
      properties:
        type:
          description: A string enum describing the type of detail object.
          type: string
          enum:
          - resourceInfo
        resource:
          description: Referenced resource type, eg "cameras", "bridges", or "locations".
          type: string
        ids:
          type: array
          description: Identities of resources
          items:
            type: string
    PaginatedResponseWithSize:
      description: "Used to wrap results for a paginated response, containing information on how to retrieve further pages and  the total number of results.  \n"
      allOf:
      - $ref: '#/components/schemas/PaginatedResponseNoTotalSize'
      - properties:
          totalSize:
            type: integer
            readOnly: true
            description: 'Size of the total result set.

              '
        required:
        - totalSize
    PortGet:
      allOf:
      - $ref: '#/components/schemas/Port'
      - type: object
        properties:
          status:
            $ref: '#/components/schemas/PortStatusGet'
      required:
      - id
      - enabled
      - name
      - type
      - idleCircuitState
    PortRecordingActionGet:
      type: object
      properties:
        cameraId:
          type: string
          description: The cameraId of the camera
        enabled:
          type: boolean
          description: Determines if the camera will record video when the port is triggered
    ArgumentViolation:
      properties:
        argumentName:
          type: string
          description: Name of the argument
        description:
          type: string
          description: Description of the violation
    ExceptionMetadata:
      properties:
        path:
          description: Path of the request
          type: string
        method:
          description: Method of the request
          type: string
    PortPatch:
      oneOf:
      - $ref: '#/components/schemas/Port'
      - $ref: '#/components/schemas/PortOutputPatch'
    Port:
      type: object
      properties:
        id:
          type: string
          readOnly: true
          description: Unique ID for the port.
          example: '1'
        enabled:
          type: boolean
          description: If the port is not enabled, no events will be created, and the icon will not show up in the live stream.
        name:
          type: string
          description: Human changeable name of the port, defaults to value of the id field.
          example: Input 1
          minLength: 1
          maxLength: 126
        type:
          type: string
          readOnly: true
          description: Denotes whether this is an input or output port.
          enum:
          - input
          - output
        idleCircuitState:
          type: string
          description: 'Indicates the normal, inactive or idle, state of the connected circuit.

            Possible values:


            * `open`: means the port is "off" when in `idle` state (open circuit; has no voltage), and the port state being `active` means it is turned "on" (circuit is closed; has voltage).

            * `closed`: means the port is "on" when in `idle` state (closed circuit; has voltage), and the port state being active means it is turned "off" (open circuit; has no voltage).

            '
          enum:
          - open
          - closed
        rules:
          $ref: '#/components/schemas/PortRules'
  responses:
    forbidden:
      description: You have no permission to access the specified resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiV3Error'
          examples:
            invalidPermission:
              value:
                code: 403
                status: permissionDenied
                message: The client caller does not have permission for the specified operation
                details:
                - type: errorInfo
                  reason: invalidPermission
                  domain: apiv3
                  metadata:
                    path: /api/v3.0/<resource>
            wrongEdition:
              value:
                code: 403
                status: permissionDenied
                message: This feature is not enabled for the account
                details:
                - type: errorInfo
                  reason: wrongEdition
                  domain: apiv3
                  metadata:
                    path: /api/v3.0/locations
            wrongAccountType:
              value:
                code: 403
                status: permissionDenied
                message: This feature is only available for end users
                details:
                - type: errorInfo
                  reason: wrongAccountType
                  domain: apiv3
                  metadata:
                    path: /api/v3.0/locations
    resourceNotFound:
      description: Referenced resource could not be found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiV3Error'
          examples:
            endpointNotFound:
              value:
                code: 404
                status: notFound
                message: The API endpoint was not found
                details:
                - type: errorInfo
                  reason: endpointNotFound
                  domain: apiv3
                  metadata:
                    path: /api/v3.0/<resource>
            resourceNotFound:
              value:
                code: 404
                status: notFound
                message: The resource was not found
                details:
                - type: errorInfo
                  reason: resourceNotFound
                  domain: apiv3
                  metadata:
                    path: /api/v3.0/<resource>
                - type: resourceInfo
                  resource: <resource>
                  ids:
                  - <ids>
    internalServerError:
      description: Something went wrong in the server. Please try again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiV3Error'
          example:
            code: 500
            status: internal
            message: An internal error has occurred. Please try again later.
            details:
            - type: errorInfo
              reason: unexpectedError
              domain: apiv3
              metadata:
                path: /api/v3.0/<resource>
    unauthorized:
      description: You are not authenticated. Please authenticate and try again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiV3Error'
          example:
            code: 401
            status: unauthenticated
            message: The client caller does not have a valid authentication credential
            details:
            - type: errorInfo
              reason: unauthenticated
              domain: apiv3
              metadata:
                path: /api/v3.0/<resource>
    validationError:
      description: The supplied object is invalid. Error detail will contain the validation error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiV3Error'
          examples:
            unexpectedArgument:
              value:
                code: 400
                status: invalidArgument
                message: 'Unexpected argument: name'
                details:
                - type: errorInfo
                  reason: unexpectedArgument
                  domain: apiv3
                  metadata:
                    path: /api/v3.0/<resource>
            missingRequiredArgument:
              value:
                code: 400
                status: invalidArgument
                message: 'Missing required arguments: name, id'
                details:
                - type: errorInfo
                  reason: missingRequiredArgument
                  domain: apiv3
                  metadata:
                    path: /api/v3.0/<resource>
            badRequestInvalidJSON:
              value:
                code: 400
                status: invalidArgument
                message: Invalid JSON
                details:
                - type: errorInfo
                  reason: invalidJSON
                  domain: apiv3
                  metadata:
                    path: /api/v3.0/<resource>
            badRequestInvalidArgument:
              value:
                code: 400
                status: invalidArgument
                message: 'Invalid Argument: Argument name is too long'
                details:
                - type: errorInfo
                  reason: wrongArgumentValue
                  domain: apiv3
                  metadata:
                    path: /api/v3.0/<resource>
                - type: badRequest
                  argumentViolations:
                  - argumentName: name
                    description: Name is too long
  parameters:
    cameraId:
      in: path
      name: cameraId
      schema:
        type: string
      required: true
    portId:
      in: path
      name: portId
      schema:
        type: string
      required: true
    pageSize:
      in: query
      name: pageSize
      description: 'The number of entries to return per page. The maximum range of valid page sizes is documented with minimum and  maximum values, but the range might be further limited dynamically based on the requested information, account, and system status. Values outside of the (dynamic) allowed range will not result in an error, but will be clamped to the nearest limit. Thus, logic to detect the last page should not be based on comparing the requested size with the received size, but on the existence of a `nextPageToken` value.

        '
      example: 100
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 500
        default: 100
    include:
      in: query
      name: include
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
          enum:
          - status
          - rules
    deviceId:
      in: path
      name: deviceId
      schema:
        type: string
      required: true
    pageToken:
      in: query
      name: pageToken
      description: 'Token string value that references a page for pagination. This value is received when retrieving the first page in the `nextPageToken` and `prevPageToken` fields.

        When a pageToken is provided, the backend remembers search parameters from the original request, so search  parameters that affect the result set or order are optional and will be ignored if provided. Representation  parameters like `include` should still be applied.

        '
      example: b2Zmc2V0PTEwJmxpbWl0PTEw
      required: false
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
x-provenance:
  method: searched
  source: https://developer.eagleeyenetworks.com/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developer.eagleeyenetworks.com/reference/addcamera.md
  - https://developer.eagleeyenetworks.com/reference/addmulticamera.md
  - https://developer.eagleeyenetworks.com/reference/addspeaker.md
  - https://developer.eagleeyenetworks.com/reference/createbridge.md
  - https://developer.eagleeyenetworks.com/reference/deletebridge.md
  - https://developer.eagleeyenetworks.com/reference/deletecamera.md
  - https://developer.eagleeyenetworks.com/reference/deletecameratunnel.md
  - https://developer.eagleeyenetworks.com/reference/deletemulticamera.md
  - https://developer.eagleeyenetworks.com/reference/deletespeaker.md
  - https://developer.eagleeyenetworks.com/reference/getbridge.md
  - https://developer.eagleeyenetworks.com/reference/getbridgemetrics.md
  - https://developer.eagleeyenetworks.com/reference/getbridgesettings.md
  - https://developer.eagleeyenetworks.com/reference/getcamera.md
  - https://developer.eagleeyenetworks.com/reference/getcamerametrics.md
  - https://developer.eagleeyenetworks.com/reference/getcamerasettings.md
  - https://developer.eagleeyenetworks.com/reference/getcurrentposition.md
  - https://developer.eagleeyenetworks.com/reference/getmulticamera.md
  - https://developer.eagleeyenetworks.com/reference/getmulticamerachannels.md
  - https://developer.eagleeyenetworks.com/reference/getport.md
  - https://developer.eagleeyenetworks.com/reference/getport1.md
  - https://developer.eagleeyenetworks.com/reference/getportrecorder.md
  - https://developer.eagleeyenetworks.com/reference/getportrecorders.md
  - https://developer.eagleeyenetworks.com/reference/getports.md
  - https://developer.eagleeyenetworks.com/reference/getports1.md
  - https://developer.eagleeyenetworks.com/reference/getptzsettings.md
  - https://developer.eagleeyenetworks.com/reference/getspeaker.md
  - https://developer.eagleeyenetworks.com/reference/getspeakersettings.md
  - https://developer.eagleeyenetworks.com/reference/getswitch.md
  - https://developer.eagleeyenetworks.com/reference/listavailabledevices.md
  - https://developer.eagleeyenetworks.com/reference/listbridges.md
  - https://developer.eagleeyenetworks.com/reference/listcameras.md
  - https://developer.eagleeyenetworks.com/reference/listmulticameras.md
  - https://developer.eagleeyenetworks.com/reference/listspeakers.md
  - https://developer.eagleeyenetworks.com/reference/listswitches.md
  - https://developer.eagleeyenetworks.com/reference/moveto.md
  - https://developer.eagleeyenetworks.com/reference/putcameratunnel.md
  - https://developer.eagleeyenetworks.com/reference/swapbridge.md
  - https://developer.eagleeyenetworks.com/reference/swapcamera.md
  - https://developer.eagleeyenetworks.com/reference/switchaction.md
  - https://developer.eagleeyenetworks.com/reference/updateallports.md
  - https://developer.eagleeyenetworks.com/reference/updatebridge.md
  - https://developer.eagleeyenetworks.com/reference/updatebridgesettings.md
  - https://developer.eagleeyenetworks.com/reference/updatebulkbridges.md
  - https://developer.eagleeyenetworks.com/reference/updatebulkcameras.md
  - https://developer.eagleeyenetworks.com/reference/updatecamera.md
  - https://developer.eagleeyenetworks.com/reference/updatecamerasettings.md
  - https://developer.eagleeyenetworks.com/reference/updatemulticamera.md
  - https://developer.eagleeyenetworks.com/reference/updateport.md
  - https://developer.eagleeyenetworks.com/reference/updateport1.md
  - https://developer.eagleeyenetworks.com/reference/updateport2.md
  - https://developer.eagleeyenetworks.com/reference/updateport3.md
  - https://developer.eagleeyenetworks.com/reference/updateportrecorder.md
  - https://developer.eagleeyenetworks.com/reference/updateptzsettings.md
  - https://developer.eagleeyenetworks.com/reference/updatespeaker.md
  - https://developer.eagleeyenetworks.com/reference/updatespeakersettings.md
  - https://developer.eagleeyenetworks.com/reference/updateswitch.md
  merge:
    pages: 56
    deduped: 1179
    conflicts_kept_first: 0