# Configuring Entry Points

Learn how to configure Soracom Beam entry points.

To use Beam, add an entry point to a [group](https://docs.soracom.io/en/services/groups) and assign your IoT SIM, Sigfox device, or other device to the group.

## Enabling an Entry Point

1. In the SIM group, Sigfox group, or Inventory group settings screen, click **Soracom Beam**.

   For detailed instructions on how to open the SIM Group settings screen, see [Group Settings](https://docs.soracom.io/en/services/groups/settings).

2. Click **+ Add Configuration**, select an entry point type, and configure the settings.

   The following entry points are available depending on the group type. For configuration details, refer to the linked entry point documentation pages.

   **SIM Group**

   | Entry point | Description |
   | - | - |
   | [HTTP](https://docs.soracom.io/en/services/beam/http) | Receives HTTP requests from a device and forwards them using HTTP or HTTPS to a specified URL (protocol, host name, port number, path). Suitable for forwarding requests to any API endpoint. |
   | [Website](https://docs.soracom.io/en/services/beam/website) | Receives HTTP requests from a device and forwards them using HTTP or HTTPS to a specified host (protocol, host name, port number). The path specified in the original request is preserved. Suitable for changing the forwarding path depending on the device's situation. |
   | [MQTT](https://docs.soracom.io/en/services/beam/mqtt) | Receives MQTT sessions from a device and proxies them as MQTT or MQTTS sessions to a specified MQTT broker. |
   | [TCP → TCP/TCPS](https://docs.soracom.io/en/services/beam/tcp-tcp) | Receives TCP packets from a device and forwards them using TCP or TCPS to a specified host. |
   | [TCP → HTTP/HTTPS](https://docs.soracom.io/en/services/beam/tcp-http) | Receives TCP packets from a device, converts the messages into HTTP or HTTPS requests, and forwards them to a specified URL. |
   | [UDP → HTTP/HTTPS](https://docs.soracom.io/en/services/beam/udp-http) | Receives UDP packets from a device, converts the messages into HTTP or HTTPS requests, and forwards them to a specified URL. |
   | [SMS → HTTP/HTTPS](https://docs.soracom.io/en/services/beam/sms-http) | Receives SMS messages from a device, converts the messages into HTTP or HTTPS requests, and forwards them to a specified URL. |
   | [USSD → HTTP/HTTPS](https://docs.soracom.io/en/services/beam/ussd-http) | Receives USSD messages from a device, converts the messages into HTTP or HTTPS requests, and forwards them to a specified URL. Available only for Global coverage SIM groups. |

   **Sigfox Group**

   | Entry point | Description |
   | - | - |
   | [Sigfox → HTTP/HTTPS](https://docs.soracom.io/en/services/beam/http) | Receives data from a Sigfox device, converts the message into an HTTP or HTTPS request, and forwards it to a specified URL. |

   **Inventory Group**

   | Entry point | Description |
   | - | - |
   | [Inventory → HTTP](https://docs.soracom.io/en/services/inventory/resource-observation) | Receives update notifications (observed data) from an Inventory-managed device, converts the message into an HTTP or HTTPS request, and forwards it to a specified URL. |

3. Click **Save**.

4. Assign devices to the group. For instructions, see [Managing devices](https://docs.soracom.io/en/services/groups/usage#managing-devices).

   Beam configuration is now complete.

## Disabling an Entry Point

Beam charges are incurred per request. If you are temporarily not using Beam, disable the entry point configuration. If you are permanently not using Beam, delete the entry point configuration.

1. In the SIM group, Sigfox group, or Device group settings screen, click **Soracom Beam**.

2. Click the toggle switch for the entry point you want to disable, then click **Disable**.

   To delete an entry point, click the delete icon and then click **Delete**.

## Using Soracom API / Soracom CLI

You can also configure Beam entry points using the Soracom API or Soracom CLI.

### Soracom API

To access the Soracom API, first use the [**auth**](https://docs.soracom.io/en/api#!/Auth/auth) API to obtain an API Key and Token. Refer to the [**API Usage Guide**](https://docs.soracom.io/en/developers/soracom-api) for instructions on how to use the API Key and Token in API requests.

To enable Beam, use `Group:putConfigurationParameters` to add an entry point with `enabled` set to `true`.

> [!WARNING]
>
> - Get your `group_id` using `Group:listGroups`.
> - Use `SoracomBeam` as the `namespace`.
> - Specify properties in the request body according to the entry point type. For details, see the entry point documentation pages.

Example adding an [HTTP entry point](https://docs.soracom.io/en/services/beam/http):

```bash
curl -v -X PUT https://api.soracom.io/v1/groups/{group_id}/configuration/SoracomBeam \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN" \
-H "Content-Type: application/json" \
-d '[
  {
    "key": "http://beam.soracom.io:8888/",
    "value": {
      "name": "test",
      "enabled": true,
      "destination": "https://beamtest.soracom.io/",
      "addSubscriberHeader": true,
      "addSimIdHeader": true,
      "addMsisdnHeader": true,
      "addEquipmentHeader": true,
      "addSignature": true,
      "psk": {
        "$credentialsId": "CredentialsID"
      },
      "customHeaders": {
        "X-GROUP-NAME": {
          "action": "replace",
          "headerKey": "X-GROUP-NAME",
          "headerValue": "TEST"
        }
      }
    }
  }
]'
```

### Soracom CLI

To use the Soracom CLI, you must first configure it to authenticate with your account information, authorization key, or SAM user credentials.

To enable Beam, use `soracom groups put-config` (`Group:putConfigurationParameters`) to add an entry point with `enabled` set to `true`.

> [!WARNING]
>
> - Get your `group_id` using `soracom groups list` (`Group:listGroups`).
> - The `namespace` is `SoracomBeam`.
> - The properties specified in the body depend on the entry point type. For more information, see the entry point documentation pages.

Example adding an [HTTP entry point](https://docs.soracom.io/en/services/beam/http):

```bash
soracom groups put-config --group-id {group_id} --namespace SoracomBeam \
--body '[
  {
    "key": "http://beam.soracom.io:8888/",
    "value": {
      "name": "test",
      "enabled": true,
      "destination": "https://beamtest.soracom.io/",
      "addSubscriberHeader": true,
      "addSimIdHeader": true,
      "addMsisdnHeader": true,
      "addEquipmentHeader": true,
      "addSignature": true,
      "psk": {
        "$credentialsId": "CredentialsID"
      },
      "customHeaders": {
        "X-GROUP-NAME": {
          "action": "replace",
          "headerKey": "X-GROUP-NAME",
          "headerValue": "TEST"
        }
      }
    }
  }
]'
```
