---
title: "Get an Apple Messages template version's language"
canonical: "https://bird.com/docs/api/reference/get-amb-template-version-language"
---

# Get an Apple Messages template version's language

`GET /v1/amb/templates/{template_ref}/versions/{version_id}/languages/{language}`

Returns one language's full text, revision, content hash, and update time. The response echoes the language in its canonical BCP-47 form.

## Code samples

**TypeScript**

```ts
const language = await bird.amb.templates.versions.languages.get(
  "bird_order_update",
  "amv_01ky4x8e4genzb7way45txfkm1",
  "en",
);
console.log(language.language, language.content);
```

Examples: [TypeScript](/docs/api/reference/get-amb-template-version-language.ts.md) · [Python](/docs/api/reference/get-amb-template-version-language.py.md) · [Go](/docs/api/reference/get-amb-template-version-language.go.md) · [PHP](/docs/api/reference/get-amb-template-version-language.php.md) · [CLI](/docs/api/reference/get-amb-template-version-language.cli.md) · [MCP](/docs/api/reference/get-amb-template-version-language.mcp.md) · [cURL](/docs/api/reference/get-amb-template-version-language.curl.md)

## Example response `200`

```json
{
  "language": "en",
  "content": {
    "type": "text",
    "body": "Your order {{ order_number }} is on its way."
  },
  "revision": 1,
  "content_hash": "sha256:3d948846f5f773fb7bed8ab81b57f3d0ff2cbff24cb549718f4d389f1ab0300a",
  "updated_at": "2026-09-10T09:00:00Z"
}
```

## Path parameters

- `template_ref` (string): The template's ID (`amt_…`) or slug.
- `version_id` (string): The version that holds the language.
- `language` (string): The language as a BCP-47 tag. Case and separator differences are accepted and canonicalized.

## Response body

- `language` (string, required): The language in canonical BCP-47 form.
- `content` (object, required): Stored template content, including its `{{ variable }}` placeholders.
  - Variant `text`
    - `content.type` (string, required)

      Always text.

      Value: `text`
    - `content.body` (string): Text displayed in the message. Use one U+FFFC object replacement character per attachment to control placement.
    - `content.subject` (string): Subject displayed above the message body.
    - `content.attachments` (array): Ordered attachments. Each object supplies a source URL or an encrypted Apple reference.
    - `content.attachments.name` (string): Display filename.
    - `content.attachments.mime_type` (string): Media type of the attachment.
      - Variant `source_url`
        - `content.attachments.source_url` (string, required): HTTPS URL Bird downloads and uploads to Apple.
      - Variant `url + owner + key + signature_base64 + size`
        - `content.attachments.url` (string, required): Encrypted attachment URL returned by Apple.
        - `content.attachments.owner` (string, required): Opaque owner value returned by Apple.
        - `content.attachments.signature_base64` (string, required): Attachment authorization signature returned by Apple.
        - `content.attachments.key` (string, required): Attachment decryption key returned by Apple.
        - `content.attachments.size` (integer, required): Attachment size in bytes.
  - Variant `rich_link`
    - `content.type` (string, required)

      Always rich_link.

      Value: `rich_link`
    - `content.body` (string): Automatic introductions for rich links are enabled regionally in stages. When enabled for a new send, a nonblank body is sent as a separate text before the link. All parts belong to one message, which becomes sent after Apple accepts all parts. Before activation, and for retries retaining legacy behavior, body is included in the rich link request and is not guaranteed to appear on the device. To ensure an introduction without relying on activation, send a separate text message and omit body from the rich link. Use one U+FFFC object replacement character per attachment to control placement.
    - `content.subject` (string): Subject displayed above the message body.
    - `content.attachments` (array): Ordered attachments. Each object supplies a source URL or an encrypted Apple reference.
    - `content.attachments.name` (string): Display filename.
    - `content.attachments.mime_type` (string): Media type of the attachment.
      - Variant `source_url`
        - `content.attachments.source_url` (string, required): HTTPS URL Bird downloads and uploads to Apple.
      - Variant `url + owner + key + signature_base64 + size`
        - `content.attachments.url` (string, required): Encrypted attachment URL returned by Apple.
        - `content.attachments.owner` (string, required): Opaque owner value returned by Apple.
        - `content.attachments.signature_base64` (string, required): Attachment authorization signature returned by Apple.
        - `content.attachments.key` (string, required): Attachment decryption key returned by Apple.
        - `content.attachments.size` (integer, required): Attachment size in bytes.
    - `content.rich_link_data` (object)
    - `content.rich_link_data.url` (string, required): HTTPS URL opened by the preview.
    - `content.rich_link_data.title` (string, required): Preview title.
    - `content.rich_link_data.assets` (object, required)
    - `content.rich_link_data.assets.image` (object, required)
    - `content.rich_link_data.assets.image.source_url` (string, required): HTTPS URL of a PNG preview image up to 200 kB. Bird fetches and encodes it when sending.
    - `content.rich_link_data.assets.image.mime_type` (string)

      PNG media type required by Apple. Defaults to image/png.

      Value: `image/png`
    - `content.rich_link_data.assets.video` (object)
    - `content.rich_link_data.assets.video.url` (string, required): HTTPS video URL fetched by Apple.
    - `content.rich_link_data.assets.video.mime_type` (string): Media type of the video. Defaults to video/mp4; supply the actual type for other formats.
    - `content.rich_link_data_ref`: Reusable Apple content reference. Supply the decryption key, or the signed bid and data_ref_sig returned by Apple.
    - `content.rich_link_data_ref.title` (string): Title supplied by Apple for the preview.
    - `content.rich_link_data_ref.url` (string, required): Location of the encrypted preview.
    - `content.rich_link_data_ref.owner` (string, required): Owner identifier supplied by Apple.
    - `content.rich_link_data_ref.signature_base64` (string, required): Signature supplied by Apple.
    - `content.rich_link_data_ref.size` (integer, required): Size of the encrypted preview in bytes.
      - Variant `key`
        - `content.rich_link_data_ref.key` (string, required): Decryption key supplied by Apple.
      - Variant `bid + data_ref_sig`
        - `content.rich_link_data_ref.bid` (string, required): Messages extension identifier supplied by Apple, when present.
        - `content.rich_link_data_ref.data_ref_sig` (string, required): Signature binding the reference to the business, when supplied by Apple.
    - `content.rich_link_construct` (object): Asks Apple to build the rich link preview when the message is sent, rather than through a prior `POST /v1/amb/messages/construct-payload` call. No caller holds a signed reference until the send itself resolves one.
    - `content.rich_link_construct.url` (string, required): The App Clip, Apple Music, or Apple Maps URL to build a preview for. An `http://` URL is refused with a `422` `AMBEndpointNotHTTPS`. A URL Apple cannot build a preview for is refused with a `422` `AMBConstructPayloadFailed`; send `rich_link` content with your own `title` and `image` instead.
    - `content.rich_link_construct.store_region` (string): App Store storefront used to build an App Clip preview. Defaults to `US` when omitted.
  - Variant `interactive`
    - `content.type` (string, required)

      Always interactive.

      Value: `interactive`
    - `content.body` (string): Automatic introductions for inline quick replies are enabled regionally in stages. When enabled for a new send containing `interactive_data.data.quick_reply`, a nonblank body is sent as separate text before the choices. Messages using `interactive_data_ref` do not receive this automatic introduction, even after activation. All parts belong to one message, which becomes sent after Apple accepts all parts. For referenced interactions, before activation, and for retries retaining legacy behavior, body is included in the interactive request and is not guaranteed to appear on the device. To ensure an introduction without relying on activation, send a separate text message and omit body from the quick reply. Omit body to send choices only. For list pickers, time pickers and forms, use interactive_data.received_message for the visible introduction. Use one U+FFFC object replacement character per attachment to control placement.
    - `content.subject` (string): Subject displayed above the message body.
    - `content.attachments` (array): Ordered attachments. Each object supplies a source URL or an encrypted Apple reference.
    - `content.attachments.name` (string): Display filename.
    - `content.attachments.mime_type` (string): Media type of the attachment.
      - Variant `source_url`
        - `content.attachments.source_url` (string, required): HTTPS URL Bird downloads and uploads to Apple.
      - Variant `url + owner + key + signature_base64 + size`
        - `content.attachments.url` (string, required): Encrypted attachment URL returned by Apple.
        - `content.attachments.owner` (string, required): Opaque owner value returned by Apple.
        - `content.attachments.signature_base64` (string, required): Attachment authorization signature returned by Apple.
        - `content.attachments.key` (string, required): Attachment decryption key returned by Apple.
        - `content.attachments.size` (integer, required): Attachment size in bytes.
    - `content.interactive_data`: A built-in interaction or custom iMessage app. Custom apps require the app metadata and both message bubbles.
    - `content.interactive_data.session_identifier` (string): Session UUID to preserve across interactions. Apple creates one when omitted.
      - Variant `data`
        - `content.interactive_data.data` (required): Exactly one built-in interaction. Protocol versions are managed by Bird.
        - `content.interactive_data.data.request_identifier` (string): Correlation identifier for this interaction. Bird generates one when omitted. Use a new value for each message. A reply is linked to its request only when no other sent message in the conversation uses the same identifier.
        - `content.interactive_data.data.images` (array of object): Images referenced by identifier.
        - `content.interactive_data.data.images.identifier` (string, required): Identifier referenced by a bubble, item, or event.
        - `content.interactive_data.data.images.source_url` (string, required): HTTPS URL of a PNG image up to 200 kB. Total interactive image data must not exceed 5 MB.
        - `content.interactive_data.data.images.description` (string): Accessibility description read by VoiceOver.
          - Variant `quick_reply`
            - `content.interactive_data.data.quick_reply` (object, required)
            - `content.interactive_data.data.quick_reply.summary_text` (string, required): Text used for the device notification and shown in the transcript after the customer chooses an item. Automatic introductions through the enclosing content.body depend on regional activation and the send retry mode; see content.body. For an introduction independent of activation, send a separate text message and omit content.body from the quick reply.
            - `content.interactive_data.data.quick_reply.items` (array of object, required): The buttons offered to the customer. Apple requires between two and five; outside that range the request is refused with a `422` `AMBQuickReplyItemsInvalid`. For more choices, send `list_picker` content instead.
            - `content.interactive_data.data.quick_reply.items.identifier` (string, required): Opaque choice identifier returned in interactive_data.data.quick_reply.selected_identifier.
            - `content.interactive_data.data.quick_reply.items.title` (string, required): Label shown on the button.
          - Variant `list_picker`
            - `content.interactive_data.data.list_picker` (object, required)
            - `content.interactive_data.data.list_picker.sections` (array of object, required): The menu's sections, each with its own heading and rows.
            - `content.interactive_data.data.list_picker.sections.title` (string, required): Heading shown above this section's rows.
            - `content.interactive_data.data.list_picker.sections.order` (nullable integer): Where this section sits relative to its siblings, ascending. Sections omitting it are laid out in list order, after any that specify one.
            - `content.interactive_data.data.list_picker.sections.items` (array of object, required): The rows in this section.
            - `content.interactive_data.data.list_picker.sections.items.identifier` (string, required): Opaque item identifier returned in interactive_data.data.list_picker.sections.
            - `content.interactive_data.data.list_picker.sections.items.title` (string, required): Label shown on the row.
            - `content.interactive_data.data.list_picker.sections.items.subtitle` (nullable string): Secondary line shown under the title.
            - `content.interactive_data.data.list_picker.sections.items.image_identifier` (nullable string): Identifier of an image in interactive_data.data.images, shown next to this row. A key with no matching entry in `images` is refused with a `422` `AMBInteractiveImageInvalid`.
            - `content.interactive_data.data.list_picker.sections.items.order` (integer): Position within the section, ascending. Defaults to the row's array position.
            - `content.interactive_data.data.list_picker.sections.multiple_selection` (boolean): Whether the customer can select more than one row in this section.
          - Variant `event`
            - `content.interactive_data.data.event` (object, required)
            - `content.interactive_data.data.event.identifier` (string): Your identifier for the event. Defaults to the message identifier.
            - `content.interactive_data.data.event.location` (object): Optional appointment location.
            - `content.interactive_data.data.event.location.title` (string): Name shown for the appointment location.
            - `content.interactive_data.data.event.location.latitude` (number): Latitude in degrees. Set together with `longitude`.
            - `content.interactive_data.data.event.location.longitude` (number): Longitude in degrees. Set together with `latitude`.
            - `content.interactive_data.data.event.location.radius` (number): Location radius in meters. Apple ignores it without coordinates.
            - `content.interactive_data.data.event.timezone_offset` (integer): Minutes from GMT at the event location. Omit to use the customer's time zone.
            - `content.interactive_data.data.event.timeslots` (array of object, required): Appointment times with RFC 3339 timestamps and duration in seconds.
            - `content.interactive_data.data.event.timeslots.identifier` (string, required): Opaque slot identifier. Apple may instead return only a localized label in interactive_data.reply_message.title.
            - `content.interactive_data.data.event.timeslots.start_at` (string, required): When this slot begins. Seconds and fractional seconds must be zero, for example `2026-09-02T14:30:00Z`; otherwise sending returns `422` with error code `E01001`. The timestamp is converted to UTC for Apple while preserving the instant.
            - `content.interactive_data.data.event.timeslots.duration_seconds` (integer, required): Duration in seconds. Zero indicates no duration.
            - `content.interactive_data.data.event.image_identifier` (string): Identifier of the event image in interactive_data.data.images.
            - `content.interactive_data.data.event.title` (string): Event title. Also supplies the title of each omitted received or reply bubble, where the 512-character bubble text limit applies. Supply both bubbles explicitly to use a longer event title.
          - Variant `dynamic`
            - `content.interactive_data.data.dynamic` (object, required): Form content. Bird supplies Apple’s messageForms template and protocol version.
            - `content.interactive_data.data.dynamic.data` (object, required)
            - `content.interactive_data.data.dynamic.data.start_page_identifier` (string, required): Identifier of the first page to show.
            - `content.interactive_data.data.dynamic.data.private` (boolean): Whether Apple marks the submitted response as private.
            - `content.interactive_data.data.dynamic.data.show_summary` (boolean): Whether Apple shows a summary before the customer submits.
            - `content.interactive_data.data.dynamic.data.splash` (object)
            - `content.interactive_data.data.dynamic.data.splash.header` (string)
            - `content.interactive_data.data.dynamic.data.splash.splash_text` (string)
            - `content.interactive_data.data.dynamic.data.splash.button_title` (string, required)
            - `content.interactive_data.data.dynamic.data.splash.image_identifier` (string)
            - `content.interactive_data.data.dynamic.data.pages` (array of object, required): Form pages referenced by the start page and navigation identifiers.
            - `content.interactive_data.data.dynamic.data.pages.page_identifier` (string, required): Unique identifier for this page.
            - `content.interactive_data.data.dynamic.data.pages.title` (string)
            - `content.interactive_data.data.dynamic.data.pages.subtitle` (string, required): Question shown on this page.
            - `content.interactive_data.data.dynamic.data.pages.next_page_identifier` (string): Next page to show. Omit to finish the form. Single-select pages route through their items instead.
            - `content.interactive_data.data.dynamic.data.pages.submit_form` (boolean): Marks this page as an end page for the form. A page with no next page also finishes the form.
              - Variant `select`
                - `content.interactive_data.data.dynamic.data.pages.type` (string, required): Value: `select`
                - `content.interactive_data.data.dynamic.data.pages.multiple_selection` (boolean)
                - `content.interactive_data.data.dynamic.data.pages.items` (array of object, required)
                - `content.interactive_data.data.dynamic.data.pages.items.identifier` (string, required)
                - `content.interactive_data.data.dynamic.data.pages.items.title` (string, required)
                - `content.interactive_data.data.dynamic.data.pages.items.value` (string, required)
                - `content.interactive_data.data.dynamic.data.pages.items.image_identifier` (string)
                - `content.interactive_data.data.dynamic.data.pages.items.next_page_identifier` (string)
              - Variant `picker`
                - `content.interactive_data.data.dynamic.data.pages.type` (string, required): Value: `picker`
                - `content.interactive_data.data.dynamic.data.pages.picker_title` (string): Text beside the picker field. Omit to center the field without a label.
                - `content.interactive_data.data.dynamic.data.pages.selected_item_index` (integer): Zero-based index into `items`. Defaults to `0`. Must be less than the number of items; otherwise sending returns `422` `AMBFormPagesInvalid`.
                - `content.interactive_data.data.dynamic.data.pages.items` (array of object, required)
                - `content.interactive_data.data.dynamic.data.pages.items.identifier` (string, required)
                - `content.interactive_data.data.dynamic.data.pages.items.title` (string, required)
                - `content.interactive_data.data.dynamic.data.pages.items.value` (string, required)
              - Variant `date_picker`
                - `content.interactive_data.data.dynamic.data.pages.type` (string, required): Value: `date_picker`
                - `content.interactive_data.data.dynamic.data.pages.hint_text` (string)
                - `content.interactive_data.data.dynamic.data.pages.options` (object): Apple defaults to UTC when interpreting these dates.
                - `content.interactive_data.data.dynamic.data.pages.options.date_format` (string): Format used to read the date values in these options. Defaults to `MM/dd/yyyy`.
                - `content.interactive_data.data.dynamic.data.pages.options.start_date` (string): Date initially shown by the picker, written in `date_format`. Defaults to the current date.
                - `content.interactive_data.data.dynamic.data.pages.options.maximum_date` (string): Latest date the picker shows, written in `date_format`. Defaults to the current date.
                - `content.interactive_data.data.dynamic.data.pages.options.minimum_date` (string): Earliest date the picker shows, written in `date_format`.
                - `content.interactive_data.data.dynamic.data.pages.options.label_text` (string): Label beside the date field. Defaults to `Date`.
              - Variant `input`
                - `content.interactive_data.data.dynamic.data.pages.type` (string, required): Value: `input`
                - `content.interactive_data.data.dynamic.data.pages.hint_text` (string)
                - `content.interactive_data.data.dynamic.data.pages.options` (object)
                - `content.interactive_data.data.dynamic.data.pages.options.regex` (string): Pattern Apple uses to validate the input. Use JSON string escaping for backslashes.
                - `content.interactive_data.data.dynamic.data.pages.options.placeholder` (string): Shown when the field is empty. Defaults to `Required` when `required` is true, otherwise `Optional`.
                - `content.interactive_data.data.dynamic.data.pages.options.required` (boolean): Disables the next-page button until the customer enters a value.
                - `content.interactive_data.data.dynamic.data.pages.options.input_type` (string)

                  Defaults to `singleline`.

                  Possible values: `singleline`, `multiline`
                - `content.interactive_data.data.dynamic.data.pages.options.label_text` (string): Label for `singleline` input only. Omit for no label.
                - `content.interactive_data.data.dynamic.data.pages.options.prefix_text` (string): Text beside `singleline` input only, such as a currency symbol. Omit for no prefix.
                - `content.interactive_data.data.dynamic.data.pages.options.maximum_character_count` (integer): Defaults to 30 for `singleline` input and 300 for `multiline` input.
                - `content.interactive_data.data.dynamic.data.pages.options.keyboard_type` (string)

                  Keyboard to display. Defaults to `default`.

                  Possible values (may grow over time): `default`, `asciiCapable`, `numbersAndPunctuation`, `URL`, `numberPad`, `phonePad`, `namePhonePad`, `emailAddress`, `decimalPad`, `webSearch`
                - `content.interactive_data.data.dynamic.data.pages.options.text_content_type` (string)

                  Content hint used for autofill.

                  Possible values (may grow over time): `name`, `namePrefix`, `givenName`, `middleName`, `familyName`, `nameSuffix`, `nickname`, `jobTitle`, `organizationName`, `location`, `fullStreetAddress`, `streetAddressLine1`, `streetAddressLine2`, `addressCity`, `addressState`, `addressCityAndState`, `sublocality`, `countryName`, `postalCode`, `telephoneNumber`, `emailAddress`, `URL`, `creditCardNumber`, `username`, `password`, `newPassword`, `oneTimeCode`
          - Variant `authenticate`
            - `content.interactive_data.data.authenticate` (object, required): Authentication attempt created through the conversation authentication endpoint. Contains no authorization parameters or credentials.
            - `content.interactive_data.data.authenticate.authentication_id` (string, required)
          - Variant `payment`
            - `content.interactive_data.data.payment` (object, required): Apple Pay request created through the conversation payment endpoint. Contains no payment token or provider credentials.
            - `content.interactive_data.data.payment.payment_id` (string, required)
      - Variant `app_id + app_name + bid + url + app_icon_source_url + use_live_layout + received_message + reply_message`
        - `content.interactive_data.app_id` (string, required): App Store identifier of the iMessage app.
        - `content.interactive_data.app_name` (string, required): Name of the iMessage app.
        - `content.interactive_data.bid` (string, required): Identifier of the iMessage extension, in Apple's `com.apple.messages.MSMessageExtensionBalloonPlugin:team-id:extension-id` format.
        - `content.interactive_data.url` (string, required): Opaque URL string that Messages passes to the iMessage app.
        - `content.interactive_data.use_live_layout` (boolean, required): Whether Messages renders the received and reply bubbles using Live Layout.
        - `content.interactive_data.received_message` (object, required): Content Messages shows in the received message bubble.
        - `content.interactive_data.received_message.title` (string, required): Text shown on the message bubble.
        - `content.interactive_data.received_message.subtitle` (string): Secondary text shown below the title.
        - `content.interactive_data.received_message.style` (string)

          Bubble layout. Apple defaults to `icon` when omitted and ignores it for custom iMessage apps.

          Possible values: `icon`, `small`, `large`
        - `content.interactive_data.received_message.image_identifier` (string): Identifier of an image in interactive_data.data.images. Apple ignores it for custom iMessage apps.
        - `content.interactive_data.received_message.image_title` (string): Title shown over an attached image in a custom iMessage app bubble.
        - `content.interactive_data.received_message.image_subtitle` (string): Subtitle shown over an attached image in a custom iMessage app bubble.
        - `content.interactive_data.received_message.secondary_subtitle` (string): Right-aligned title in a custom iMessage app bubble.
        - `content.interactive_data.received_message.tertiary_subtitle` (string): Right-aligned subtitle in a custom iMessage app bubble.
        - `content.interactive_data.reply_message` (object, required): Content Messages shows in the reply message bubble.
        - `content.interactive_data.reply_message.title` (string, required): Text shown on the message bubble.
        - `content.interactive_data.reply_message.subtitle` (string): Secondary text shown below the title.
        - `content.interactive_data.reply_message.style` (string)

          Bubble layout. Apple defaults to `icon` when omitted and ignores it for custom iMessage apps.

          Possible values: `icon`, `small`, `large`
        - `content.interactive_data.reply_message.image_identifier` (string): Identifier of an image in interactive_data.data.images. Apple ignores it for custom iMessage apps.
        - `content.interactive_data.reply_message.image_title` (string): Title shown over an attached image in a custom iMessage app bubble.
        - `content.interactive_data.reply_message.image_subtitle` (string): Subtitle shown over an attached image in a custom iMessage app bubble.
        - `content.interactive_data.reply_message.secondary_subtitle` (string): Right-aligned title in a custom iMessage app bubble.
        - `content.interactive_data.reply_message.tertiary_subtitle` (string): Right-aligned subtitle in a custom iMessage app bubble.
        - `content.interactive_data.app_icon_source_url` (string, required): Publicly accessible HTTPS URL of the app's PNG icon. The icon must be smaller than 15 kB. We fetch and include it in the request to Apple.
    - `content.interactive_data_ref`: Reusable Apple content reference. Supply the decryption key, or the signed bid and data_ref_sig returned by Apple.
    - `content.interactive_data_ref.title` (string): Title supplied by Apple for the preview.
    - `content.interactive_data_ref.url` (string, required): Location of the encrypted preview.
    - `content.interactive_data_ref.owner` (string, required): Owner identifier supplied by Apple.
    - `content.interactive_data_ref.signature_base64` (string, required): Signature supplied by Apple.
    - `content.interactive_data_ref.size` (integer, required): Size of the encrypted preview in bytes.
      - Variant `key`
        - `content.interactive_data_ref.key` (string, required): Decryption key supplied by Apple.
      - Variant `bid + data_ref_sig`
        - `content.interactive_data_ref.bid` (string, required): Messages extension identifier supplied by Apple, when present.
        - `content.interactive_data_ref.data_ref_sig` (string, required): Signature binding the reference to the business, when supplied by Apple.
- `revision` (integer, required): This language's revision counter, used for concurrent-edit checks on draft writes.
- `content_hash` (string, required): A fingerprint of Apple Messages template content, prefixed with its algorithm. Compare it within this API version to identify the exact source without transferring it.
- `updated_at` (nullable string, required): When this language was last saved. Null for a built-in template.

## Related resources

- [Should I use a Bird SDK or call the API directly?](/explained/platform/should-i-use-an-sdk-or-call-the-api-directly) (answer)
- [Build your first integration](/learn/paths/integration) (course)
- [Send your first email](/docs/get-started/send-your-first-email) (docs)

[Get an implementation brief](/learn/workspace?topic=api-basics)
