Skip to content

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

Purrbot API 2.1.0

The Purrbot API (Formerly Purrbot Image API) is an open-source API that currently provides the following features:

  • Receive a randomly selected image link based on the selected image path.
  • Receive a list of image links based on the selected image path.
  • "OWOify" provided text, replacing specific characters with other values.

Testing connection

This page does not support directly testing API endpoints. Instead are you required to use a tool such as cURL or Postman to access and test API paths.

To test it, connect to https://api.purrbot.site and look for a response similar to the following:

{
  "name": "Purrbot API",
  "version": "2.2.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",
    "api": "https://api.purrbot.site/v2",
    "legal": "https://docs.purrbot.site/legal/api"
  },
  "license": {
    "type": "MIT",
    "link": "https://github.com/purrbot-site/ImageAPI/blob/master/LICENSE"
  }
}
Should you receive this or a similar response can you obtain the current API domain from the links object.

Versioning

The versioning of the API is simple. Whenever the API receives a breaking change will the version in the URL path get bumped.

Where possible will we try to still support the old API path for a while to allow an easier migration to the new version.

Current API deprecations

The following API URL paths are currently considered deprecated and will be removed in the future:

  • https://purrbot.site/api (switch to https://api.purrbot.site/v2)

License: MIT

Servers

URL Description
https://api.purrbot.site/v2 Main API endpoint to use.
https://purrbot.site/api [DEPRECATED] Old API Endpoint.

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://cdn.purrbot.site/sfw/angry/gif/angry_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/background/color_black.png",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/bite/gif/bite_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/blush/gif/blush_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/comfy/gif/comfy_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/cry/gif/cry_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/cuddle/gif/cuddle_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/dance/gif/dance_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/eevee/gif/eevee_001.gif",
    "error": false,
    "time": 0
}
{
    "link": "https://cdn.purrbot.site/sfw/eevee/img/eevee_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/fluff/gif/fluff_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/holo/img/holo_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/hug/gif/hug_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/icon/img/icon_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/kiss/gif/kiss_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/kitsune/img/kitsune_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/lay/gif/lay_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/lick/gif/lick_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/neko/gif/neko_001.gif",
    "error": false,
    "time": 0
}
{
    "link": "https://cdn.purrbot.site/sfw/neko/img/neko_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/okami/img/okami_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/pat/gif/pat_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/poke/gif/poke_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/pout/gif/pout_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/senko/img/senko_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/shiro/img/shiro_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/slap/gif/slap_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/smile/gif/smile_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/tail/gif/tail_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/tickle/gif/tickle_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/sfw/background/img/color_black.png",
        "https://cdn.purrbot.site/sfw/background/img/color_blue.png",
        "https://cdn.purrbot.site/sfw/background/img/color_blurple.png",
        "https://cdn.purrbot.site/sfw/background/img/color_green.png",
        "https://cdn.purrbot.site/sfw/background/img/color_grey.png",
        "https://cdn.purrbot.site/sfw/background/img/color_red.png",
        "https://cdn.purrbot.site/sfw/background/img/color_white.png",
        "https://cdn.purrbot.site/sfw/background/img/gradient.png",
        "https://cdn.purrbot.site/sfw/background/img/gradient_blue.png",
        "https://cdn.purrbot.site/sfw/background/img/gradient_dark_red.png",
        "https://cdn.purrbot.site/sfw/background/img/gradient_green.png",
        "https://cdn.purrbot.site/sfw/background/img/gradient_orange.png",
        "https://cdn.purrbot.site/sfw/background/img/gradient_red.png",
        "https://cdn.purrbot.site/sfw/background/img/rainbow.png"
    ],
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A success response returning a list of all available image links.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/anal/gif/anal_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/blowjob/gif/blowjob_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/cum/gif/cum_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/fuck/gif/fuck_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/neko/gif/neko_001.gif",
    "error": false,
    "time": 0
}
{
    "link": "https://cdn.purrbot.site/nsfw/neko/img/neko_001.jpg",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/pussylick/gif/pussylick_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/solo/gif/solo_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/solo_male/gif/solo_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/threesome_fff/gif/threesome_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/threesome_ffm/gif/threesome_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/threesome_mmf/gif/threesome_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/yaoi/gif/yaoi_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/yuri/gif/yuri_001.gif",
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response returning a randomly selected image link.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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://cdn.purrbot.site/nsfw/anal/gif/anal_001.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_002.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_003.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_004.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_005.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_006.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_007.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_008.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_009.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_010.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_011.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_012.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_013.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_014.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_015.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_016.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_017.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_018.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_019.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_020.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_021.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_022.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_023.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_024.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_025.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_026.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_027.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_028.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_029.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_030.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_031.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_032.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_033.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_034.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_035.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_036.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_037.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_038.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_039.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_040.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_041.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_042.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_043.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_044.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_045.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_046.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_047.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_048.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_049.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_050.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_051.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_052.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_053.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_054.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_055.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_056.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_057.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_058.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_059.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_060.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_061.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_062.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_063.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_064.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_065.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_066.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_067.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_068.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_069.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_070.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_071.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_072.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_073.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_074.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_075.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_076.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_077.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_078.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_079.gif",
        "https://cdn.purrbot.site/nsfw/anal/gif/anal_080.gif"
    ],
    "error": false,
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A success response returning a list of all available image links.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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

"OWOifies" text, meaning it replaces characters and words with others, depending on the provided configuration. Multiple configurations can be set via additional JSON properties:

  • Only text: Replaces l and r with w (Respects casing).
  • replace-words: Replaces specific key-words with others.
  • stutter: Randomly makes some word stutter by repeating the first character followed by a hyphon.
  • emoticons: Replaces punctuation characters (.!?) with random text emoticons.

Request body

{
    "text": "Hello World!"
}
Schema of the request body
{
    "type": "object",
    "description": "A JSON object for a proper POST request towards the OWOify endpoint.",
    "properties": {
        "text": {
            "type": "string",
            "description": "Text to OwOify."
        },
        "replace-words": {
            "type": "boolean",
            "description": "Whether to replace specific key-words with others",
            "required": false
        },
        "stutter": {
            "type": "boolean",
            "description": "Whether stuttering should be added.",
            "required": false
        },
        "emoticons": {
            "type": "boolean",
            "description": "Whether to replace punctuation characters (`.!?`) with random emoticons.",
            "required": false
        }
    }
}

Responses

200 Successful operation
{
    "error": false,
    "text": "Hewwo Wowd owo",
    "time": 0
}
Schema of the response body
{
    "type": "object",
    "description": "A successful OWOify response returning the converted text.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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

"OWOifies" text, meaning it replaces characters and words with others, depending on the provided configuration. Multiple configurations can be set via additional query parameters:

  • Only text: Replaces l and r with w (Respects casing).
  • replace-words: Replaces specific key-words with others.
  • stutter: Randomly makes some word stutter by repeating the first character followed by a hyphon.
  • emoticons: Replaces punctuation characters (.!?) with random text emoticons.

Input parameters

Parameter In Type Description
emoticons query boolean Whether to replace punctuation characters (`.!?`) with random emoticons.
replace-words query boolean Whether to replace specific key-words with others.
stutter query boolean Whether stuttering should be added.
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",
    "description": "A successful OWOify response returning the converted text.",
    "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)."
        },
        "deprecation-warning": {
            "type": "string",
            "description": "Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.",
            "nullable": true
        }
    }
}
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",
    "description": "A failed response for an API request.",
    "properties": {
        "details": {
            "$ref": "#/components/schemas/DetailsContent"
        },
        "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.

Deprecated

This endpoint was deprecated. It will be removed in a future version!

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",
        "api": "https://api.purrbot.site/v2"
    },
    "license": {
        "type": "MIT",
        "link": "https://github.com/purrbot-site/ImageAPI/blob/master/LICENSE"
    }
}
Schema of the response body
{
    "type": "object",
    "description": "A successful response containing API information.",
    "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"
        },
        "license": {
            "$ref": "#/components/schemas/LicenseContent"
        }
    }
}

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
deprecation-warning string (nullable) Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.
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)
links Schema(LinksContent)
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
api string API link that can be used for requests.
documentation string Link to the API documentation.
source string Link to the Source Code of the API.

ListSuccess

Name Type Description
deprecation-warning string (nullable) Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.
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
emoticons boolean Whether to replace punctuation characters (.!?) with random emoticons.
replace-words boolean Whether to replace specific key-words with others
stutter boolean Whether stuttering should be added.
text string Text to OwOify.

OWOifySuccess

Name Type Description
deprecation-warning string (nullable) Warning about the deprecation of the accessed endpoint. Not present for https://api.purrbot.site/v2 endpoints.
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)
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