pixie mascot

REST API · GET-only

Twary API Docs

A free, open, and blazing-fast REST API — serving random quotes, Indonesian jokes, image overlays, image manipulation effects, and more. Built with Elysia.js.

FreeOpen SourceCORS EnabledGET Only
Base URLhttps://apitwary.sytes.net

Endpoint overview

Text & Quotes

/v1/bible/v1/gombal/v1/jokereceh/v1/jomokimg

Image Manipulation

/v1/imgrndm

Image Overlays

/v1/imagemanip/crush/v1/imagemanip/garbage/v1/imagemanip/hug/v1/imagemanip/kitabestie/v1/imagemanip/werebestie/v1/imagemanip/ship

Common Query Param

All JSON endpoints accept:

?count=N

Returns multiple results when N > 1. Default: 1.

Global response format

All text/JSON endpoints return this shape:

JSON
{
  "status": 200,
  "end_point": "/api/<endpoint>",
  "method": "GET",
  "data": { // object or array depending on count }
}
Image endpoints (/v1/imgrndm and all /v1/imagemanip/*) return a raw image/png binary — no JSON wrapper.

Text & Quotes

Endpoints

GET
/api/bible
Returns a random Biblical / Christian inspirational quote

Query parameters

ParamTypeRequiredDefaultDescription
countintegeroptional1Number of quotes to return

Response schema

"data": {
  "author": string   // e.g. "Yesaya 41:10"
  "quotes": string   // the quote text
}

Example request

bash
curl "https://apitwary.sytes.net/v1/bible"

Example response

JSON
{
  "status": 200,
  "end_point": "/v1/bible",
  "method": "GET",
  "data": {
    "author": "Yesaya 41:10",
    "quotes": "Janganlah takut, sebab Aku menyertai engkau..."
  }
}
GET
/v1/gombal
Returns a random Indonesian pick-up line (gombal) — cheesy romantic one-liners

Query parameters

ParamTypeRequiredDefaultDescription
countintegeroptional1Number of lines to return

Response schema

"data": {
  "gombal_wrd": string   // the pick-up line text
}

Example request

bash
curl "https://apitwary.sytes.net/v1/gombal"

Example response

JSON
{
  "status": 200,
  "end_point": "/v1/gombal",
  "method": "GET",
  "data": {
    "gombal_wrd": "Hari minggu itu weekend, tapi kalau cinta aku ke kamu tuh will never end."
  }
}
GET
/v1/jokereceh
Returns a random Indonesian "receh" joke — corny, pun-style humor

Query parameters

ParamTypeRequiredDefaultDescription
countintegeroptional1Number of jokes to return

Response schema

"data": {
  "jokerecehl": string   // the joke text
}

Example request

bash
curl "https://apitwary.sytes.net/v1/jokereceh"

Example response

JSON
{
  "status": 200,
  "end_point": "/v1/jokereceh",
  "method": "GET",
  "data": {
    "jokerecehl": "Barusan saya ke apotek beli obat tidur, pas pulang saya bawa nya pelan pelan, takut obatnya bangun xixixi"
  }
}
GET
/v1/jomokimg
Returns a random GIF/meme image URL from Tenor

Query parameters

ParamTypeRequiredDefaultDescription
countintegeroptional1Number of image URLs to return

Response schema

"data": {
  "image_url": string   // direct GIF or image URL
}

Example request

bash
curl "https://apitwary.sytes.net/v1/jomokimg"

Example response

JSON
{
  "status": 200,
  "end_point": "/v1/jomokimg",
  "method": "GET",
  "data": {
    "image_url": "https://tenor.com/bgD33VDFqZ9.gif"
  }
}

Image Manipulation

Image Manipulation

These endpoints accept an image URL and return a processed PNG image directly — no JSON wrapper, just raw binary image data.

GET
/v1/imgrndm
Apply a visual effect to any remote image · Returns image/png

Query parameters

ParamTypeRequiredDefaultDescription
urlstring (URL)requiredURL of the image to process
effectstringoptionalgrayscaleEffect to apply (see below)

Available effects

grayscaleBlack & white
blurSoft blur r=5
flipFlip vertical
flopMirror horizontal
negateInvert colors
sepiaWarm sepia tone
rotate90Rotate 90° CW
rotate180Rotate 180°
pixelateMosaic style

Example request

bash
curl "https://apitwary.sytes.net/v1/imgmanip?url=https://example.com/photo.jpg&effect=sepia" \
  --output result.png

Error responses

JSON · 400
{
  "status": 400,
  "error": "Missing required query param: url",
  "available_effects": ["grayscale", "blur", ...]
}

Image Overlays

Image Overlays

These endpoints composite user-provided avatar images onto pre-designed meme templates. All return a raw image/png.

Always encodeURIComponent() your image URLs when passing them as query params.
GET
/v1/imgmanip/crush
Places two avatars onto a "crush" meme template · Canvas: 600×873 px

Query parameters

ParamTypeRequiredDefaultDescription
avatarstring (URL)requiredMain user's avatar (shown in the circle)
targetstring (URL)requiredCrush's image (shown on main panel)

Example request

bash
curl "https://apitwary.sytes.net/v1/imgmanip/crush?avatar=https://example.com/me.png&target=https://example.com/crush.png" \
  --output crush.png
GET
/v1/imgmanip/garbage
Places an avatar into a "garbage" meme template · Canvas: 600×600 px

Query parameters

ParamTypeRequiredDefaultDescription
avatarstring (URL)requiredURL of the avatar image

Example request

bash
curl "https://apitwary.sytes.net/v1/imgmanip/garbage?avatar=https://example.com/avatar.png" \
  --output garbage.png
GET
/v1/imgmanip/hug
Two avatars in circular frames on a hug template · Canvas: 250×232 px

Query parameters

ParamTypeRequiredDefaultDescription
avatarstring (URL)requiredFirst person's avatar (left circle)
targetstring (URL)requiredSecond person's avatar (right circle)

Example request

bash
curl "https://apitwary.sytes.net/v1/imgmanip/hug?avatar=https://example.com/me.png&target=https://example.com/friend.png" \
  --output hug.png
GET
/v1/imgmanip/kitabestie
"Kita bestie" friendship template with two circular frames · Canvas: 736×752 px

Query parameters

ParamTypeRequiredDefaultDescription
avatarstring (URL)requiredFirst person's avatar (left circle)
targetstring (URL)requiredSecond person's avatar (right circle)

Example request

bash
curl "https://apitwary.sytes.net/v1/imgmanip/kitabestie?avatar=https://example.com/me.png&target=https://example.com/bestie.png" \
  --output kitabestie.png
GET
/v1/imgmanip/werebestie
Alternative "we're bestie" template artwork · Canvas: 736×752 px

Query parameters

ParamTypeRequiredDefaultDescription
avatarstring (URL)requiredFirst person's avatar (left circle)
targetstring (URL)requiredSecond person's avatar (right circle)

Example request

bash
curl "https://apitwary.sytes.net/v1/imgmanip/werebestie?avatar=https://example.com/me.png&target=https://example.com/bestie.png" \
  --output werebestie.png
GET
/v1/imgmanip/ship
Composites two avatars on a "ship" template with optional love percentage · Canvas: 752×752 px

Query parameters

ParamTypeRequiredDefaultDescription
avatarstring (URL)requiredFirst person's avatar (left circle)
targetstring (URL)requiredSecond person's avatar (right circle)
percentagestringoptionalLove percentage (1–100), "random", or omit to hide

Example request

bash
curl "https://apitwary.sytes.net/v1/imgmanip/ship?avatar=https://example.com/a.png&target=https://example.com/b.png&percentage=80" \
  --output ship.png
Omit &percentage= entirely to hide the percentage overlay from the image.

Reference

Error Handling

All endpoints use consistent HTTP status codes and error shapes.

200
Success
400
Bad Request — missing or invalid parameter
405
Method Not Allowed — only GET is supported
500
Internal Server Error — template missing, image fetch failed, etc.

Error response shape

JSON
{
  "status": 400,
  "end_point": "/v1/<endpoint>",
  "error": "Human-readable error message"
}

Image endpoints also return JSON with this same shape even though the successful response is binary.


pixie mascot