# Choosing Between the Listbuilding API and the Management API

This guide explains when to use the **Listbuilding API** and when to use the **Management API**.

The short version is:

- Use the **Listbuilding API** for a **fixed opt-in flow** tied to a specific list-building process.
- Use the **Management API** for **event-driven integrations** that need to read or change contacts, tags, fields, or opt-in process data in a more flexible way.


## Choose the Right API

Answer these questions in order:

1. **Does the integration only send contacts into one predefined opt-in flow?**
  - **Yes:** Continue with the next question.
  - **No:** Use the **Management API**.
2. **Does one Listbuilding API key control that flow?**
  - **Yes:** Use the **Listbuilding API**.
  - **No:** Re-check the design. A fixed opt-in flow normally belongs to the Listbuilding API; a flexible or configurable flow needs the **Management API**.
3. **Must the integration react to events, inspect existing data, or make runtime decisions?**
  - **Yes:** Use the **Management API**.
  - **No:** The **Listbuilding API** is usually the right fit.


## Use the Listbuilding API When

Choose the **Listbuilding API** if your integration is essentially a controlled signup flow.

Typical fit:

- A website form sends leads into one predefined opt-in process
- A funnel tool pushes contacts into one fixed subscription flow
- An integration only needs API-key-based `signin`, `signout`, or `signoff`
- The business logic is intentionally limited to a specific acquisition path


Key characteristics:

- Authentication is based on an **API key**
- The API key is linked to a **list-building process**
- The flow is **predefined**, not dynamically assembled at runtime
- It is well suited for simple external lead capture scenarios


#### Relevant Actions

| Action | Description |
|  --- | --- |
| [Signin](/listbuilding-api#operation/api.subscriber.signin) | Creates or updates a contact and starts the predefined opt-in flow linked to the API key. |
| [Signout](/listbuilding-api#operation/api.subscriber.signout) | Removes the tag associated with the API key from a contact. |
| [Signoff](/listbuilding-api#operation/api.subscriber.signoff) | Unsubscribes a contact through the API-key-driven flow. |


## Use the Management API When

Choose the **Management API** if your integration is driven by events, decisions, or ongoing data synchronization.

Typical fit:

- A workflow reacts to purchases, webinar attendance, CRM changes, or support events
- You need to create, update, search, tag, untag, or unsubscribe contacts dynamically
- You need to inspect tags, fields, contacts, or opt-in processes before deciding what to do
- You are building an iPaaS, SaaS, MCP, automation, or backend integration with flexible runtime behavior


Key characteristics:

- Designed for **event-driven flows**
- Supports broader contact and metadata management
- Works for integrations that need to **read first, then decide**
- Better fit when logic is based on conditions, branching, or multiple KlickTipp objects


#### Contact Actions

| Action | Description |
|  --- | --- |
| [List Contacts](/management-api#operation/api.subscriber.index) | Lists contacts for discovery and synchronization workflows. |
| [Add or Update Contact](/management-api#operation/api.subscriber.create) | Creates a contact or updates the existing contact with the same email address. |
| [Get Contact](/management-api#operation/api.subscriber.retrieve) | Retrieves one contact by ID. |
| [Update Contact](/management-api#operation/api.subscriber.update) | Updates a contact by ID. |
| [Delete Contact](/management-api#operation/api.subscriber.delete) | Deletes a contact by ID. |
| [Search Contact ID](/management-api#operation/api.subscriber.search) | Finds a contact ID when an integration needs to look up an existing contact. |
| [Search Tagged Contacts](/management-api#operation/api.subscriber.tagged) | Finds contacts by tag-related criteria. |
| [Unsubscribe Contact](/management-api#operation/api.subscriber.unsubscribe) | Unsubscribes a contact and prevents further communication. |


#### Contact Tagging Actions

| Action | Description |
|  --- | --- |
| [Tag Contact](/management-api#operation/api.subscriber.tag) | Adds one or more tags to a contact. |
| [Untag Contact](/management-api#operation/api.subscriber.untag) | Removes one or more tags from a contact. |


#### Data Field Actions

| Action | Description |
|  --- | --- |
| [List Data Fields](/management-api#operation/api.customfield.index) | Lists data-field IDs and names for configurable mappings. |


#### Opt-in Process Actions

| Action | Description |
|  --- | --- |
| [List Opt-in Processes](/management-api#operation/api.optin.index) | Lists available opt-in processes. |
| [Get Opt-in Process](/management-api#operation/api.optin.retrieve) | Retrieves one opt-in process by ID. |
| [Search Redirect URL](/management-api#operation/api.optin.redirect) | Retrieves the redirect URL for an opt-in process. |


#### Tag Actions

| Action | Description |
|  --- | --- |
| [List Tags](/management-api#operation/api.tag.index) | Lists tag IDs and names. |
| [Create Tag](/management-api#operation/api.tag.create) | Creates a manual tag. |
| [Get Tag](/management-api#operation/api.tag.retrieve) | Retrieves one tag by ID. |
| [Update Tag](/management-api#operation/api.tag.update) | Updates a tag by ID. |
| [Delete Tag](/management-api#operation/api.tag.delete) | Deletes a tag by ID. |


## Side-by-Side Comparison

| Question | Listbuilding API | Management API |
|  --- | --- | --- |
| Main purpose | Fixed opt-in flow | Event-driven contact and metadata management |
| Best for | Forms, funnels, simple lead capture | Automations, sync jobs, backend logic, iPaaS, AI and MCP tools |
| Authentication style | API key | Session auth or partner auth, depending on integration mode |
| Runtime flexibility | Low | High |
| Reads existing KlickTipp data before acting | Usually no | Yes |
| Works well for branching logic | No | Yes |
| Contact management beyond one intake flow | Limited | Yes |


## Do Not Use the Listbuilding API When

Do **not** use the **Listbuilding API** if:

- You need to decide at runtime which tags, fields, or actions to apply
- You need to look up existing contacts before acting
- You need to manage tags or fields outside the fixed opt-in flow
- You need a general-purpose integration for Make, Zapier, n8n, MCP, or custom backend services
- You need to support multiple business events such as purchase, cancellation, enrichment, or support-state changes


In these cases, use the **Management API** instead.

## Do Not Use the Management API When

Do **not** use the **Management API** if:

- Your only goal is to send a lead into one predefined list-building flow
- You intentionally want a narrow API-key-based signup integration
- Your integration is basically a form submission with a fixed opt-in path and no broader contact-management logic


In these cases, the **Listbuilding API** is usually the cleaner choice.

## Practical Examples

#### Example 1: Newsletter signup form

- **Scenario:** A landing-page form sends a contact into one predefined double opt-in process.
- **Recommendation:** Use the **Listbuilding API**.
- **Why:** The flow is fixed, API-key-based, and focused on lead capture.


#### Example 2: Purchase automation

- **Scenario:** After a payment, the integration finds the contact, updates fields, adds tags, and may choose a follow-up path based on product or amount.
- **Recommendation:** Use the **Management API**.
- **Why:** This is event-driven logic with branching and dynamic contact management.


#### Example 3: CRM sync

- **Scenario:** A CRM pushes updates into KlickTipp whenever account data changes.
- **Recommendation:** Use the **Management API**.
- **Why:** This is ongoing synchronization and contact management, not a fixed opt-in flow.


#### Example 4: Lead magnet form inside a funnel builder

- **Scenario:** A simple external tool registers a lead for one specific opt-in process.
- **Recommendation:** Use the **Listbuilding API**.
- **Why:** The integration only needs the predefined signup path.


## Recommended Rule of Thumb

Use this simple rule:

- If the integration starts with **"put this lead into this predefined opt-in flow"**, use the **Listbuilding API**.
- If the integration starts with **"when this event happens, inspect data and decide what to do"**, use the **Management API**.


## Related Notes

- The Listbuilding API centers on the API-key functions `signin`, `signout`, and `signoff`.
- The Management API covers the broader operational surface for contacts, tags, fields, and opt-in-process inspection.
- If an integration may grow from a simple signup flow into broader event-driven automation, it is usually better to plan around the **Management API** from the start.