Ist ein Antragsteller ein berechtigtes Mitglied?
POST /api/v1/members/eligibility
Fragt, ob ein Antragsteller, der nicht angemeldet sein muss, ein berechtigtes Mitglied der Community des aufrufenden Frontends ist, anhand der Mitgliedsnummer und der Angaben, die er eingegeben hat. Jeder Aufruf ist eine Mitgliedschaftsprüfung im Prüfmodus Berechtigung und wird mit der IP-Adresse des Antragstellers im Prüfprotokoll des Studios festgehalten.
Die Antwort ist nur der Status, nie der Grund: Eine unbekannte Mitgliedsnummer und eine bekannte mit anderen Angaben erhalten denselben Status, dieselben Header und denselben Inhalt. Zu viele fehlgeschlagene Prüfungen für eine Mitgliedsnummer, aus einem Netz von Antragstellern (eine IPv4-Adresse oder ein IPv6-/64) oder bei einem Frontend werden mit 429 abgewiesen.
Authentifizierung
- frontendKey (HTTP-Bearer-Token im Format
ofk_<prefix>_<secret>): Der Frontend-Schlüssel des Frontends, im Studio auf der Seite des Frontends ausgestellt und einmal angezeigt:Authorization: Bearer ofk_…. Bis zu zwei sind gleichzeitig aktiv, sodass ein Schlüssel ohne Unterbrechung gewechselt werden kann.
Parameter
| Name | Ort | Pflicht | Typ | Beschreibung |
|---|---|---|---|---|
X-Applicant-IP | Header | Ja | string (ipv4) oder string (ipv6) | Die IP-Adresse des Antragstellers, dessen Angaben das Backend des Frontends weitergibt: eine IPv4- oder IPv6-Adresse. Die Ratenlimits zählen fehlgeschlagene Prüfungen nach der IPv4-Adresse (eine IPv4-gemappte IPv6-Adresse zählt als diese IPv4-Adresse) oder nach dem /64, in dem eine IPv6-Adresse liegt, da ein Anschluss oft ein ganzes /64 erhält. Ein eigener Header, weil ein Proxy vor dem Studio X-Forwarded-For mit der Adresse des Frontend-Backends überschreiben kann. Beispiele: 203.0.113.7, 2001:db8::7. |
Request-Body
JSON, höchstens 4 KB. Andere Felder werden ignoriert.
Inhaltstyp: application/json, erforderlich
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
memberCode | string | Ja | So, wie der Antragsteller sie eingegeben hat; nicht leer und ohne Steuerzeichen (U+0000 bis U+001F, U+007F) oder ungepaarte Surrogate. Höchstens 255 Zeichen. |
firstName | string | Ja | Der Vorname des Antragstellers, wie er ihn eingegeben hat. Höchstens 255 Zeichen. |
lastName | string | Ja | Der Nachname des Antragstellers, wie er ihn eingegeben hat. Höchstens 255 Zeichen. |
birthDate | string (date) | Ja | JJJJ-MM-TT |
Beispiel: Ein Antragsteller
{
"memberCode": "108900",
"firstName": "Jürgen",
"lastName": "Weiß",
"birthDate": "1962-07-07"
}
Antworten
200
Geprüft. valid: ein berechtigtes Mitglied der Community des Frontends. not_valid: nicht, aus welchem Grund auch immer. unavailable: Ein Register konnte nicht antworten; fragen Sie später erneut.
Inhaltstyp: application/json
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
status | string | Ja | Erlaubte Werte: valid, not_valid, unavailable. |
Beispiel: Ein berechtigtes Mitglied
{
"status": "valid"
}
Beispiel: Kein berechtigtes Mitglied
{
"status": "not_valid"
}
Beispiel: Ein Register konnte nicht antworten
{
"status": "unavailable"
}
400
Ein Inhalt, der kein JSON ist oder bei dem ein Feld fehlt oder ungültig ist, oder ein fehlender oder ungültiger X-Applicant-IP-Header. Welches davon, wird nicht gesagt.
Inhaltstyp: application/json
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
error | string | Ja | Erlaubte Werte: invalid_request, unauthenticated, too_large, rate_limited, unavailable. |
Beispiel: Eine ungültige Anfrage
{
"error": "invalid_request"
}
401
Kein Frontend-Schlüssel, oder einer, der fehlerhaft, unbekannt oder widerrufen ist, oder der Schlüssel eines getrennten Frontends. Jeder Fall erhält dieselbe Antwort.
Header
| Name | Typ | Beschreibung |
|---|---|---|
WWW-Authenticate | "Bearer" |
Inhaltstyp: application/json
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
error | string | Ja | Erlaubte Werte: invalid_request, unauthenticated, too_large, rate_limited, unavailable. |
Beispiel: Nicht authentifiziert
{
"error": "unauthenticated"
}
413
Ein Inhalt über 4 KB.
Inhaltstyp: application/json
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
error | string | Ja | Erlaubte Werte: invalid_request, unauthenticated, too_large, rate_limited, unavailable. |
Beispiel: Zu groß
{
"error": "too_large"
}
429
Zu viele fehlgeschlagene Prüfungen für diese Mitgliedsnummer, aus dem Netz dieses Antragstellers (die IPv4-Adresse oder das /64, in dem eine IPv6-Adresse liegt) oder bei diesem Frontend. Es wurde kein Register gefragt. Es gibt kein Retry-After.
Inhaltstyp: application/json
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
error | string | Ja | Erlaubte Werte: invalid_request, unauthenticated, too_large, rate_limited, unavailable. |
Beispiel: Ratenlimit erreicht
{
"error": "rate_limited"
}
503
Das Studio selbst ist ausgefallen, nicht ein Register (das wäre eine 200 mit unavailable). Versuchen Sie es später erneut; der Schlüssel ist in Ordnung.
Inhaltstyp: application/json
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
error | string | Ja | Erlaubte Werte: invalid_request, unauthenticated, too_large, rate_limited, unavailable. |
Beispiel: Das Studio ist nicht verfügbar
{
"error": "unavailable"
}