Aller au contenu
CLUP.life

Développeurs 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.

La documentation technique existe en allemand et en anglais ; dans votre langue, nous affichons la version anglaise.

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.

Adresse de base: https://api.clup.life/api/v1 · OpenAPI 3.1.0 · Version 1.0.0

GET /ext/me

GET/ext/me

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

Domaines: profile:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

StatutSignification
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)

Domaines: directory:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
cursorRequêtedésactivéContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitRequêtedésactivé1–100, default 30
qRequêtedésactivéSearch term (display name; in the directory: name, short name or place)
categoriesRequêtedésactivéTopics, separated with |
typesRequêtedésactivéCLUB, ASSOCIATION, GROUP, MUNICIPALITY (comma-separated)
stateRequêtedésactivéFederal state as a code, e.g. DE-RP (comma-separated)
placeRequêtedésactivéTown or postal code
radiusKmRequêtedésactivéRadius 1–300 (with place)
ageFromRequêtedésactivéOffer for ages from
ageToRequêtedésactivéOffer for ages up to
membersMinRequêtedésactivéMinimum number of members
membersMaxRequêtedésactivéMaximum number of members
foundedFromRequêtedésactivéFounded from (year)
foundedToRequêtedésactivéFounded up to (year)
acceptingRequêtedésactivé1 = accepts new members
sortRequêtedésactivérelevance, distance, name, size or new
StatutSignification
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

Domaines: events:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
fromRequêteactivéStart of the period (ISO 8601, e.g. 2026-11-01T00:00:00Z)
toRequêteactivéEnd of the period (at most 400 days after from)
organizationRequêtedésactivéOnly events of this organization (slug)
StatutSignification
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

Domaines: events:writePremium (clé d’organisation)

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
orgCheminactivéIdentifier (slug) of the organization
{
  "title": "Sommerfest",
  "startsAt": "2026-07-04T14:00:00Z",
  "endsAt": "2026-07-04T20:00:00Z",
  "visibility": "MEMBERS"
}
StatutSignification
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)

Domaines: members:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
orgCheminactivéIdentifier (slug) of the organization
cursorRequêtedésactivéContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitRequêtedésactivé1–100, default 30
qRequêtedésactivéSearch term (display name; in the directory: name, short name or place)
StatutSignification
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

Domaines: posts:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
orgCheminactivéIdentifier (slug) of the organization
cursorRequêtedésactivéContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitRequêtedésactivé1–100, default 30
StatutSignification
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

Domaines: announcements:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
orgCheminactivéIdentifier (slug) of the organization
cursorRequêtedésactivéContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitRequêtedésactivé1–100, default 30
StatutSignification
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

Domaines: announcements:writePremium (clé d’organisation)

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
orgCheminactivéIdentifier (slug) of the organization
{
  "title": "Hallenzeiten ändern sich",
  "body": "Ab Montag trainieren wir in der kleinen Halle."
}
StatutSignification
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

Domaines: tasks:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
orgCheminactivéIdentifier (slug) of the organization
scopeRequêtedésactivéopen (default) or done
cursorRequêtedésactivéContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitRequêtedésactivé1–100, default 30
StatutSignification
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

Domaines: tasks:writePremium (clé d’organisation)

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
orgCheminactivéIdentifier (slug) of the organization
{
  "title": "Zelte prüfen",
  "dueDate": "2026-06-20"
}
StatutSignification
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

Domaines: presse:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
artRequêtedésactivéPRESS_RELEASE or NEWS
langRequêtedésactivéLanguage code, e.g. de, en (falls back to German)
cursorRequêtedésactivéContinuation from nextCursor of the previous response (no page numbers, no OFFSET)
limitRequêtedésactivé1–100, default 30
StatutSignification
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

Domaines: presse:writePremium (clé d’organisation)

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

{
  "kind": "NEWS",
  "slug": "neue-funktion",
  "texts": [
    {
      "locale": "de",
      "title": "Neue Funktion",
      "summary": "Kurzer Anreißer der Meldung.",
      "body": "Text in einfachem Markdown."
    }
  ]
}
StatutSignification
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)

Domaines: presse:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
refCheminactivéSlug or identifier of the post
langRequêtedésactivéLanguage code, e.g. de, en (falls back to German)
StatutSignification
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

Domaines: presse:writePremium (clé d’organisation)

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
idCheminactivéIdentifier of the post
{
  "kind": "NEWS",
  "slug": "neue-funktion",
  "texts": [
    {
      "locale": "de",
      "title": "Neue Funktion",
      "summary": "Kurzer Anreißer der Meldung.",
      "body": "Geänderter Text."
    }
  ]
}
StatutSignification
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

Domaines: presse:writePremium (clé d’organisation)

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
idCheminactivéIdentifier of the post
StatutSignification
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

Domaines: presse:writePremium (clé d’organisation)

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
idCheminactivéIdentifier of the post
{
  "publishAt": "2026-11-01T08:00:00Z"
}
StatutSignification
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

Domaines: exports:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
fromRequêteactivéStart of the period (ISO 8601, e.g. 2026-11-01T00:00:00Z)
toRequêteactivéEnd of the period (at most 400 days after from)
organizationRequêtedésactivéOnly events of this organization (slug)
StatutSignification
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

Domaines: exports:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
fromRequêteactivéStart of the period (ISO 8601, e.g. 2026-11-01T00:00:00Z)
toRequêteactivéEnd of the period (at most 400 days after from)
organizationRequêtedésactivéOnly events of this organization (slug)
StatutSignification
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)

Domaines: exports:read, members:read

Les droits de la personne derrière la clé s’appliquent sans changement ; les organisations étrangères ou invisibles répondent 404.

NomLieuObligationDescription
orgCheminactivéIdentifier (slug) of the organization
StatutSignification
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