API-Dokumentation

Die Rexiew API ermöglicht es dir, Dinge zu durchsuchen, Reviews zu lesen, KI-Reviews zu generieren, menschliche Reviews einzureichen und Review-Widgets auf jeder Website einzubinden. Alle Antworten sind im JSON-Format.

Basis-URL

https://rexiew.com/api

Alle Endpunkte sind relativ zu dieser Basis-URL.

Authentifizierung

Public endpoints (reading reviews, searching, widgets) require no authentication. Endpoints that create or modify data require a JWT Bearer token.

To get a token, call POST /auth/login with your email and password. Include the token in subsequent requests:

Authorization: Bearer <access_token>

Access tokens expire after 1 hour. Use POST /auth/refresh with your refresh token to get a new one.

Fehlerbehandlung

Errors return a JSON object with an error field and an appropriate HTTP status code.

{
  "error": "Invalid model_id"
}
CodeMeaning
400Bad request / validation error
401Unauthorized / invalid token
402Insufficient credits
403Forbidden / tier too low
404Resource not found
409Conflict (duplicate)
410Model retired
429Rate limit exceeded
502Upstream LLM error

Öffentliche Endpunkte

Keine Authentifizierung erforderlich.

GET /health

Überprüfen Sie, ob die API läuft.

Antwort

{
  "status": "ok",
  "service": "Rexiew API",
  "version": "1.0.0"
}
GET /models

Listet alle LLM-Modelle mit Tier-Anforderungen und aktivem Status auf. Bei Authentifizierung wird angezeigt, ob jedes Modell für Ihre Abonnement-Stufe verfügbar ist.

Antwort

{
  "models": [
    {
      "id": 19,
      "slug": "claude-opus-4-6",
      "name": "Claude Opus 4.6",
      "description": "The most powerful Claude LLM model.",
      "provider": "anthropic",
      "cost": 1,
      "active": true
    }
  ],
  "user_tier": "free"
}
GET /things/{id}

Rufen Sie die Details eines Produkts und alle seine Bewertungen ab.

Antwort

{
  "thing": {
    "id": 42,
    "name": "iPhone 16 Pro",
    "type": "product",
    "review_count": 7,
    "avg_rating": 4.3,
    "created_at": "2025-06-01 12:00:00"
  },
  "reviews": [
    {
      "review_id": 101,
      "model_id": 19,
      "llm_name": "Claude Opus 4.6",
      "rating": 4.5,
      "review": "The iPhone 16 Pro represents...",
      "created_at": "2025-06-02 09:30:00"
    }
  ]
}
GET /review/{id}

Erhalten Sie vollständige Bewertungsdetails einschließlich Vor- und Nachteile, Alternativen, dimensionale Bewertungen und On-Chain-Verifizierungsstatus.

Antwort

{
  "review_id": 101,
  "thing_id": 42,
  "thing_name": "iPhone 16 Pro",
  "thing_type": "product",
  "model_id": 19,
  "llm_name": "Claude Opus 4.6",
  "reviewer_type": "ai",
  "review_aspect": "general",
  "rating": 4.5,
  "review": "The iPhone 16 Pro represents...",
  "pros": ["Excellent camera system", "Fast A18 chip"],
  "cons": ["High price", "Heavy"],
  "alternatives": [
    {"name": "Samsung Galaxy S25 Ultra", "difference": "More customizable with S Pen"}
  ],
  "dimensions": [
    {"slug": "build-quality", "label": "Build Quality", "score": 4.8}
  ],
  "blockinity_verified": false,
  "provifier_tx_digest": null,
  "created_at": "2025-06-02 09:30:00"
}
GET /review/{id}/verify

Verifiziere den On-Chain-Nachweis einer signierten menschlichen Bewertung über Provifier.

Antwort

{
  "verified": true,
  "tx_digest": "ABC123...",
  "chain": "sui",
  "data_hash": "sha256...",
  "explorer_url": "https://suiscan.xyz/mainnet/tx/ABC123..."
}

Authentifizierte Endpunkte

These endpoints require a JWT Bearer token in the Authorization header.

POST /auth/login

Authentifizieren Sie sich mit E-Mail und Passwort. Gibt JWT-Zugriffs- und Aktualisierungstoken zurück.

Anforderungsteil

{
  "email": "user@example.com",
  "password": "yourpassword"
}

Antwort

{
  "access_token": "eyJ...",
  "refresh_token": "eyJ...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "user": {
    "id": 1,
    "email": "user@example.com",
    "role": "user",
    "credit_balance": 500
  }
}
POST /auth/register

Erstellen Sie ein neues Konto. Das Passwort muss mindestens 10 Zeichen lang sein.

Anforderungsteil

{
  "email": "newuser@example.com",
  "password": "securepassword"
}

Response 201 Created

{
  "access_token": "eyJ...",
  "refresh_token": "eyJ...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "user": {
    "id": 2,
    "email": "newuser@example.com",
    "role": "user",
    "credit_balance": 0
  }
}
POST /auth/refresh

Tauschen Sie ein gültiges Refresh-Token gegen neue Access- und Refresh-Tokens aus.

Anforderungsteil

{
  "refresh_token": "eyJ..."
}

Antwort

{
  "access_token": "eyJ...",
  "refresh_token": "eyJ...",
  "token_type": "Bearer",
  "expires_in": 3600
}
POST /review/resolve Auth

Vorbereitungsschritt vor der Erstellung einer Bewertung. Löst die Benutzereingabe zu einem vorhandenen Eintrag in der Datenbank auf oder schlägt die Erstellung eines neuen vor. Verwendet intern ein KI-Modell zum Abgleichen.

Anforderungsteil

{
  "thing_name": "iPhone 16 Pro",
  "thing_type": "product"
}

Antwort

{
  "resolved": {
    "match": true,
    "thing_id": 42,
    "thing_name": "iPhone 16 Pro",
    "thing_type": "product",
    "thing_slug": "iphone-16-pro",
    "review_count": 7,
    "avg_rating": 4.3
  },
  "candidates": [...],
  "suggestion": {
    "canonical_name": "iPhone 16 Pro",
    "thing_type": "product",
    "description": "Apple's premium smartphone...",
    "tags": ["smartphone", "apple", "premium"],
    "category": "smartphones"
  },
  "dimensions": [
    {"dimension_slug": "build-quality", "dimension_label": "Build Quality"}
  ],
  "aspects": [
    {"slug": "general", "label": "General", "review_count": 5},
    {"slug": "affiliate-program", "label": "Affiliate Program", "review_count": 2},
    {"slug": "pricing", "label": "Pricing", "review_count": 0}
  ],
  "cost_usd": 0.002,
  "elapsed_ms": 1200
}
POST /review/generate Auth

Generate an AI review for a thing. Costs 1 credit per review. Active models: Claude Opus 4.6 (ID 19) and GPT 5.4 (ID 25).

Anforderungsteil

{
  "thing_name": "iPhone 16 Pro",
  "thing_type": "product",
  "model_id": 19,
  "thing_id": 42,
  "thing_description": "Apple's premium smartphone"
}
FieldTypeRequiredDescription
thing_namestringYes*Name of the thing to review (max 255 chars)
thing_typestringNoproduct, service, place, brand, or other
model_idintYes19 (Opus 4.6) or 25 (GPT 5.4)
thing_idintNoIf provided, skips resolver and uses this thing directly
thing_descriptionstringNoDescription override for new things (max 255 chars)
review_aspectstringNoAspect to focus on (e.g. "affiliate-program", "pricing"). Defaults to "general"

* Required if thing_id is not provided.

Response 201 Created

{
  "review_id": 108,
  "thing_id": 42,
  "thing_name": "iPhone 16 Pro",
  "review_aspect": "general",
  "rating": 4.5,
  "review": "The iPhone 16 Pro represents...",
  "pros": ["Excellent camera", "Fast chip"],
  "cons": ["Expensive", "Heavy"],
  "alternatives": [
    {"name": "Samsung Galaxy S25 Ultra", "difference": "More customizable"}
  ],
  "llm_name": "Claude Opus 4.6",
  "llm_provider": "anthropic",
  "dimensions": [
    {"slug": "build-quality", "label": "Build Quality", "score": 4.8}
  ],
  "credits_spent": 1,
  "tokens": {"input_tokens": 850, "output_tokens": 620},
  "cost_usd": 0.059,
  "elapsed_ms": 8500
}
POST /review/human Auth

Reichen Sie eine von Menschen geschriebene Bewertung ein. Auf 1 pro Element pro Benutzer pro Tag begrenzt. Geben Sie optional eine Wallet-Adresse für Blockinity-Verifizierung an.

Anforderungsteil

{
  "thing_id": 42,
  "rating_score": 4.5,
  "review_text": "I've used the iPhone 16 Pro for 3 months now...",
  "review_aspect": "general",
  "dimension_scores": {
    "build-quality": 4.8,
    "value-for-money": 3.5
  },
  "wallet_address": "0x..."
}

Response 201 Created

{
  "review_id": 109,
  "thing_id": 42,
  "thing_name": "iPhone 16 Pro",
  "reviewer_type": "human",
  "review_aspect": "general",
  "rating": 4.5,
  "review": "I've used the iPhone 16 Pro for 3 months now...",
  "dimensions": [
    {"slug": "build-quality", "label": "Build Quality", "score": 4.8}
  ],
  "blockinity_verified": true,
  "canonical_data": "{...}"
}
PATCH /review/{id}/sign Auth

Hängen Sie Provifier-On-Chain-Signaturdaten an eine menschliche Bewertung an, die Sie besitzen. Macht die Bewertung kryptografisch verifizierbar.

Anforderungsteil

{
  "tx_digest": "ABC123...",
  "data_hash": "sha256...",
  "chain": "sui"
}

Antwort

{
  "review_id": 109,
  "signed": true,
  "tx_digest": "ABC123...",
  "chain": "sui",
  "data_hash": "sha256..."
}
GET /review/history?page=1&limit=20 Auth

Rufen Sie den Bewertungsverlauf des authentifizierten Benutzers ab, paginiert.

Parameter

ParamTypeDefaultDescription
pageint1Page number
limitint20Results per page (max 50)

Antwort

{
  "reviews": [...],
  "total": 45,
  "page": 1,
  "limit": 20,
  "pages": 3
}
GET /user/profile Auth

Rufen Sie das Profil des authentifizierten Benutzers, den Kontoguthaben und die Abonnementinformationen ab.

Antwort

{
  "user": {
    "id": 1,
    "email": "user@example.com",
    "role": "user",
    "credit_balance": 500,
    "member_since": "2025-01-15 10:00:00",
    "total_reviews": 23,
    "wallet_address": null
  }
}

Widget-Endpunkte

Öffentlich, keine Authentifizierung erforderlich. Antworten werden 5 Minuten lang zwischengespeichert. Verwenden Sie diese, um Rexiew-Bewertungsdaten auf externen Websites einzubetten.

GET /widget/thing/{id}/badge

Leichte Badge-Daten: durchschnittliche Bewertung und Bewertungsanzahl. Ideal für die Inline-Anzeige.

Antwort

{
  "thing_id": 42,
  "name": "iPhone 16 Pro",
  "avg_rating": 4.3,
  "review_count": 7,
  "branding": {
    "text": "Powered by Rexiew",
    "url": "https://rexiew.com/thing/iphone-16-pro",
    "logo": "https://rexiew.com/img/favicon/favicon-32x32.png"
  }
}
GET /widget/thing/{id}/summary

Zusammenfassung mit den Top 3 Review-Ausschnitten und durchschnittlichen dimensionalen Scores. Ideal für Seitenleisten-Widgets.

Antwort

{
  "thing_id": 42,
  "name": "iPhone 16 Pro",
  "type": "product",
  "avg_rating": 4.3,
  "review_count": 7,
  "dimensions": [
    {"label": "Build Quality", "score": 4.8}
  ],
  "snippets": [
    {
      "review_id": 101,
      "llm_name": "Claude Opus 4.6",
      "rating": 4.5,
      "snippet": "The iPhone 16 Pro represents a significant...",
      "reviewer_type": "ai",
      "verified": false,
      "on_chain": false,
      "created_at": "2025-06-02 09:30:00"
    }
  ],
  "branding": {...}
}
GET /widget/thing/{id}

Vollständige Widget-Nutzlast: alle Bewertungen mit Vorteilen, Nachteilen, Alternativen, Dimensionen, Abzeichen und Besitzerantworten.

Antwort

{
  "thing_id": 42,
  "name": "iPhone 16 Pro",
  "type": "product",
  "website": "https://apple.com/iphone-16-pro",
  "avg_rating": 4.3,
  "review_count": 7,
  "dimensions": [...],
  "reviews": [
    {
      "review_id": 101,
      "model_id": 19,
      "llm_name": "Claude Opus 4.6",
      "rating": 4.5,
      "review": "...",
      "pros": ["..."],
      "cons": ["..."],
      "alternatives": [...],
      "reviewer_type": "ai",
      "badges": ["ai"],
      "dimensions": [
        {"label": "Build Quality", "score": 4.8}
      ],
      "created_at": "2025-06-02 09:30:00"
    }
  ],
  "branding": {...}
}
GET /widget/lookup?source={source}&external_id={id}

Suchen Sie etwas anhand einer externen Referenz. Nützlich für Integrationen, die ihre eigenen IDs Rexiew Thing IDs zuordnen.

Parameter

ParamTypeDescription
sourcestringIntegration source (e.g. "d1rectory")
external_idstringExternal ID in the source system

Antwort

{
  "thing_id": 42
}

Smartlink-Einbettungsleitfaden

Fügen Sie mit einem einzigen Script-Tag und Datenattributen schwebbare Rezensionskarten zu jeder Website hinzu. Kein API-Schlüssel erforderlich.

1. Skript hinzufügen

Include the smartlink widget script on your page (ideally before </body>):

<script src="https://rexiew.com/widget/smartlink.js" defer></script>

2. Links markieren

Use data-rexiew (slug) or data-rexiew-q (name) on any element:

<!-- By slug (recommended, stable) -->
<a data-rexiew="iphone-16-pro">iPhone 16 Pro</a>

<!-- By name (flexible, fuzzy matching) -->
<a data-rexiew-q="Tesla Model 3">Tesla Model 3</a>

3. Fertig

Das Skript findet automatisch alle gekennzeichneten Elemente, ruft Review-Daten von der Rexiew API ab und ersetzt jeden Link durch ein Inline-Badge. Bei Hover (Desktop) oder Klick (Mobile) wird eine Karte angezeigt mit:

  • Name und Typ des Objekts
  • Sternbewertung und Punktzahl
  • Bewertungsanzahl
  • Beschreibung
  • Neueste KI-Bewertungsausschnitt
  • Link zu vollständigen Bewertungen auf Rexiew

Vollständiges Beispiel

<!DOCTYPE html>
<html>
<body>
  <p>
    We compared the <a data-rexiew="iphone-16-pro">iPhone 16 Pro</a>
    against the <a data-rexiew-q="Samsung Galaxy S25 Ultra">Galaxy S25 Ultra</a>
    and found both to be excellent choices.
  </p>
  <script src="https://rexiew.com/widget/smartlink.js" defer></script>
</body>
</html>

SPA-Unterstützung

For single-page apps that add content dynamically, call RexiewSmartlink.init() after inserting new elements:

// After dynamically adding data-rexiew elements
RexiewSmartlink.init();

Schnellstartbeispiel

Generieren Sie Ihre erste KI-Bewertung in 3 API-Aufrufen:

# 1. Login
curl -X POST https://rexiew.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","password":"yourpassword"}'

# 2. Resolve the thing (optional pre-step)
curl -X POST https://rexiew.com/api/review/resolve \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"thing_name":"iPhone 16 Pro","thing_type":"product"}'

# 3. Generate review with Claude Opus 4.6
curl -X POST https://rexiew.com/api/review/generate \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"thing_name":"iPhone 16 Pro","thing_type":"product","model_id":19}'