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

# Inviting a Partner to Connect Their Pinterest Account via the API

> Send a partner an invite link so they can connect or re-authorize a Pinterest account they own, then find the new profile and deliver to it

Use this guide to deliver audiences and conversion events to a Pinterest account that someone else owns, such as a client or partner. You create an invite link over the API and send it to the person who manages that account. That person opens the link, signs in to Pinterest, and approves Narrative. They don't need a Narrative login. Once they approve, a profile appears in your company with every ad account their Pinterest user can access.

Approval on Pinterest is a one-time step per profile, repeated only to renew the authorization before it expires. Every delivery runs from your API key.

To deliver to your own Pinterest account, you don't need an invite. Follow [Connect your Pinterest account](/guides/connector-apis/pinterest#connect-your-pinterest-account) instead.

Every request in this guide goes to the Pinterest connector with an installation token. Before you start, complete the [prerequisites](/guides/connector-apis/pinterest#prerequisites) and [set up API access](/guides/connector-apis/pinterest#set-up-api-access).

## 1. Create the invite

```bash theme={null}
curl -s -X POST https://pinterest.narrativeconnectors.com/app-invites \
  -H "Authorization: Bearer $INSTALLATION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "app_invite_connect",
    "display_name": "Example Brand",
    "invitee_name": "Example Brand ads team"
  }'
# → 201 {"type": "app_invite_connect", "id": "<INVITE_ID>", "activated_at": null,
#        "app": {"id": 20, "name": "Pinterest Connector", "slug": "pinterest_connector"},
#        "code": "<INVITE_CODE>", "company": {"id": 1234, "name": "Example Company", ...},
#        "display_name": "Example Brand", "installation_id": <INSTALLATION_ID>,
#        "invitee_name": "Example Brand ads team", "status": "pending", "tags": [],
#        "url": "https://pinterest.narrativeconnectors.com/app/invites?code=<INVITE_CODE>", ...}
```

| Field | Meaning |
| - | - |
| `type` | `app_invite_connect` creates a new profile. To renew the authorization on a profile you already have, see [Re-authorize a profile](#re-authorize-a-profile) |
| `display_name` | The name of the profile the invite creates. The invitee sees it on the invite page |
| `invitee_name` | The person or organization receiving the invite. The invitee sees it on the invite page |

Record the invite `id` to track the invite. Anyone who holds the `url` or `code` can complete the invite, so send it only to the person who should connect the account.

## 2. Send the link

Send the `url` from the response to the person who manages the Pinterest account. They open it in a browser, sign in to Pinterest, and approve Narrative.

To preview what the invitee sees, read the invite by its code. This request needs no credential:

```bash theme={null}
curl -s https://pinterest.narrativeconnectors.com/app-invites/codes/{invite_code}
# → {"type": "app_invite_connect", "id": "<INVITE_ID>",
#    "app": {"id": 20, "name": "Pinterest Connector", "slug": "pinterest_connector"},
#    "company": {"id": 1234, "name": "Example Company", ...},
#    "display_name": "Example Brand", "invitee_name": "Example Brand ads team",
#    "status": "pending",
#    "url": "https://pinterest.narrativeconnectors.com/app/invites?code=<INVITE_CODE>"}
```

## 3. Check the invite

```bash theme={null}
curl -s https://pinterest.narrativeconnectors.com/app-invites/{invite_id} \
  -H "Authorization: Bearer $INSTALLATION_TOKEN"
# → {"type": "app_invite_connect", "id": "<INVITE_ID>", "activated_at": null,
#    "display_name": "Example Brand", "status": "pending", ...}
```

When the invitee approves Narrative, `status` changes from `pending` to `active` and `activated_at` records the time. To list every invite on your installation:

```bash theme={null}
curl -s https://pinterest.narrativeconnectors.com/app-invites \
  -H "Authorization: Bearer $INSTALLATION_TOKEN"
# → {"records": [{"type": "app_invite_connect", "id": "<INVITE_ID>",
#    "activated_at": "2026-03-27T20:44:40.331Z", "display_name": "Example Brand",
#    "status": "active", ...}]}
```

## 4. Find the new profile and its ad accounts

Once the invite is `active`, the profile appears in your profile list under the invite's `display_name`, with the invitee's Pinterest user under `user_account`:

```bash theme={null}
curl -s https://pinterest.narrativeconnectors.com/profiles \
  -H "Authorization: Bearer $INSTALLATION_TOKEN"
# → {"records": [{"id": "<PROFILE_ID>", "name": "Example Brand", "status": "enabled",
#    "user_account": {"id": "<PINTEREST_USER_ID>", "business_name": "Example Brand, Inc.",
#                     "username": "examplebrand"},
#    "token_expires_at": "2026-11-17T21:30:42Z", ...}]}

curl -s https://pinterest.narrativeconnectors.com/profiles/{profile_id}/ad-accounts \
  -H "Authorization: Bearer $INSTALLATION_TOKEN"
# → {"ad_accounts": [{"id": "<AD_ACCOUNT_ID>", "name": "Example Brand Advertising"}],
#    "bookmark": null}
```

Record the profile `id` and the ad account `id`. The profile is ready for [audience delivery](/guides/connector-apis/pinterest/audiences-api) and [conversion events](/guides/connector-apis/pinterest/conversion-events-api).

## Re-authorize a profile

A profile's Pinterest authorization lasts until the profile's `token_expires_at`. Renew it before that date to keep deliveries running. The profile keeps its ID and connections, and uses the new Pinterest authorization once it is approved.

To renew a profile on your own Pinterest account, follow [Renew the authorization](/guides/connector-apis/pinterest#renew-the-authorization) instead. When a partner holds the Pinterest login, send them a reconnect invite:

```bash theme={null}
curl -s -X POST https://pinterest.narrativeconnectors.com/app-invites \
  -H "Authorization: Bearer $INSTALLATION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "app_invite_reconnect",
    "profile_id": "<PROFILE_ID>",
    "display_name": "Example Brand",
    "invitee_name": "Example Brand ads team"
  }'
# → 201 {"type": "app_invite_reconnect", "id": "<INVITE_ID>", "activated_at": null,
#        "code": "<INVITE_CODE>", "display_name": "Example Brand",
#        "profile": {"id": "<PROFILE_ID>", "token_expires_at": "2026-11-08T13:25:50Z",
#                    "user_account": {"id": "<PINTEREST_USER_ID>",
#                                     "business_name": "Example Brand, Inc.",
#                                     "username": "examplebrand"}, ...},
#        "status": "pending",
#        "url": "https://pinterest.narrativeconnectors.com/app/invites?code=<INVITE_CODE>", ...}
```

The invite page shows the invitee which Pinterest user the profile uses, so they sign in with that same login. Send the `url` and track the invite the same way as in [steps 2 and 3](#2-send-the-link).

## Withdraw an invite

Delete an invite to stop its link from working:

```bash theme={null}
curl -s -X DELETE https://pinterest.narrativeconnectors.com/app-invites/{invite_id} \
  -H "Authorization: Bearer $INSTALLATION_TOKEN"
# → 204
```

After that, reading the invite by its ID or its code returns `404`.

***

## Related content

<CardGroup cols={2}>
  <Card title="Delivering audiences via the API" icon="users" href="/guides/connector-apis/pinterest/audiences-api">
    Deliver hashed emails to a Pinterest audience
  </Card>

  <Card title="App Invites" icon="envelope-open-text" href="/concepts/apps/app-invites">
    Onboard partners with shareable invitation links
  </Card>

  <Card title="Pinterest Connector" icon="pinterest" href="/reference/connectors/pinterest">
    Supported identifiers, profiles, and invites
  </Card>

  <Card title="API Keys" icon="key" href="/account-settings/api-keys">
    Create and rotate keys for programmatic access
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.