Reference

API documentation

Authentication

Every request needs your API key, sent either as a header (recommended) or a query parameter.

curl "https://yourvibetoday.com/api/v1/apps.php" \
  -H "X-API-Key: yvt_live_yourkeyhere"

Don't have a key yet? Get one free — Starter keys work immediately.

GET /api/v1/apps.php

Returns a paginated, searchable list across all 1185+ apps.

ParamTypeDescription
qstringSearch title + description
categorystringCategory slug, e.g. relationships-dating
pageintDefault 1
per_pageintDefault 24, max 100
curl "https://yourvibetoday.com/api/v1/apps.php?category=school-students&per_page=2" \
  -H "X-API-Key: yvt_live_yourkeyhere"
{
  "data": [
    {
      "slug": "pop-quiz-panic-score",
      "title": "Pop Quiz Panic Score",
      "description": "Enter your pop quiz panic score and get your tier.",
      "category": "School & Students",
      "accent_color": "#FF4D4D",
      "url": "https://yourvibetoday.com/try/pop-quiz-panic-score/",
      "card_image_url": "https://yourvibetoday.com/try/pop-quiz-panic-score/pop-quiz-panic-score-image.php",
      "added_at": "2026-07-14T10:22:00+00:00"
    }
  ],
  "pagination": { "page": 1, "per_page": 2, "total_results": 83, "total_pages": 42 },
  "plan": { "name": "Starter", "calls_used_today": 14, "daily_limit": 500 }
}

GET /api/v1/app.php?slug={slug}

Detail for one app. Pass through n and/or g to get a card image URL for a specific result instead of the default.

curl "https://yourvibetoday.com/api/v1/app.php?slug=red-flag-counter&n=7&g=my%20ex" \
  -H "X-API-Key: yvt_live_yourkeyhere"

Embedding a card on your site

Every response includes card_image_url — a plain PNG endpoint, no auth required to load the image itself, safe to use directly in an <img> tag or social meta tag.

<img src="https://yourvibetoday.com/try/red-flag-counter/red-flag-counter-image.php?n=7&g=my+ex"
     alt="Red Flag Counter result" />

To let your own visitors fill in the number themselves, embed url (the app's own page) in an iframe, or link out to it directly — both work without any API key on the visitor's side.

Rate limits

Limits reset at midnight UTC and are tied to your plan. Current usage is returned in every response under plan.calls_used_today. See plans & pricing for exact limits.

Errors

HTTPCodeMeaning
401missing_api_keyNo key was sent
401invalid_api_keyKey not recognized
402payment_requiredPaid plan awaiting billing confirmation
403key_suspendedKey suspended — contact support
404app_not_foundSlug doesn't exist
429rate_limit_exceededDaily limit reached for your plan