openapi: 3.2.0 info: title: GROUPING Floor Plans API version: 3.0.0 description: Allows the retrieval and management of floor plans 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: Floor Plans description: Allows the retrieval and management of floor plans of a location. paths: /locations/{locationId}/floors/{id}.{type}: parameters: - $ref: '#/components/parameters/locationId' - $ref: '#/components/parameters/floorId' - $ref: '#/components/parameters/type' get: operationId: getFloorImage description: This endpoint allows you to retrieve the floor image of a specific floor. Please first check the floorPlans field in GET /locations/{locationId}/floors or GET /locations/{locationId}/floors/{id} to see if a file with this format exists. Support for Location-based camera grouping is only available in the professional and enterprise editions. tags: - Floor Plans responses: '200': description: Successfully fetched content: image/png: schema: type: string format: binary '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 image x-summary-source: derived /locations/{locationId}/floors/{id}/plans: parameters: - $ref: '#/components/parameters/locationId' - $ref: '#/components/parameters/floorId' get: operationId: getFloorPlans description: 'This endpoint allows you to retrieve plans of a specific floor at a specific location. Support for Location-based camera grouping is only available in the professional and enterprise editions. To retrieve an image file of the floor plan, please use the `/locations/{locationId}/floors/{id}.{type}` endpoint. The `type` parameter in that endpoint corresponds to the `type` property in the response of this resource.' parameters: - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageSize' tags: - Floor Plans responses: '200': description: Successfully fetched content: application/json: schema: $ref: '#/components/schemas/PaginatedFloorPlansResponse' '400': $ref: '#/components/responses/validationError' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '500': $ref: '#/components/responses/internalServerError' summary: Get floor plans x-summary-source: derived post: operationId: setFloorPlan description: This endpoint allows you to create a floor plan for a specific floor at a specific location. Currently only one floor plan file is supported per floor, which means that uploading a new file will overwrite any existing file, even if it has a different format (svg vs png). Support for Location-based camera grouping is only available in the professional and enterprise editions. tags: - Floor Plans requestBody: content: multipart/form-data: schema: type: object properties: data: type: string format: binary responses: '201': description: Successfully set content: application/json: schema: $ref: '#/components/schemas/FloorPlanGetResponse' '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: Set floor plan x-summary-source: derived /locations/{locationId}/floors/{id}/plans/{planId}: parameters: - $ref: '#/components/parameters/locationId' - $ref: '#/components/parameters/floorId' - $ref: '#/components/parameters/planId' delete: description: This endpoint allows you to delete a floor plan and its corresponding SVG or PNG file. Support for Location-based camera grouping is only available in the professional and enterprise editions. operationId: deleteFloorPlan tags: - Floor Plans responses: '204': description: Floor plan deleted '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/resourceNotFound' '500': $ref: '#/components/responses/internalServerError' summary: Delete floor plan 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 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 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 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 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 PaginatedFloorPlansResponse: allOf: - $ref: '#/components/schemas/PaginatedResponseWithSize' - type: object properties: results: type: array items: $ref: '#/components/schemas/FloorPlanGetResponse' 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 parameters: planId: in: path required: true name: planId description: Plan ID schema: type: string locationId: in: path required: true name: locationId description: Location ID schema: type: string type: in: path required: true name: type description: Type of the floor image schema: type: string enum: - svg - png 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 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 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: - 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 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