Quickstart

Go from zero to a working API request in a few minutes.

Prerequisites

You need a Vibetracker account and an API key. Create your API key and store it as an environment variable:

bash
export VIBETRACKER_API_KEY="vbt_ak_your_prefix_your_secret"
The plaintext key is only shown once. Copy it before closing the dialog.

Send a request

The minimum payload is model and score.

curl -X POST 'https://vibetracker.app/api/v1/opinions' \
  -H 'Authorization: Bearer $VIBETRACKER_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gpt-4o",
    "score": 1
  }'

Add context

Include optional fields like useCase, interface, toolId, and comment for richer sentiment data. When sending tool context, interface becomes required.

curl -X POST 'https://vibetracker.app/api/v1/opinions' \
  -H 'Authorization: Bearer $VIBETRACKER_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gpt-4o",
    "score": -1,
    "updateOptionalContext": true,
    "useCase": "coding",
    "interface": "api",
    "toolId": "openai-api",
    "comment": "Regression in tool calls after the latest deploy."
  }'

Response

A successful request returns the stored opinion. Check createdNewOpinion to know if the call created a new opinion or updated an active one.

json
{
  "opinionId": "jh7m9w7r9m2w0n9w7d3h6n3w3n7c0sd0",
  "createdNewOpinion": true,
  "model": {
    "displayName": "GPT-4o",
    "fullSlug": "openai/gpt-4o"
  },
  "score": 1,
  "useCase": null,
  "interface": null,
  "toolId": null,
  "toolNameOther": null,
  "comment": null,
  "moderationStatus": "visible",
  "submittedAt": 1773686400000,
  "cooldownEndsAt": 1773688200000
}

Common mistakes

  • Missing the Bearer prefix on the Authorization header
  • Sending a score that is not -1, 0, or 1
  • Using a short model slug that matches multiple providers. In that case, send the canonical provider/model slug instead.
  • Passing a toolId that does not belong to the selected interface
  • Including links in comment or toolNameOther

For the full field-by-field reference, see POST /api/v1/opinions.