---
title: "Register new or update channel"
method: POST
path: "/api/channels/open"
tags: ["Open Channels"]
---

# Register new or update channel

`POST /api/channels/open`

## Request

- Base URL: `https://go.urbanairship.com`
- URL: `https://go.urbanairship.com/api/channels/open`
- Auth: one of:
  - HTTP basic
  - HTTP bearer
  - OAuth 2
    - Client credentials
    - Token URL: `http://oauth2.{domain}.com/token` scopes: `chn`
- TypeScript: <https://skmtc.dev/airship/apis/airship-api/docs/api/channels/open/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a new open channel or update an existing open channel.

## Request body

- object
  - `channel` object, required: Properties of the open channel object.
    - `address` string, required: Where notifications sent to this `channel_id` will be sent. Examples: email address, phone number. If missing, `channel_id` must be present. The `address` is one-to-one with the `channel_id`. New addresses on existing channels will overwrite old associations.
    - `locale_country` string: The two-letter country locale short code. Will set the `ua_locale_country` tag group to the specified value.
    - `locale_language` string: The two-letter language locale short code. Will set the `ua_locale_language` tag group to the specified value.
    - `open` object, required: Open channel-specific properties.
      - `identifiers` object: Optional object with string-to-string key:value pairs that represent non-segmentable identifiers for the channel in your delivery systems. Delivered as part of webhook payloads. If present, the value will overwrite (not union with) existing identifier records.
      - `open_platform_name` string, required: The name of the open platform to which you are registering this channel.
    - `opt_in` boolean, required: If false, no payloads will be delivered for the channel.
    - `tags` string[]: A list of strings used for audience targeting. When used for this endpoint, operates like the `tags { set {}}` operation; specified tags are applied, and all other tags are removed.
    - `timezone` string: An IANA tzdata identifier for the time zone as a string, e.g., `"America/Los_Angeles"`. Will set the `timezone` tag group tag with the specified value.
    - `type` 'open', required: Required string.

## Response `200`

Returned if the new channel is created successfully or if an existing channel was found for the specified open_platform_name and address.

- object
  - `channel_id` string, uuid: Identifies the new open channel or the open channel you successfully updated.
  - `ok` boolean: Success.

## Other responses

- `400`: There was a parsing or validation error in the request. Bad Request errors typically include `path` and `location` in the response to help you find the cause of the error.
- `401`: Authentication information (the app key and secret or bearer token) was either incorrect or missing.
- `429`: Too many requests hit the API too quickly. For example, if we are not ready to create a channel for this payload; e.g., it is rate limited. You should wait before retrying the channel creation.

---

[API](https://skmtc.dev/airship/apis/airship-api.md) - [All operations](https://skmtc.dev/airship/apis/airship-api/llms.txt) - [OpenAPI document](https://skmtc.dev/airship/apis/airship-api/revisions/bd6ab947117a?raw)
