> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# Create subscriber

> Creates or updates a subscriber by email address.

`kit.createSubscriber` creates or updates a subscriber by email address.

```ts automations/create-subscriber.automation.ts theme={null}
import { automation, markSignificant } from "automate.ax"
import { kit } from "automate.ax/kit"

export default automation("Create subscriber", () => {
  markSignificant(
    kit.createSubscriber({
      emailAddress: "value",
    }),
  )
})
```

## Input

Pass these fields:

| Field          | Type                                                                         | Required | Description                                                                                                                                                               |
| -------------- | ---------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `firstName`    | `string \| null`                                                             | No       | —                                                                                                                                                                         |
| `emailAddress` | `string`                                                                     | Yes      | —                                                                                                                                                                         |
| `state`        | `"active" \| "cancelled" \| "bounced" \| "complained" \| "inactive" \| null` | No       | Create subscriber in this state (`active`, `bounced`, `cancelled`, `complained` or `inactive`). Defaults to `active`.                                                     |
| `fields`       | `object`                                                                     | No       | Custom field values keyed by the custom field's `key` (for example `last_name`, not `Last Name`). Unknown keys are ignored and reported in the response `warnings` array. |

## Output

Returns an object with these fields:

| Field        | Type       | Required | Description                                                                                                                                                                               |
| ------------ | ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `subscriber` | `object`   | Yes      | —                                                                                                                                                                                         |
| `warnings`   | `string[]` | No       | Present only when the request referenced custom field keys that don't exist on the account. Each entry names an unknown key that was ignored; the subscriber is still created or updated. |

Kit rate limits OAuth connections to 600 requests per 60 seconds and V4 API keys to 120 requests per 60 seconds. Automate.ax honors provider retry timing for rate-limit and temporary bulk-capacity responses.
