Skip to main content
POST
Submit a product review

Authorizations

Authorization
string
header
required

API Key Authentication

Use your API key in the Authorization header:

Key Types:

Secret Keys (Server-Side Only):

  • Format: tybrite_sk_live_* (production) or tybrite_sk_test_* (sandbox)
  • Full read/write access to all endpoints
  • ⚠️ NEVER expose in client-side code or public repositories
  • Required for: write operations, authentication, payment verification, AI recommendations

Publishable Keys (Client-Safe):

  • Format: tybrite_pk_live_* (production) or tybrite_pk_test_* (sandbox)
  • Read-only access (GET requests only, plus POST semantic search)
  • ✅ Safe for client-side JavaScript, mobile apps, and public code
  • Allowed for: browsing products, search, CMS content, pricing queries

Endpoint-Specific Requirements:

  • Authentication endpoints (/v1/auth/*): Secret key required
  • Payment verification (POST /v1/payments/verify): Secret key required
  • AI Recommendations (POST /v1/recommendations): Secret key required
  • Semantic Search (POST /v1/search): Both key types allowed (read-only operation)
  • All write operations: Secret key required
  • All read operations: Both key types allowed

Using a publishable key for restricted operations returns 403 Forbidden.

Headers

x-auth-token
string

Customer session JWT from POST /v1/auth/login or POST /v1/auth/verify-otp. Provide exactly one of x-auth-token, x-external-auth, or x-idp-token.

x-external-auth
string

Bring-your-own-auth assertion for stores that manage authentication in an external identity provider (Auth0, Clerk, Cognito, Firebase, NextAuth, SSO). Provide exactly one of x-auth-token, x-external-auth, or x-idp-token.

Format: <base64url(JSON)>.<base64url(HMAC-SHA256(JSON))> where the JSON is { "external_id": "...", "iat": <unix>, "exp": <unix> } and the HMAC is keyed on the store's signing secret. Claim lifetime capped at 300 seconds.

x-idp-token
string

A raw token from the store's own identity provider (e.g. a Firebase ID token). Galactic Core forwards it to the store's configured Auth verifier, which validates it and returns the identity.

Verification is fail-closed: if the verifier rejects the token or is unreachable, the request is unauthenticated (401). Requires an Auth verifier to be configured for the store. Provide exactly one of x-auth-token, x-external-auth, or x-idp-token.

Body

application/json
product_id
string<uuid>
required

Product being reviewed.

Example:

"7d425c0a-50e7-4e39-af79-6f7945f9dfa8"

rating
integer
required

Star rating from 1 (lowest) to 5 (highest).

Required range: 1 <= x <= 5
Example:

5

variant_id
string<uuid>

Optional — specific variant being reviewed.

Example:

"9a47e047-b1b6-4c35-9617-820629e22e04"

order_id
string<uuid>

Optional — the order this review relates to. Providing a valid order that belongs to the authenticated customer marks the review as verified_purchase: true.

Example:

"770a0622-0401-63f6-c938-557766551111"

title
string

Optional short headline for the review.

Example:

"Absolutely love it"

body
string

Optional full review text.

Example:

"Best purchase I've made this year. Quality is outstanding."

media_urls
string<uri>[]

Optional array of image or video URLs attached to the review.

Example:

Response

Review submitted and pending moderation

review
object
required