openapi: 3.2.0 info: title: GROUPING Floors API version: 3.0.0 description: Allows the retrieval and management of the floors of a location. 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: Floors description: Allows the retrieval and management of the floors of a location. paths: /locations/{locationId}/floors: parameters: - $ref: '#/components/parameters/locationId' get: operationId: getLocationFloors description: 'This endpoint allows you to retrieve the floors at the given location. Support for Location-based camera grouping is only available in the professional and enterprise editions. It is important to note that after using the pageSize parameter, the "totalSize" in the response represents the total number of available floors, not the number of floors resulting from the query string.' tags: - Floors parameters: - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/getFloorInclude' responses: '200': description: Successfully fetched content: application/json: schema: $ref: '#/components/schemas/PaginatedExtendedFloorResponse' '400': $ref: '#/components/responses/validationError' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '500': $ref: '#/components/responses/internalServerError' summary: Get location floors x-summary-source: derived post: operationId: createFloor description: This endpoint allows you to create a floor. Support for Location-based camera grouping is only available in the professional and enterprise editions. tags: - Floors requestBody: content: application/json: schema: $ref: '#/components/schemas/FloorCreatePayload' responses: '201': description: Floor created content: application/json: schema: $ref: '#/components/schemas/BasicFloorResponse' '400': $ref: '#/components/responses/validationError' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/resourceNotFound' '409': $ref: '#/components/responses/conflict' '500': $ref: '#/components/responses/internalServerError' summary: Create floor x-summary-source: derived /locations/{locationId}/floors/{id}: parameters: - $ref: '#/components/parameters/locationId' - $ref: '#/components/parameters/floorId' get: operationId: getFloor description: This endpoint allows you to retrieve a specific floor at a specific location. Support for Location-based camera grouping is only available in the professional and enterprise editions. parameters: - $ref: '#/components/parameters/getFloorInclude' tags: - Floors responses: '200': description: Successfully fetched content: application/json: schema: $ref: '#/components/schemas/FloorGetResponse' '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: Get floor x-summary-source: derived patch: description: Updates one or more fields of the given floor. This has no effect on the cameras on that floor. Support for Location-based camera grouping is only available in the professional and enterprise editions. operationId: updateFloor tags: - Floors requestBody: content: application/json: schema: $ref: '#/components/schemas/ExtendedFloor' responses: '204': description: Floor 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 floor x-summary-source: derived delete: description: This endpoint allows you to delete a specific floor of a specific location. Support for Location-based camera grouping is only available in the professional and enterprise editions. operationId: deleteFloor tags: - Floors responses: '204': description: Floor deleted '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/resourceNotFound' '500': $ref: '#/components/responses/internalServerError' summary: Delete floor 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' FloorPlanGetResponse: allOf: - $ref: '#/components/schemas/FloorPlan' required: - id - floorId - type - creator FloorCreatePayload: allOf: - $ref: '#/components/schemas/ExtendedFloor' - required: - name - floorLevel - topLeftCoordinates - bottomRightCoordinates ExtendedFloor: allOf: - $ref: '#/components/schemas/BasicFloor' properties: floorPlans: readOnly: true type: array items: $ref: '#/components/schemas/FloorPlanGetResponse' 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 PaginatedExtendedFloorResponse: allOf: - $ref: '#/components/schemas/PaginatedResponseWithSize' - type: object properties: results: type: array items: $ref: '#/components/schemas/FloorGetResponse' BasicFloor: type: object description: Represents a floor of a location properties: id: type: string description: Unique identifier of the floor readOnly: true name: type: string example: Lobby Area - Floor 1 default: '' minLength: 0 maxLength: 126 floorLevel: type: integer description: The floor level in a multi-storey building example: 1 minimum: -30 maximum: 300 topLeftCoordinates: type: object allOf: - $ref: '#/components/schemas/PointPosition' bottomRightCoordinates: type: object allOf: - $ref: '#/components/schemas/PointPosition' 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 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' 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 PointPosition: type: object required: - latitude - longitude properties: latitude: description: The latitude of the device. (WGS 84) type: number format: double minimum: -90 maximum: 90 example: 52.3074013 longitude: description: The longitude of the device. (WGS 84). type: number format: double minimum: -180 maximum: 180 example: 4.9459903 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 FloorGetResponse: allOf: - $ref: '#/components/schemas/ExtendedFloor' - required: - id - name - floorLevel - topLeftCoordinates - bottomRightCoordinates FloorPlan: type: object description: Represents a floor plan file properties: id: type: string description: Unique identifier of the floor plan readOnly: true floorId: type: string description: Unique identifier of the floor readOnly: true type: type: string description: Type of the floor image readOnly: true enum: - png - svg - pdf creator: type: string enum: - originalUpload - cloudGenerated readOnly: true 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 BasicFloorResponse: allOf: - $ref: '#/components/schemas/BasicFloor' - required: - id - name - floorLevel - topLeftCoordinates - bottomRightCoordinates 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/ 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/ resourceNotFound: value: code: 404 status: notFound message: The resource was not found details: - type: errorInfo reason: resourceNotFound domain: apiv3 metadata: path: /api/v3.0/ - type: resourceInfo resource: ids: - conflict: description: There was a conflict while trying to perform your request. See error details for more information. content: application/json: schema: $ref: '#/components/schemas/ApiV3Error' examples: alreadyExists: value: code: 409 status: conflict message: The resource already exists details: - type: errorInfo reason: alreadyExists domain: apiv3 metadata: path: /api/v3.0/ foreignKeyConflict: value: code: 409 status: conflict message: The resource cannot be deleted as other resources link to it. Please remove the links or delete the other resources first before deleting this resource. details: - type: errorInfo reason: foreignKeyConflict domain: apiv3 metadata: path: /api/v3.0/ childDevicesExist: value: code: 409 status: conflict message: This device can not be deleted before all attached cameras have been deleted. Please delete all cameras and then delete this device. details: - type: errorInfo reason: childDevicesExist domain: apiv3 metadata: path: /api/v3.0/ deviceUnavailable: value: code: 409 status: conflict message: Device is not available. details: - type: errorInfo reason: deviceUnavailable domain: apiv3 metadata: path: /api/v3.0/ 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/ 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/ 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/ missingRequiredArgument: value: code: 400 status: invalidArgument message: 'Missing required arguments: name, id' details: - type: errorInfo reason: missingRequiredArgument domain: apiv3 metadata: path: /api/v3.0/ badRequestInvalidJSON: value: code: 400 status: invalidArgument message: Invalid JSON details: - type: errorInfo reason: invalidJSON domain: apiv3 metadata: path: /api/v3.0/ 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/ - type: badRequest argumentViolations: - argumentName: name description: Name is too long parameters: locationId: in: path required: true name: locationId description: Location ID schema: type: string floorId: in: path required: true name: id description: Floor ID schema: type: string 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 getFloorInclude: in: query name: include description: List of properties that should be included in the response schema: type: array items: type: string enum: - floorPlans style: form explode: false 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/createfloor.md - https://developer.eagleeyenetworks.com/reference/createlayout.md - https://developer.eagleeyenetworks.com/reference/createlocation.md - https://developer.eagleeyenetworks.com/reference/deletefloor.md - https://developer.eagleeyenetworks.com/reference/deletefloorplan.md - https://developer.eagleeyenetworks.com/reference/deletelayout.md - https://developer.eagleeyenetworks.com/reference/deletelocation.md - https://developer.eagleeyenetworks.com/reference/getfloor.md - https://developer.eagleeyenetworks.com/reference/getfloorimage.md - https://developer.eagleeyenetworks.com/reference/getfloorplans.md - https://developer.eagleeyenetworks.com/reference/getlayout.md - https://developer.eagleeyenetworks.com/reference/getlayouts.md - https://developer.eagleeyenetworks.com/reference/getlocation.md - https://developer.eagleeyenetworks.com/reference/getlocationdescendants.md - https://developer.eagleeyenetworks.com/reference/getlocationfloors.md - https://developer.eagleeyenetworks.com/reference/getlocations.md - https://developer.eagleeyenetworks.com/reference/gettags.md - https://developer.eagleeyenetworks.com/reference/setfloorplan.md - https://developer.eagleeyenetworks.com/reference/updatefloor.md - https://developer.eagleeyenetworks.com/reference/updatelayout.md - https://developer.eagleeyenetworks.com/reference/updatelocation.md merge: pages: 21 deduped: 448 conflicts_kept_first: 0