Skip to content

Reference

Every endpoint, and every way it says no.

Grouped by what you are trying to do rather than by internal service. Errors are documented as carefully as successes, because the error path is where an integration actually lives.

Authentication

One bearer token, sent on every request that is not purely public.

Header
Authorization: Bearer vs_live_…

Keys are scoped. A key with only listings:read can browse but cannot spend money, which is the right key to give an agent that is choosing between listings but not authorised to buy one.

Catalogue

Public. A key is optional, and raises your rate limit when present.

MethodPathWhat it doesAuth
GET/api/listingsBrowse listings. Filter, sort, paginate.Optional
GET/api/listings/:idOne listing in full, including its data-flow declaration.Optional
GET/api/listings/:id/schemaThe request and response schema for a callable listing.Optional
GET/api/categoriesFields, with a count of live listings in each.Optional
GET/api/searchSearch listings and creators. `q` is required.Optional

Calling a listing

Metered. Every call here appears on your invoice and in the creator's analytics.

MethodPathWhat it doesAuth
POST/api/listings/:id/callExecute a tool call against a certified listing.Key
POST/api/listings/:id/questionSubmit an async question. Answered within 48 hours or refunded.Key

Trust and identity

The layer that makes a credential mean something to a caller.

MethodPathWhat it doesAuth
GET/v1/profiles/:userId/trustTrust tier, verified credentials, weighted rating.Optional
GET/v1/profiles/:userId/endorsements/summaryEndorsement totals, broken down by domain.Optional
GET/v1/skills/:skillId/creator-trustThe creator trust block for one listing.Optional
GET/v1/domainsThe domain tree used for expertise and discovery.Optional

Buying

Your own subscriptions, usage and invoices.

MethodPathWhat it doesAuth
POST/api/buyer/subscribe/:listingIdStart a subscription.Key
DELETE/api/buyer/subscribe/:listingIdCancel. Access runs to the end of the paid period.Key
GET/api/buyer/subscriptionsEverything you currently subscribe to.Key
GET/api/buyer/usageCall history and running spend for the current period.Key
GET/api/buyer/invoicesInvoice history.Key
POST/api/buyer/reviewsPost a review. Requires a verified purchase.Key

Selling

Managing your own listings, credentials and money.

MethodPathWhat it doesAuth
POST/api/seller/listingsCreate a listing. Starts as a draft.Key
PUT/api/seller/listings/:idUpdate a listing. Some fields re-trigger review.Key
DELETE/api/seller/listings/:idArchive. Existing subscribers keep access to the end of their period.Key
GET/api/seller/analyticsCall volume, revenue and top callers.Key
GET/api/seller/payoutsPayout history and what is in transit.Key
POST/api/seller/credentialsSubmit a credential for verification.Key
GET/api/seller/questionsQuestions awaiting an answer, oldest deadline first.Key
POST/api/seller/questions/:id/answerAnswer a question inside its 48-hour window.Key

Errors

Every error carries a stable code and a sentence written to be shown to a person.

Error body
{
  "error": {
    "code": "certification_expired",
    "message": "This listing's professional certification lapsed on 2 August 2026.",
    "listing_id": "l_hepatic",
    "docs": "https://vibestreet.io/docs/api-reference#errors"
  }
}

Codes

StatusCodeWhat it means
400schema_mismatchThe body did not match the listing's declared request schema. The response names the field.
401no_keyNo key, or a key that has been revoked.
402payment_requiredThe call is billable and there is no active subscription or valid payment method.
403tier_not_transactableThe listing is Community tier and cannot be purchased or called.
403policy_blockedYour organisation's usage policy blocks this listing. The response names the policy.
404not_foundNo listing with that id or slug — or it is a draft you do not own.
409certification_expiredThe creator's credential lapsed. Existing calls fail rather than silently degrading.
429rate_limitedToo many calls. `Retry-After` is always present on this one.
503upstream_unavailableThe creator's endpoint did not respond. The call is not billed.

Rate limits and pagination

Predictable, and always stated in the response rather than only in these pages.

Headers on every response

Headers
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 594
X-RateLimit-Reset: 1787654400
Retry-After: 12          # only on 429

List endpoints take page and per_page, and return total and total_pages alongside the items. Maximum page size is 100.