Zum Inhalt

Subscriber

Subscriber sind die zentrale Entität in SubscribeFlow. Jeder Subscriber hat eine E-Mail-Adresse, einen Status, optionale Metadaten und beliebig viele Tags.

Subscriber erstellen

subscriber = await client.subscribers.create(
    email="alice@example.com",
    tags=["newsletter", "product-updates"],
    metadata={"source": "website", "plan": "starter"},
)
print(f"Erstellt: {subscriber.id}")
const subscriber = await client.subscribers.create({
  email: 'alice@example.com',
  tags: ['newsletter', 'product-updates'],
  metadata: { source: 'website', plan: 'starter' },
});

console.log('Erstellt:', subscriber.id);
curl -X POST https://api.subscribeflow.net/api/v1/subscribers \
  -H "X-API-Key: sf_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "email": "alice@example.com",
    "tags": ["newsletter", "product-updates"],
    "metadata": {"source": "website", "plan": "starter"}
  }'

Info

Wenn Sie Tag-Namen übergeben, die noch nicht existieren, erstellt SubscribeFlow diese automatisch.

Subscriber abrufen

Rufen Sie einen Subscriber per ID oder E-Mail-Adresse ab.

# Per ID
subscriber = await client.subscribers.get("subscriber-id")

# Per E-Mail
subscriber = await client.subscribers.get_by_email("alice@example.com")
// Per ID
const subscriber = await client.subscribers.get('subscriber-id');

// Per E-Mail
const subscriber = await client.subscribers.getByEmail('alice@example.com');
# Per ID
curl https://api.subscribeflow.net/api/v1/subscribers/SUBSCRIBER_ID \
  -H "X-API-Key: sf_live_..."

# Per E-Mail
curl "https://api.subscribeflow.net/api/v1/subscribers/by-email?email=alice@example.com" \
  -H "X-API-Key: sf_live_..."

Subscriber auflisten mit Pagination

SubscribeFlow verwendet Cursor-basierte Pagination. Jede Listenantwort enthält einen next_cursor-Wert. Übergeben Sie ihn an die nächste Anfrage, um die folgende Seite abzurufen.

result = await client.subscribers.list(limit=50, status="active")
for subscriber in result:
    print(subscriber.email)

# Naechste Seite abrufen
while result.next_cursor:
    result = await client.subscribers.list(
        cursor=result.next_cursor, limit=50,
    )
    for subscriber in result:
        print(subscriber.email)
let { items, cursor } = await client.subscribers.list({
  limit: 50,
  status: 'active',
});

for (const subscriber of items) {
  console.log(subscriber.email);
}

// Naechste Seite abrufen
while (cursor) {
  const result = await client.subscribers.list({ cursor, limit: 50 });
  items = result.items;
  cursor = result.cursor;
  for (const subscriber of items) {
    console.log(subscriber.email);
  }
}
# Erste Seite
curl "https://api.subscribeflow.net/api/v1/subscribers?limit=50&status=active" \
  -H "X-API-Key: sf_live_..."

# Naechste Seite (Cursor-Wert aus der vorherigen Antwort verwenden)
curl "https://api.subscribeflow.net/api/v1/subscribers?limit=50&cursor=CURSOR_VALUE" \
  -H "X-API-Key: sf_live_..."

Subscriber aktualisieren

Sie können E-Mail-Adresse, Status oder Metadaten eines bestehenden Subscribers ändern.

updated = await client.subscribers.update(
    "subscriber-id",
    metadata={"plan": "professional"},
)
const updated = await client.subscribers.update('subscriber-id', {
  metadata: { plan: 'professional' },
});
curl -X PATCH https://api.subscribeflow.net/api/v1/subscribers/SUBSCRIBER_ID \
  -H "X-API-Key: sf_live_..." \
  -H "Content-Type: application/json" \
  -d '{"metadata": {"plan": "professional"}}'

Subscriber löschen

Das Löschen eines Subscribers entfernt alle zugehörigen Daten unwiderruflich. Dies ist der empfohlene Weg, um DSGVO/DSG-Löschanfragen zu erfüllen.

await client.subscribers.delete("subscriber-id")
await client.subscribers.delete('subscriber-id');
curl -X DELETE https://api.subscribeflow.net/api/v1/subscribers/SUBSCRIBER_ID \
  -H "X-API-Key: sf_live_..."

Warning

Das Löschen ist unwiderruflich. Alle Subscriber-Daten, Tag-Zuordnungen und Ereignisverläufe werden dauerhaft entfernt.

Tags verwalten

Fügen Sie Tags hinzu oder entfernen Sie sie, ohne die gesamte Tag-Liste zu ersetzen.

Tags hinzufügen

await client.subscribers.add_tags(
    "subscriber-id",
    tags=["webinar-attendees", "beta-testers"],
)
await client.subscribers.addTags('subscriber-id', {
  tags: ['webinar-attendees', 'beta-testers'],
});
curl -X POST https://api.subscribeflow.net/api/v1/subscribers/SUBSCRIBER_ID/tags \
  -H "X-API-Key: sf_live_..." \
  -H "Content-Type: application/json" \
  -d '{"tags": ["webinar-attendees", "beta-testers"]}'

Tag entfernen

await client.subscribers.remove_tag("subscriber-id", "beta-testers")
await client.subscribers.removeTag('subscriber-id', 'beta-testers');
curl -X DELETE \
  "https://api.subscribeflow.net/api/v1/subscribers/SUBSCRIBER_ID/tags/beta-testers" \
  -H "X-API-Key: sf_live_..."

Hands-On: Ihre ersten 100 Subscriber importieren

Verwenden Sie eine Schleife, um Subscriber aus einer CSV-Datei oder Liste zu erstellen. Das folgende Beispiel liest eine einfache Liste und erstellt jeden Subscriber mit dem Tag imported.

import asyncio
from subscribeflow import SubscribeFlowClient

emails = [
    "alice@example.com",
    "bob@example.com",
    # ... bis zu 100 E-Mails
]

async def main():
    async with SubscribeFlowClient(api_key="sf_live_...") as client:
        for email in emails:
            subscriber = await client.subscribers.create(
                email=email,
                tags=["imported"],
                metadata={"source": "csv-import"},
            )
            print(f"Importiert: {subscriber.email}")

asyncio.run(main())
import { SubscribeFlowClient } from '@subscribeflow/sdk';

const client = new SubscribeFlowClient({
  apiKey: 'sf_live_...',
});

const emails = [
  'alice@example.com',
  'bob@example.com',
  // ... bis zu 100 E-Mails
];

for (const email of emails) {
  const subscriber = await client.subscribers.create({
    email,
    tags: ['imported'],
    metadata: { source: 'csv-import' },
  });
  console.log('Importiert:', subscriber.email);
}
# Schleife über eine Liste von E-Mails
for EMAIL in alice@example.com bob@example.com; do
  curl -X POST https://api.subscribeflow.net/api/v1/subscribers \
    -H "X-API-Key: sf_live_..." \
    -H "Content-Type: application/json" \
    -d "{\"email\": \"$EMAIL\", \"tags\": [\"imported\"], \"metadata\": {\"source\": \"csv-import\"}}"
  echo
done