---
updatedAt: 2026-06-05T18:58:19.000Z
agentTools:
  projectIndex: https://developer.eagleeyenetworks.com/llms.txt
---

# /speakers

By using this endpoint you can create a speaker.

# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "DEVICES",
    "version": "3.0.0"
  },
  "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": "Speakers",
      "description": "All core operations on one speakers, which are can be used to broadcast audio."
    }
  ],
  "paths": {
    "/speakers": {
      "post": {
        "operationId": "addSpeaker",
        "description": "By using this endpoint you can create a speaker.",
        "tags": [
          "Speakers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiAddSpeaker"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Speaker added",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiSpeakerMain"
                }
              }
            }
          },
          "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"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "ApiDeviceCredentials": {
        "type": "object",
        "x-jsoninclude-nonnull-annotation": true,
        "properties": {
          "username": {
            "type": "string",
            "description": "Username to use when authenticating with the device",
            "maxLength": 126
          },
          "password": {
            "type": "string",
            "description": "Password to use when authenticating with the device",
            "maxLength": 126
          }
        }
      },
      "AdminCredentials": {
        "allOf": [
          {
            "description": "Credentials that allow the bearer to access the camera's internal UI. This UI, available via the [tunneling endpoint](https://developer.eagleeyenetworks.com/reference/putcameratunnel), can be used to apply certain advanced configurations.\n"
          },
          {
            "$ref": "#/components/schemas/ApiDeviceCredentials"
          }
        ]
      },
      "DeviceTags": {
        "type": "array",
        "maxItems": 64,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "DeviceName": {
        "description": "User-defined name for the device.",
        "type": "string",
        "example": "My new device",
        "minLength": 1,
        "maxLength": 126
      },
      "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"
        ]
      },
      "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"
        ]
      },
      "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\nerror. Error reasons are unique within a particular domain of errors.\n",
            "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\n",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ExceptionMetadata"
          }
        }
      },
      "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"
            }
          }
        }
      },
      "ArgumentViolation": {
        "properties": {
          "argumentName": {
            "type": "string",
            "description": "Name of the argument"
          },
          "description": {
            "type": "string",
            "description": "Description of the violation"
          }
        }
      },
      "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"
            }
          }
        }
      },
      "ExceptionMetadata": {
        "properties": {
          "path": {
            "description": "Path of the request",
            "type": "string"
          },
          "method": {
            "description": "Method of the request",
            "type": "string"
          }
        }
      },
      "LocationId": {
        "description": "ID Of the location.",
        "minLength": 1,
        "type": "string",
        "nullable": true,
        "example": "2428fda3-389f-48ce-b062-85875dd6b2e2"
      },
      "ApiSpeakerMain": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "name": {
            "$ref": "#/components/schemas/DeviceName"
          },
          "bridgeId": {
            "$ref": "#/components/schemas/BridgeId1"
          },
          "locationId": {
            "$ref": "#/components/schemas/LocationId"
          },
          "isShared": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "accountId",
          "name",
          "bridgeId"
        ]
      },
      "ApiDeviceCredentials1": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Username to use when authenticating with the device"
          },
          "password": {
            "type": "string",
            "description": "Password to use when authenticating with the device. Password will not be returned in the GET apis. However, POST and PATCH will take the password field."
          }
        },
        "required": [
          "username"
        ]
      },
      "SpeakerSettings": {
        "description": "Device specific settings that can be configured on the speakers. This is accessible for shared speakers?",
        "type": "object",
        "properties": {
          "mainCredentials": {
            "allOf": [
              {
                "description": "The credentials that will used for communicating with the devices with the main API of the device, which generally is its ONVIF API.\n"
              },
              {
                "$ref": "#/components/schemas/ApiDeviceCredentials1"
              }
            ]
          },
          "adminCredentials": {
            "$ref": "#/components/schemas/AdminCredentials"
          },
          "sipCredentials": {
            "allOf": [
              {
                "description": "The credentials that will be used to authenticate SIP sessions.\n"
              },
              {
                "$ref": "#/components/schemas/ApiDeviceCredentials1"
              }
            ]
          },
          "sipPort": {
            "type": "integer",
            "description": "Port to which SIP requests should be sent from the bridge. Applicable for sip speakers and defaults to 5060",
            "minimum": 1025,
            "maximum": 65535,
            "default": 5060,
            "example": 5060
          }
        }
      },
      "Guid2": {
        "type": "string",
        "format": "uuid",
        "example": "ddfa5b34-5d04-431e-8287-110fe87edf71"
      },
      "BridgeId1": {
        "type": "string",
        "pattern": "^(?:0[xX])?[0-9a-fA-F]{8}$",
        "example": "1000f60d"
      },
      "ApiAddSpeaker": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SpeakerSettings"
          },
          {
            "type": "object",
            "properties": {
              "registrationStrategy": {
                "$ref": "#/components/schemas/RegistrationStrategy"
              },
              "name": {
                "$ref": "#/components/schemas/DeviceName"
              },
              "tags": {
                "$ref": "#/components/schemas/DeviceTags"
              },
              "bridgeId": {
                "$ref": "#/components/schemas/BridgeId1"
              },
              "guid": {
                "$ref": "#/components/schemas/Guid2"
              },
              "locationId": {
                "$ref": "#/components/schemas/LocationId"
              }
            },
            "required": [
              "registrationStrategy",
              "name",
              "bridgeId",
              "guid"
            ]
          }
        ]
      },
      "RegistrationStrategy": {
        "description": "Indicates how the speaker was added to the system",
        "type": "string",
        "default": "discoveredSip",
        "enum": [
          "discoveredSip"
        ]
      }
    },
    "responses": {
      "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"
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "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>"
                  }
                }
              ]
            }
          }
        }
      },
      "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>"
                      ]
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "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/<resource>"
                      }
                    }
                  ]
                }
              },
              "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/<resource>"
                      }
                    }
                  ]
                }
              },
              "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/<resource>"
                      }
                    }
                  ]
                }
              },
              "deviceUnavailable": {
                "value": {
                  "code": 409,
                  "status": "conflict",
                  "message": "Device is not available.",
                  "details": [
                    {
                      "type": "errorInfo",
                      "reason": "deviceUnavailable",
                      "domain": "apiv3",
                      "metadata": {
                        "path": "/api/v3.0/<resource>"
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "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>"
                  }
                }
              ]
            }
          }
        }
      }
    }
  },
  "x-readme": {
    "explorer-enabled": true
  }
}
```