Skip to content

Arrow clients

Arrow client is an open-source application that connects devices behind NAT to the Angelcam cloud. It’s built into Angelcam’s own hardware:

  • AngelBox — connects local IP cameras to Angelcam
  • AngelCamera — an all-in-one camera with Arrow client built in

Anyone can also build their own Arrow client-powered device using the open-source implementation.

  1. Restart the device — pairing mode is active for the first 20 minutes after start.
  2. POST to arrow-clients/ — the API returns the Arrow client UUID.
  3. Poll arrow-clients/{uuid}/ until status is online.

The Arrow proxy lets you communicate directly with services on the local network behind an Arrow client. Two proxy types are available:

  • Transparent HTTP proxy — forwards HTTP requests to a target service. Add two headers to your request:

    • Host: {SERVICE_ID}-{ARROW_UUID} (UUID as 32-digit hex, no dashes)
    • Proxy-Authorization: Bearer ACCESS_TOKEN (from the Arrow client detail endpoint)

    Example — reach a local HTTP service (service ID 1a2b, Arrow UUID 5eee0b55-bec3-4b9a-8c83-20fa1d258891, proxy at m1-eu1.angelcam.com:8941):

    GET /api/v1/ HTTP/1.1
    Host: 1a2b-5eee0b55bec34b9a8c8320fa1d258891
    Proxy-Authorization: Bearer aaa.bbb.ccc
  • HTTP CONNECT proxy — tunnels an arbitrary TCP connection (e.g. RTSP). Proxy at m1-eu1.angelcam.com:8940:

    CONNECT 1a2b-5eee0b55bec34b9a8c8320fa1d258891:0 HTTP/1.1
    Host: 1a2b-5eee0b55bec34b9a8c8320fa1d258891
    Proxy-Authorization: Bearer aaa.bbb.ccc

    After the proxy responds with HTTP 200 the connection becomes a plain TCP tunnel. The port in the CONNECT address is required by the HTTP spec — use any value (e.g. 0).

Both proxy types support HTTP and HTTPS. HTTPS is recommended regardless of whether the target service supports it.