Developers
Add “Sign in with Taste” in 3 lines.
OAuth 2.0 authorization code + PKCE under the hood. Users share only the domains they tick. Solve cold start without collecting a single personal detail.
<script src="https://tasteid.vercel.app/sdk/tasteid.js"></script>
<div data-tasteid-button data-client-id="reelhouse" data-scopes="taste:film_tv" data-callback="onTaste"></div>
<script>onTaste = ({ api }) => api.recommend({ domain: 'film_tv', candidates: myCatalog }).then(console.log)</script>Try it live
Sign in, then call an endpoint.
Scopes
taste:music— Music tastetaste:film_tv— Film & TV tastetaste:dining— Dining tastetaste:brands— Brands tastetaste:books— Books tastetaste:podcasts— Podcasts tastetaste:games— Games tastetaste:travel— Travel tastetaste:summary— Taste summary (archetype & taste DNA)
Endpoints
GET /authorize?client_id&redirect_uri&scope&state&code_challenge&code_challenge_method=S256
POST /api/oauth/token {grant_type:"authorization_code", code, client_id, redirect_uri, code_verifier} → 1h JWT
GET /api/v1/taste Authorization: Bearer … → only the scoped sections
POST /api/v1/recommend {domain, candidates?:[{id,type}], context?:{city}}
→ re-ranks YOUR catalog by the user's taste (or fresh picks), each with a "why"
POST /api/mcp MCP (Streamable HTTP, JSON-RPC) — same tools, Bearer-authorisedEvery call re-checks the grant: revoke in My TasteID and the token returns 401 immediately.
Connect an AI agent over MCP
Obtain a token via the flow above (the console returns one to tok.accessToken), then add TasteID as a remote MCP server. Tools: get_taste_profile, recommend, search_entities, explain.
claude mcp add --transport http tasteid https://tasteid.vercel.app/api/mcp --header "Authorization: Bearer <access_token>"
# or raw JSON-RPC
curl -X POST https://tasteid.vercel.app/api/mcp -H "Authorization: Bearer <access_token>" \
-H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'