Skip to content

The content of this page has been auto-generated from an OpenAPI file.

Purrbot Image API 1.8.0

The Purrbot Image API is an open-source API to provide randomly selected images or gifs based on the API path selected.
It was created as a replacement to commonly known APIs like nekos.life or weeb.sh, with the goal of having more control over the returned images for platforms like Discord.

Access is given free of charge without any authorization required.


License: MIT

Servers

URL Description
https://purrbot.site/api Main API endpoint to use.

SFW


GET /img/sfw/angry/gif

Get a random angry gif

Returns a randomly selected gif of someone being angry.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/angry/gif/angry_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/angry/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/angry",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/background/img

Get a random background image

Returns a randomly selected background image used in the bots welcome feature.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/background/color_black.png",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/background/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/background",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/bite/gif

Get a random bite gif

Returns a randomly selected bite gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/bite/gif/bite_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/bite/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/bite",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/blush/gif

Get a random blush gif

Returns a randomly selected blush gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/blush/gif/blush_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/blush/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/blush",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/comfy/gif

Get a random comfy gif

Returns a randomly selected comfy gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/comfy/gif/comfy_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/comfy/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/comfy",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/cry/gif

Get a random cry gif

Returns a randomly selected cry gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/cry/gif/cry_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/cry/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/cry",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/cuddle/gif

Get a random cuddle gif

Returns a randomly selected cuddle gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/cuddle/gif/cuddle_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/cuddle/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/cuddle",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/dance/gif

Get a random dance gif

Returns a randomly selected dance gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/dance/gif/dance_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/dance/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/dance",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/eevee/{type}

Get a random Gif or Image of Eevee

Returns a randomly selected Gif or Image of the Pokemon Eevee, depending on the provided {type}

Input parameters

Parameter In Type Description
type path string Type of media to return.
Available values: gif, img

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/eevee/gif/eevee_001.gif",
    "error": false,
    "time": 0
}
{
    "link": "https://purrbot.site/img/sfw/eevee/img/eevee_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/eevee/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/eevee",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/fluff/gif

Get a random fluff gif

Returns a randomly selected fluff gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/fluff/gif/fluff_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/fluff/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/fluff",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/holo/img

Get a random holo image

Returns a randomly selected image from Holo of the anime "Spice and Wolf".

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/holo/img/holo_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/holo/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/holo",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/hug/gif

Get a random hug gif

Returns a randomly selected hug gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/hug/gif/hug_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/hug/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/hug",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/icon/img

Get a random icon image

Returns a randomly selected icon image used in the bots welcome feature.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/icon/img/icon_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/icon/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/icon",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/kiss/gif

Get a random kiss gif

Returns a randomly selected kiss gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/kiss/gif/kiss_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/kiss/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/kiss",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/kitsune/img

Get a random kitsune image

Returns a randomly selected kitsune image.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/kitsune/img/kitsune_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/kitsune/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/kitsune",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/lay/gif

Get a random gif of someone laying down

Returns a randomly selected gif of someone laying down/resting.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/lay/gif/lay_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/lay/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/lay",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/lick/gif

Get a random lick gif

Returns a randomly selected lick gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/lick/gif/lick_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/lick/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/lick",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/neko/{type}

Get a random Gif or Image of a Neko

Returns a randomly selected Gif or Image of a Neko (Cat girl), depending on the provided {type}

Input parameters

Parameter In Type Description
type path string Type of media to return.
Available values: gif, img

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/neko/gif/neko_001.gif",
    "error": false,
    "time": 0
}
{
    "link": "https://purrbot.site/img/sfw/neko/img/neko_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/neko/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/neko",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/okami/img

Get a random okami image

Returns a randomly selected okami (Fox girl) image.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/okami/img/okami_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/okami/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/okami",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/pat/gif

Get a random pat gif

Returns a randomly selected pat gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/pat/gif/pat_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/pat/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/pat",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/poke/gif

Get a random poke gif

Returns a randomly selected poke gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/poke/gif/poke_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/poke/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/poke",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/pout/gif

Get a random pouting gif

Returns a randomly selected gif of someone pouting.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/pout/gif/pout_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/pout/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/pout",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/senko/img

Get a random senko image

Returns a randomly selected senko image.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/senko/img/_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/senko/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/senko",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/shiro/img

Get a random shiro image

Returns a randomly selected shiro image.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/shiro/img/shiro_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/shiro/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/shiro",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/slap/gif

Get a random slap gif

Returns a randomly selected slap gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/slap/gif/slap_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/slap/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/slap",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/smile/gif

Get a random smile gif

Returns a randomly selected smile gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/smile/gif/smile_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/smile/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/smile",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/tail/gif

Get a random tail wagging gif

Returns a randomly selected tail wagging gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/tail/gif/tail_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/tail/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/tail",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/sfw/tickle/gif

Get a random tickle gif

Returns a randomly selected tickle gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/sfw/tickle/gif/tickle_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/sfw/tickle/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/sfw/tickle",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /list/sfw/{path}

Get all available images of the path

Returns a list of all available images (as URLs) from the provided {path}

Input parameters

Parameter In Type Description
path path string The path to list all available images in. Allowed are all available `/api/img/sfw/` paths.

Responses

200 Successful operation
{
    "links": [
        "https://purrbot.site/img/sfw/background/img/color_black.png",
        "https://purrbot.site/img/sfw/background/img/color_blue.png",
        "https://purrbot.site/img/sfw/background/img/color_blurple.png",
        "https://purrbot.site/img/sfw/background/img/color_green.png",
        "https://purrbot.site/img/sfw/background/img/color_grey.png",
        "https://purrbot.site/img/sfw/background/img/color_red.png",
        "https://purrbot.site/img/sfw/background/img/color_white.png",
        "https://purrbot.site/img/sfw/background/img/gradient.png",
        "https://purrbot.site/img/sfw/background/img/gradient_blue.png",
        "https://purrbot.site/img/sfw/background/img/gradient_dark_red.png",
        "https://purrbot.site/img/sfw/background/img/gradient_green.png",
        "https://purrbot.site/img/sfw/background/img/gradient_orange.png",
        "https://purrbot.site/img/sfw/background/img/gradient_red.png",
        "https://purrbot.site/img/sfw/background/img/rainbow.png"
    ],
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "links": {
            "type": "array",
            "description": "List of Image URLs found within the provided path.",
            "items": {
                "type": "string"
            }
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/list/sfw/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/list/sfw/",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

NSFW


GET /img/nsfw/anal/gif

Get a random anal sex gif

Returns a randomly selected anal sex gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/anal/gif/anal_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/anal/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/anal",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/blowjob/gif

Get a random blowjob gif

Returns a randomly selected blowjob gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/blowjob/gif/blowjob_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/blowjob/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/blowjob",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/cum/gif

Get a random cum gif

Returns a randomly selected cum gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/cum/gif/cum_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/cum/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/cum",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/fuck/gif

Get a random fuck gif

Returns a randomly selected fuck gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/fuck/gif/_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/fuck/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/fuck",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/neko/{type}

Get a random Gif or Image of a Neko

Returns a randomly selected Gif or Image of a Neko (Cat girl), depending on the provided {type}

Input parameters

Parameter In Type Description
type path string Type of media to return.
Available values: gif, img

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/neko/gif/neko_001.gif",
    "error": false,
    "time": 0
}
{
    "link": "https://purrbot.site/img/nsfw/neko/img/neko_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/neko/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/neko",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/pussylick/gif

Get a random pussylick gif

Returns a randomly selected pussylick gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/pussylick/gif/pussylick_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/pussylick/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/pussylick",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/solo/gif

Get a random solo masturbation gif

Returns a randomly selected solo masturbation gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/solo/gif/solo_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/solo/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/solo",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/solo_male/gif

Get a random solo masturbation gif of a man

Returns a randomly selected solo masturbation gif of a man.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/solo_male/gif/solo_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/solo_male/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/solo_male",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/threesome_fff/gif

Get a random threesome (Females only) gif

Returns a randomly selected threesome (Females only) gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/threesome_fff/gif/threesome_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/threesome_fff/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/threesome_fff",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/threesome_ffm/gif

Get a random threesome (2 Females, 1 Male) gif

Returns a randomly selected threesome (2 Females, 1 Male) gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/threesome_ffm/gif/threesome_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/threesome_ffm/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/threesome_ffm",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/threesome_mmf/gif

Get a random threesome (2 Males, 1 Female) gif

Returns a randomly selected threesome (2 Males, 1 Female) gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/threesome_mmf/gif/threesome_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/threesome_mmf/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/threesome_mmf",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/yaoi/gif

Get a random yaoi (gay) gif

Returns a randomly selected yaoi (gay) gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/yaoi/gif/yaoi_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/yaoi/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/yaoi",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /img/nsfw/yuri/gif

Get a random yuri (lesbian) gif

Returns a randomly selected yuri (lesbian) gif.

Responses

200 Successful operation
{
    "link": "https://purrbot.site/img/nsfw/yuri/gif/yuri_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "link": {
            "type": "string",
            "description": "URL of the randomly selected image file."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw/yuri/invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/yuri",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /list/nsfw/{path}

Get all available images of the path

Returns a list of all available images (as URLs) from the provided {path}

Input parameters

Parameter In Type Description
path path string The path to list all available images in. Allowed are all available `/api/img/nsfw/` paths.

Responses

200 Successful operation
{
    "links": [
        "https://purrbot.site/img/nsfw/anal/gif/anal_001.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_002.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_003.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_004.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_005.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_006.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_007.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_008.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_009.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_010.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_011.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_012.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_013.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_014.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_015.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_016.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_017.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_018.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_019.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_020.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_021.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_022.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_023.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_024.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_025.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_026.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_027.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_028.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_029.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_030.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_031.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_032.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_033.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_034.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_035.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_036.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_037.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_038.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_039.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_040.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_041.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_042.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_043.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_044.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_045.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_046.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_047.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_048.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_049.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_050.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_051.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_052.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_053.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_054.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_055.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_056.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_057.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_058.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_059.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_060.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_061.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_062.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_063.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_064.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_065.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_066.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_067.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_068.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_069.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_070.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_071.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_072.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_073.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_074.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_075.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_076.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_077.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_078.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_079.gif",
        "https://purrbot.site/img/nsfw/anal/gif/anal_080.gif"
    ],
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "links": {
            "type": "array",
            "description": "List of Image URLs found within the provided path.",
            "items": {
                "type": "string"
            }
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
403 Invalid path provided
{
    "details": {
        "path": "/api/img/nsfw//invalid",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path is not valid.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
404 Path doesn't contain images
{
    "details": {
        "path": "/api/img/nsfw/",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "The provided path does not contain any images.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

MISC


POST /owoify

OWOify text

OWOify text. This means replacing specific characters with other characters or words.

Request body

{
    "text": "Hello World!"
}
Schema of the request body
{
    "type": "object",
    "properties": {
        "text": {
            "type": "string",
            "description": "Text to OwOify."
        }
    }
}

Responses

200 Successful operation
{
    "error": false,
    "text": "Hewwo Wowd owo",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "text": {
            "type": "string",
            "description": "The OwOified text."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
400 Received Malformed JSON Body
{
    "details": {
        "path": "/api/owoify",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "Received JSON Body does not contain a 'text' value.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /owoify

OWOify text

OWOify text. This means replacing specific characters with other characters or words.

Input parameters

Parameter In Type Description
text query string The text to OwOify.

Responses

200 Successful operation
{
    "error": false,
    "text": "Hewwo Wowd owo",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `false` for this response type."
        },
        "text": {
            "type": "string",
            "description": "The OwOified text."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}
400 Received Malformed Query
{
    "details": {
        "path": "/api/owoify",
        "content-type": "application/json",
        "user-agent": "Some_User-Agent/1.0"
    },
    "error": true,
    "message": "Received request does not contain a 'text' query parameter, or it was empty.",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent",
            "description": "Request details."
        },
        "error": {
            "type": "boolean",
            "description": "Whether the response is an error response. Always `true` for this response type."
        },
        "message": {
            "type": "string",
            "description": "The error message."
        },
        "time": {
            "type": "integer",
            "format": "int64",
            "description": "How long the request took to be processed (in milliseconds)."
        }
    }
}

GET /info

Provides info about the API

Returns info about the API including version, license, source code link, etc.

Responses

200 Successful operation
{
    "name": "Purrbot ImageAPI",
    "version": "2.0.0",
    "description": "A public API made for the Discord Bot *Purr* that contains random image and text features.",
    "links": {
        "documentation": "https://docs.purrbot.site/api",
        "source": "https://github.com/purrbot-site/ImageAPI"
    },
    "license": {
        "type": "MIT",
        "link": "https://github.com/purrbot-site/ImageAPI/blob/master/LICENSE"
    }
}
Schema of the response body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string",
            "description": "Name of the API."
        },
        "version": {
            "type": "string",
            "description": "Current version used of the API."
        },
        "description": {
            "type": "string",
            "description": "Description of the API."
        },
        "links": {
            "$ref": "#/components/schemas/LinksContent",
            "description": "Links for documentation and source of the API."
        },
        "license": {
            "$ref": "#/components/schemas/LicenseContent",
            "description": "License information about the API."
        }
    }
}

Schemas

DetailsContent

Name Type Description
content-type string The content-type header the user provided.
path string The API path that was used by the user.
user-agent string The User-Agent header the user provided.

ImgSuccess

Name Type Description
error boolean Whether the response is an error response. Always false for this response type.
link string URL of the randomly selected image file.
time integer(int64) How long the request took to be processed (in milliseconds).

InfoSuccess

Name Type Description
description string Description of the API.
license Schema(LicenseContent) License information about the API.
links Schema(LinksContent) Links for documentation and source of the API.
name string Name of the API.
version string Current version used of the API.

LicenseContent

Name Type Description
link string Link to the License file.
type string License Type (Name of the license).

LinksContent

Name Type Description
documentation string Link to the API documentation.
source string Link to the Source Code of the API.

ListSuccess

Name Type Description
error boolean Whether the response is an error response. Always false for this response type.
links Array(string) List of Image URLs found within the provided path.
time integer(int64) How long the request took to be processed (in milliseconds).

OWOifyRequest

Name Type Description
text string Text to OwOify.

OWOifySuccess

Name Type Description
error boolean Whether the response is an error response. Always false for this response type.
text string The OwOified text.
time integer(int64) How long the request took to be processed (in milliseconds).

RequestFailure

Name Type Description
details Schema(DetailsContent) Request details.
error boolean Whether the response is an error response. Always true for this response type.
message string The error message.
time integer(int64) How long the request took to be processed (in milliseconds).

Tags

Name Description
sfw Safe for Work endpoints
nsfw Not safe for Work endpoints
misc Miscellaneous Endpoints