Docs

API reference

Endpoints, scopes, pagination, rate limits, and errors for the Furipay v1 API.

Calling the API

Use https://api.furipay.me/v1 as the base URL. The protected app API endpoints below require an access token; the token endpoint is the exception:

Authorization: Bearer YOUR_ACCESS_TOKEN

Rate limits

Limits are counted separately for each app and creator:

GroupLimit
Read endpoints120 requests/minute
POST /tips10 requests/minute
POST /alerts30 requests/minute

A limited request returns 429 with a Retry-After header.

Account and profile

GET /me identifies the creator represented by the token and needs no additional scope.

GET/v1/me

GET /v1/me

curl -X GET \
  'https://api.furipay.me/v1/me' \
  -H 'Authorization: Bearer <token>'
View OpenAPI JSON

GET /profile returns the public profile, social links, and tip channels with their enabled state. It requires profile.read.

GET/v1/profile

GET /v1/profile

curl -X GET \
  'https://api.furipay.me/v1/profile' \
  -H 'Authorization: Bearer <token>'
View OpenAPI JSON

Tips

GET /tips requires tips.read and accepts limit 1–100 (default 50), cursor, from, and to. Dates use ISO 8601.

GET/v1/tips

GET /v1/tips

curl -X GET \
  'https://api.furipay.me/v1/tips' \
  -H 'Authorization: Bearer <token>'
View OpenAPI JSON

GET /tips/stats returns all-time and current-month tip totals and counts in THB.

GET/v1/tips/stats

GET /v1/tips/stats

curl -X GET \
  'https://api.furipay.me/v1/tips/stats' \
  -H 'Authorization: Bearer <token>'
View OpenAPI JSON

POST /tips requires tips.create and accepts a positive amount within the platform cap, a 2–25 character name using A–Z, 0–9, underscores, or spaces, and an optional message up to 255 characters. Creator identity always comes from the token.

{
  "amount": 100,
  "name": "Nong",
  "message": "GG!"
}

This endpoint records a completed tip and emits its overlay event; it does not charge a supporter. Call it only after your source system has confirmed payment.

POST/v1/tips

POST /v1/tips

curl -X POST \
  'https://api.furipay.me/v1/tips' \
  -H 'Authorization: Bearer <token>'
View OpenAPI JSON

Overlay and events

POST /alerts requires alerts.create and sends a test alert to the overlay without creating tip history.

POST/v1/alerts

POST /v1/alerts

curl -X POST \
  'https://api.furipay.me/v1/alerts' \
  -H 'Authorization: Bearer <token>'
View OpenAPI JSON

GET /socket/token requires events.subscribe and returns a short-lived, ten-minute socket token.

GET/v1/socket/token

GET /v1/socket/token

curl -X GET \
  'https://api.furipay.me/v1/socket/token' \
  -H 'Authorization: Bearer <token>'
View OpenAPI JSON

Error responses

Protected endpoints use one error envelope:

{
  "error": {
    "code": "insufficient_scope",
    "message": "This endpoint requires scope: tips.read"
  }
}
  • 401 missing, invalid, or expired token
  • 403 unusable grant or missing scope
  • 422 request validation failed
  • 429 rate limit exceeded
  • 502 upstream service failed
API reference | Furipay Docs