İçeriğe geç
CLUP.life

Geliştiriciler API reference

API reference

All routes of the CLUP.life REST API v1 with parameters, responses and examples — generated from the OpenAPI description. Download as JSON and YAML.

Teknik belgeler Almanca ve İngilizce sunulur; dilinizde İngilizce sürümü gösteriyoruz.

This reference is generated from the real OpenAPI description; it cannot drift from the API. A development test fails as soon as a route is missing or the description no longer matches the documentation.

Temel adres: https://api.clup.life/api/v1 · OpenAPI 3.1.0 · Sürüm 1.0.0

GET /ext/me

GET/ext/me

Who am I? Account, scopes of the key, memberships

Alanlar: profile:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/me"

GET /ext/directory/organizations

GET/ext/directory/organizations

Search the club directory (public organizations only)

Alanlar: directory:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
cursorSorgukapalıContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitSorgukapalı1–100, default 30
qSorgukapalıSearch term (display name; in the directory: name, short name or place)
categoriesSorgukapalıTopics, separated with |
typesSorgukapalıCLUB, ASSOCIATION, GROUP, MUNICIPALITY (comma-separated)
stateSorgukapalıFederal state as a code, e.g. DE-RP (comma-separated)
placeSorgukapalıTown or postal code
radiusKmSorgukapalıRadius 1–300 (with place)
ageFromSorgukapalıOffer for ages from
ageToSorgukapalıOffer for ages up to
membersMinSorgukapalıMinimum number of members
membersMaxSorgukapalıMaximum number of members
foundedFromSorgukapalıFounded from (year)
foundedToSorgukapalıFounded up to (year)
acceptingSorgukapalı1 = accepts new members
sortSorgukapalırelevance, distance, name, size or new
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/directory/organizations"

GET /ext/events

GET/ext/events

Events in a period

Alanlar: events:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
fromSorguaçıkStart of the period (ISO 8601, e.g. 2026-11-01T00:00:00Z)
toSorguaçıkEnd of the period (at most 400 days after from)
organizationSorgukapalıOnly events of this organization (slug)
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/events?from=2026-11-01T00:00:00Z&to=2026-12-01T00:00:00Z"

POST /ext/organizations/{org}/events

POST/ext/organizations/{org}/events

Create an event

Alanlar: events:writePremium (kuruluş anahtarı)

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
orgYolaçıkIdentifier (slug) of the organization
{
  "title": "Sommerfest",
  "startsAt": "2026-07-04T14:00:00Z",
  "endsAt": "2026-07-04T20:00:00Z",
  "visibility": "MEMBERS"
}
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -X POST -H "Authorization: Bearer clup_k_…" \
  -H "Content-Type: application/json" \
  -d '{"title":"Sommerfest","startsAt":"2026-07-04T14:00:00Z","endsAt":"2026-07-04T20:00:00Z","visibility":"MEMBERS"}' \
  "https://api.clup.life/api/v1/ext/organizations/mein-verein/events"

GET /ext/organizations/{org}/members

GET/ext/organizations/{org}/members

Member list (only if the person’s role shows it)

Alanlar: members:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
orgYolaçıkIdentifier (slug) of the organization
cursorSorgukapalıContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitSorgukapalı1–100, default 30
qSorgukapalıSearch term (display name; in the directory: name, short name or place)
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/organizations/mein-verein/members"

GET /ext/organizations/{org}/posts

GET/ext/organizations/{org}/posts

Posts

Alanlar: posts:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
orgYolaçıkIdentifier (slug) of the organization
cursorSorgukapalıContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitSorgukapalı1–100, default 30
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/organizations/mein-verein/posts"

GET /ext/organizations/{org}/announcements

GET/ext/organizations/{org}/announcements

Announcements

Alanlar: announcements:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
orgYolaçıkIdentifier (slug) of the organization
cursorSorgukapalıContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitSorgukapalı1–100, default 30
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/organizations/mein-verein/announcements"

POST /ext/organizations/{org}/announcements

POST/ext/organizations/{org}/announcements

Publish an announcement

Alanlar: announcements:writePremium (kuruluş anahtarı)

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
orgYolaçıkIdentifier (slug) of the organization
{
  "title": "Hallenzeiten ändern sich",
  "body": "Ab Montag trainieren wir in der kleinen Halle."
}
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -X POST -H "Authorization: Bearer clup_k_…" \
  -H "Content-Type: application/json" \
  -d '{"title":"Hallenzeiten ändern sich","body":"Ab Montag trainieren wir in der kleinen Halle."}' \
  "https://api.clup.life/api/v1/ext/organizations/mein-verein/announcements"

GET /ext/organizations/{org}/tasks

GET/ext/organizations/{org}/tasks

Tasks

Alanlar: tasks:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
orgYolaçıkIdentifier (slug) of the organization
scopeSorgukapalıopen (default) or done
cursorSorgukapalıContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitSorgukapalı1–100, default 30
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/organizations/mein-verein/tasks"

POST /ext/organizations/{org}/tasks

POST/ext/organizations/{org}/tasks

Create a task

Alanlar: tasks:writePremium (kuruluş anahtarı)

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
orgYolaçıkIdentifier (slug) of the organization
{
  "title": "Zelte prüfen",
  "dueDate": "2026-06-20"
}
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -X POST -H "Authorization: Bearer clup_k_…" \
  -H "Content-Type: application/json" \
  -d '{"title":"Zelte prüfen","dueDate":"2026-06-20"}' \
  "https://api.clup.life/api/v1/ext/organizations/mein-verein/tasks"

GET /ext/presse/posts

GET/ext/presse/posts

Published press releases and news

Alanlar: presse:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
artSorgukapalıPRESS_RELEASE or NEWS
langSorgukapalıLanguage code, e.g. de, en (falls back to German)
cursorSorgukapalıContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitSorgukapalı1–100, default 30
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/presse/posts"

POST /ext/presse/posts

POST/ext/presse/posts

Create a press release or news item as a draft

Alanlar: presse:writePremium (kuruluş anahtarı)

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

{
  "kind": "NEWS",
  "slug": "neue-funktion",
  "texts": [
    {
      "locale": "de",
      "title": "Neue Funktion",
      "summary": "Kurzer Anreißer der Meldung.",
      "body": "Text in einfachem Markdown."
    }
  ]
}
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -X POST -H "Authorization: Bearer clup_k_…" \
  -H "Content-Type: application/json" \
  -d '{"kind":"NEWS","slug":"neue-funktion","texts":[{"locale":"de","title":"Neue Funktion","summary":"Kurzer Anreißer der Meldung.","body":"Text in einfachem Markdown."}]}' \
  "https://api.clup.life/api/v1/ext/presse/posts"

GET /ext/presse/posts/{ref}

GET/ext/presse/posts/{ref}

One post by slug (with presse:write also by id, including drafts)

Alanlar: presse:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
refYolaçıkSlug or identifier of the post
langSorgukapalıLanguage code, e.g. de, en (falls back to German)
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/presse/posts/{ref}"

PUT /ext/presse/posts/{id}

PUT/ext/presse/posts/{id}

Change a post

Alanlar: presse:writePremium (kuruluş anahtarı)

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
idYolaçıkIdentifier of the post
{
  "kind": "NEWS",
  "slug": "neue-funktion",
  "texts": [
    {
      "locale": "de",
      "title": "Neue Funktion",
      "summary": "Kurzer Anreißer der Meldung.",
      "body": "Geänderter Text."
    }
  ]
}
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  -H "Content-Type: application/json" \
  -d '{"kind":"NEWS","slug":"neue-funktion","texts":[{"locale":"de","title":"Neue Funktion","summary":"Kurzer Anreißer der Meldung.","body":"Geänderter Text."}]}' \
  "https://api.clup.life/api/v1/ext/presse/posts/{id}"

POST /ext/presse/posts/{id}/publish

POST/ext/presse/posts/{id}/publish

Publish a post now

Alanlar: presse:writePremium (kuruluş anahtarı)

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
idYolaçıkIdentifier of the post
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -X POST -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/presse/posts/{id}/publish"

POST /ext/presse/posts/{id}/schedule

POST/ext/presse/posts/{id}/schedule

Schedule publication

Alanlar: presse:writePremium (kuruluş anahtarı)

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
idYolaçıkIdentifier of the post
{
  "publishAt": "2026-11-01T08:00:00Z"
}
DurumAnlamı
200Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -X POST -H "Authorization: Bearer clup_k_…" \
  -H "Content-Type: application/json" \
  -d '{"publishAt":"2026-11-01T08:00:00Z"}' \
  "https://api.clup.life/api/v1/ext/presse/posts/{id}/schedule"

GET /ext/exports/events.ics

GET/ext/exports/events.ics

Events as iCal

Alanlar: exports:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
fromSorguaçıkStart of the period (ISO 8601, e.g. 2026-11-01T00:00:00Z)
toSorguaçıkEnd of the period (at most 400 days after from)
organizationSorgukapalıOnly events of this organization (slug)
DurumAnlamı
200 (text/calendar)Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/exports/events.ics?from=2026-11-01T00:00:00Z&to=2026-12-01T00:00:00Z"

GET /ext/exports/events.csv

GET/ext/exports/events.csv

Events as CSV

Alanlar: exports:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
fromSorguaçıkStart of the period (ISO 8601, e.g. 2026-11-01T00:00:00Z)
toSorguaçıkEnd of the period (at most 400 days after from)
organizationSorgukapalıOnly events of this organization (slug)
DurumAnlamı
200 (text/csv)Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/exports/events.csv?from=2026-11-01T00:00:00Z&to=2026-12-01T00:00:00Z"

GET /ext/exports/organizations/{org}/members.csv

GET/ext/exports/organizations/{org}/members.csv

Member list as CSV (leadership only, logged)

Alanlar: exports:read, members:read

Anahtarın arkasındaki kişinin hakları değişmeden geçerlidir; yabancı veya görünmeyen kuruluşlar 404 yanıtı verir.

AdYerYükümlülükAçıklama
orgYolaçıkIdentifier (slug) of the organization
DurumAnlamı
200 (text/csv)Success
401Key invalid, expired or revoked (INVALID_API_KEY)
403Scope missing (INSUFFICIENT_SCOPE), right missing (FORBIDDEN) or Premium required (PREMIUM_REQUIRED)
404Not found — also for organizations the key may not see
429Too many requests (RATE_LIMITED); respect Retry-After
curl -H "Authorization: Bearer clup_k_…" \
  "https://api.clup.life/api/v1/ext/exports/organizations/mein-verein/members.csv"
API reference · CLUP.life