recommendation engine api // decisioning infrastructure

Personalized recommendations,
delivered as one API call.

The ranking layer between candidate generation and the recommendations a user sees. Gortex scores every item and fills sponsored slots in one call, so your team ships product instead of running a recommender.

# 01 / the problem

Building a recommendation engine in-house is a standing cost, not a one-time build.

A recommender is never done. Candidate generation, ranking models, feature pipelines, and online serving all drift as catalogs turn over and taste shifts. The team that builds it keeps rebuilding it, on the request path, forever.

01 a permanent ml org
Candidate generation, ranking models, feature pipelines, and an online serving stack that has to stay under budget at peak load.
02 latency on every render
Recommendations run on the request path. Every added signal is latency you pay on every "for you" load, for every user.
03 monetization bolted on later
Sponsored and related-item slots get built as a second system, then reconciled with organic recommendations by hand, release after release.
04 explainability debt
When a recommendation is questioned, there is often no record of why an item surfaced for that user.
# 02 / how it works

One endpoint ranks recommendations and places sponsored slots in the same response.

You send a recipient, a surface, and the candidate set you already retrieved. Gortex returns the personalized order and the sponsored placements together, inside one sub-200ms p99 budget, with a decision id you can audit later.

01
your retrieval
you gather the candidates: products, videos, articles, or profiles.
02
gortex decides
rank the candidates for this user and resolve sponsored slots against that order, in one call.
03
your surface
render the "for you" rail with sponsored slots already placed and priced.
01 you keep retrieval
Gortex ranks the candidates you bring. No data migration, no re-platforming.
02 ranking and monetization in one call
Personalized order and sponsored slots resolve against each other, so a paid item only takes a slot when the placement fits.
03 every decision is traceable
Each response carries a decision id and a trace id. The reason an item surfaced is recorded, not reconstructed.
04 seven typed sdks
Generated from one OpenAPI 3.1 spec, so contract drift across languages is mechanically impossible.
# 03 / the call

One request. A personalized set and its sponsored slots.

POST /v1/decide
200 OK · 74ms
// Rank a "for you" rail and fill its sponsored slots.
$ curl api.gortex.ai/v1/decide \
  -H "Authorization: Bearer $GORTEX_KEY" \
  -d '{
    "recipient": { "id": "u_8120" },
    "context":   { "surface": "recommendations" },
    "items":     [ /* 200 candidate items */ ]
  }'

{
  "ranked":      [ /* ordered item IDs */ ],
  "sponsored":   [{ "slot": 3, "price": 0.42 }],
  "decision_id": "d_01HXZ3M",
  "trace_id":    "t_01HXZ3N"
}
# 04 / questions

Recommendations, answered plainly.

What is a recommendation engine API?

An endpoint that takes a set of candidate items and returns the personalized set a given user should see, ranked for relevance. Gortex places sponsored slots in the same response, so recommendations and monetization resolve together.

Do I need to move my data to use Gortex?

No. You keep candidate generation and send the items you already retrieved. Gortex ranks them into personalized recommendations and returns the order plus sponsored slots. There is no re-platforming.

How fast is a recommendation call?

Ranking and sponsored placement resolve inside one sub-200ms p99 budget, on the request path, so you can call it on every 'for you' render or product view.

# 05 / start

See a recommendation decision, live.

The private beta is by invitation. Tell us the surface you recommend on and we will get you a key.