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

# Activation (Public)

> Retrieve a public activation pack for a genie or portal microsite

The `activation` resource provides a public, unauthenticated read of an activation pack. It is used by activation microsites and smart links to render a branded launch page for a genie or portal without exposing any internal data.

<Note>
  This endpoint requires no authentication. The pack UUID is the only credential — sharing a pack UUID is the owner's signal to distribute it publicly.
</Note>

***

## Get public activation

Returns a sanitized, whitelisted activation object for the given pack ID. Includes branding, channel links, and a short promotional tagline derived from the pack's promotional copy.

The target genie or portal must still exist. If the target has been deleted, the request returns `404`.

<ParamField body="resource" type="string" required>
  `activation`
</ParamField>

<ParamField body="action" type="string" required>
  `public-get`
</ParamField>

<ParamField body="id" type="string" required>
  The activation pack UUID.
</ParamField>

<ResponseField name="activation" type="object">
  The public activation object.

  <Expandable title="properties">
    <ResponseField name="id" type="string">
      The activation pack UUID.
    </ResponseField>

    <ResponseField name="name" type="string">
      Display name derived from the linked genie or portal.
    </ResponseField>

    <ResponseField name="tagline" type="string | null">
      Brand tagline from the linked genie or portal branding, if set.
    </ResponseField>

    <ResponseField name="description" type="null">
      Always `null`. Internal descriptions are never exposed publicly.
    </ResponseField>

    <ResponseField name="targetType" type="string">
      Either `"genie"` or `"portal"`, indicating what type of resource this pack is linked to.
    </ResponseField>

    <ResponseField name="targetUrl" type="string">
      The URL where the genie or portal can be accessed. Constructed from the request origin and the genie's public URL slug or portal slug.
    </ResponseField>

    <ResponseField name="branding" type="object">
      Resolved branding configuration. Pack overrides take precedence over the linked target's branding.

      <Expandable title="properties">
        <ResponseField name="primaryColor" type="string">
          Primary brand color (hex). Defaults to `"#4E9CFF"`.
        </ResponseField>

        <ResponseField name="secondaryColor" type="string | null">
          Secondary brand color (hex), or `null` if not set.
        </ResponseField>

        <ResponseField name="logoUrl" type="string | null">
          Logo image URL, or `null` if not set.
        </ResponseField>

        <ResponseField name="brandName" type="string | null">
          Brand display name, or `null` if not set.
        </ResponseField>

        <ResponseField name="gradientEnabled" type="boolean">
          Whether to render a gradient background.
        </ResponseField>

        <ResponseField name="gradientAngle" type="number | null">
          Gradient angle in degrees, or `null` if not set.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="channels" type="object[]">
      Distribution channels enabled for this pack, as ready-to-use link objects.

      <Expandable title="item properties">
        <ResponseField name="type" type="string">
          Channel type. One of `web_widget`, `phone`, `sms`, `whatsapp`.
        </ResponseField>

        <ResponseField name="label" type="string">
          Human-readable label (for example `"Call"`, `"Chat on the web"`).
        </ResponseField>

        <ResponseField name="url" type="string">
          Action URL for this channel (for example `"tel:+15551234567"`, `"sms:+15551234567"`, a WhatsApp deep link, or the genie page URL for web widget).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="promoTagline" type="string | null">
      A short promotional line from the pack's website banner copy (maximum 200 characters). Sourced from the `punchy` tone first, then `friendly`. `null` if no banner copy has been generated yet.
    </ResponseField>
  </Expandable>
</ResponseField>

<CodeGroup>
  ```typescript Request theme={null}
  const response = await ApiService.invoke({
    resource: "activation",
    action: "public-get",
    id: "pack-uuid",
  });
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.helpgenie.ai/v1/activation \
    -H "Content-Type: application/json" \
    -d '{
      "action": "public-get",
      "id": "pack-uuid"
    }'
  ```

  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "activation": {
        "id": "pack-uuid",
        "name": "Customer Support",
        "tagline": "Always on. Always helpful.",
        "description": null,
        "targetType": "genie",
        "targetUrl": "https://mycompany.com/live-agent/customer-support",
        "branding": {
          "primaryColor": "#4E9CFF",
          "secondaryColor": null,
          "logoUrl": "https://storage.helpgenie.ai/logos/mycompany.png",
          "brandName": "MyCompany",
          "gradientEnabled": true,
          "gradientAngle": 135
        },
        "channels": [
          {
            "type": "web_widget",
            "label": "Chat on the web",
            "url": "https://mycompany.com/live-agent/customer-support"
          },
          {
            "type": "phone",
            "label": "Call",
            "url": "tel:+15551234567"
          }
        ],
        "promoTagline": "Get answers instantly — no hold music."
      }
    }
  }
  ```
</CodeGroup>

***

## Error responses

| Status | Code               | Description                                                 |
| ------ | ------------------ | ----------------------------------------------------------- |
| 400    | `VALIDATION_ERROR` | Pack ID is missing                                          |
| 404    | `NOT_FOUND`        | Pack not found, or the linked genie/portal has been deleted |
| 500    | `INTERNAL_ERROR`   | Server error                                                |
