openapi: 3.0.0 servers: - url: https://httpbin.org info: contact: email: me@kennethreitz.org url: https://kennethreitz.org x-responsibleDeveloper: Kenneth Reitz x-responsibleOrganization: Kenneth Reitz description: "A simple HTTP Request & Response Service.

Run locally: $ docker run -p 80:80 kennethreitz/httpbin" title: httpbin.org version: 0.9.2 x-apisguru-categories: - developer_tools x-origin: - format: swagger url: http://httpbin.org/spec.json version: "2.0" x-providerName: httpbin.org x-logo: url: https://api.apis.guru/v2/cache/logo/https_apis.guru_assets_images_no-logo.svg tags: - description: Testing different HTTP verbs name: HTTP Methods - description: Auth methods name: Auth - description: Generates responses with given status code name: Status codes - description: Inspect the request data name: Request inspection - description: Inspect the response data like caching and headers name: Response inspection - description: Returns responses in different data formats name: Response formats - description: Generates random and dynamic data name: Dynamic data - description: Creates, reads and deletes Cookies name: Cookies - description: Returns different image formats name: Images - description: Returns different redirect responses name: Redirects - description: Returns anything that is passed to request name: Anything paths: "/absolute-redirect/{n}": get: parameters: - in: path name: n required: true schema: type: integer responses: "302": description: A redirection. summary: Absolutely 302 Redirects n times. tags: - Redirects /anything: delete: responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything get: responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything patch: responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything post: responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything put: responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything trace: responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything "/anything/{anything}": delete: parameters: - description: Automatically added in: path name: anything required: true schema: type: string responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything get: parameters: - description: Automatically added in: path name: anything required: true schema: type: string responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything patch: parameters: - description: Automatically added in: path name: anything required: true schema: type: string responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything post: parameters: - description: Automatically added in: path name: anything required: true schema: type: string responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything put: parameters: - description: Automatically added in: path name: anything required: true schema: type: string responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything trace: parameters: - description: Automatically added in: path name: anything required: true schema: type: string responses: "200": description: Anything passed in request summary: Returns anything passed in request data. tags: - Anything "/base64/{value}": get: parameters: - in: path name: value required: true schema: default: SFRUUEJJTiBpcyBhd2Vzb21l type: string responses: "200": description: Decoded base64 content. summary: Decodes base64url-encoded string. tags: - Dynamic data "/basic-auth/{user}/{passwd}": get: parameters: - in: path name: user required: true schema: type: string - in: path name: passwd required: true schema: type: string responses: "200": description: Sucessful authentication. "401": description: Unsuccessful authentication. summary: Prompts the user for authorization using HTTP Basic Auth. tags: - Auth /bearer: get: parameters: - in: header name: Authorization schema: type: string responses: "200": description: Sucessful authentication. "401": description: Unsuccessful authentication. summary: Prompts the user for authorization using bearer authentication. tags: - Auth /brotli: get: responses: "200": description: Brotli-encoded data. summary: Returns Brotli-encoded data. tags: - Response formats "/bytes/{n}": get: parameters: - in: path name: n required: true schema: type: integer responses: "200": description: Bytes. summary: Returns n random bytes generated with given seed tags: - Dynamic data /cache: get: parameters: - in: header name: If-Modified-Since schema: type: string - in: header name: If-None-Match schema: type: string responses: "200": description: Cached response "304": description: Modified summary: Returns a 304 if an If-Modified-Since header or If-None-Match is present. Returns the same as a GET otherwise. tags: - Response inspection "/cache/{value}": get: parameters: - in: path name: value required: true schema: type: integer responses: "200": description: Cache control set summary: Sets a Cache-Control header for n seconds. tags: - Response inspection /cookies: get: responses: "200": description: Set cookies. summary: Returns cookie data. tags: - Cookies /cookies/delete: get: parameters: - allowEmptyValue: true explode: true in: query name: freeform schema: additionalProperties: type: string type: string style: form responses: "200": description: Redirect to cookie list summary: Deletes cookie(s) as provided by the query string and redirects to cookie list. tags: - Cookies /cookies/set: get: parameters: - allowEmptyValue: true explode: true in: query name: freeform schema: additionalProperties: type: string type: string style: form responses: "200": description: Redirect to cookie list summary: Sets cookie(s) as provided by the query string and redirects to cookie list. tags: - Cookies "/cookies/set/{name}/{value}": get: parameters: - in: path name: name required: true schema: type: string - in: path name: value required: true schema: type: string responses: "200": description: Set cookies and redirects to cookie list. summary: Sets a cookie and redirects to cookie list. tags: - Cookies /deflate: get: responses: "200": description: Defalte-encoded data. summary: Returns Deflate-encoded data. tags: - Response formats "/delay/{delay}": delete: parameters: - in: path name: delay required: true schema: type: integer responses: "200": description: A delayed response. summary: Returns a delayed response (max of 10 seconds). tags: - Dynamic data get: parameters: - in: path name: delay required: true schema: type: integer responses: "200": description: A delayed response. summary: Returns a delayed response (max of 10 seconds). tags: - Dynamic data patch: parameters: - in: path name: delay required: true schema: type: integer responses: "200": description: A delayed response. summary: Returns a delayed response (max of 10 seconds). tags: - Dynamic data post: parameters: - in: path name: delay required: true schema: type: integer responses: "200": description: A delayed response. summary: Returns a delayed response (max of 10 seconds). tags: - Dynamic data put: parameters: - in: path name: delay required: true schema: type: integer responses: "200": description: A delayed response. summary: Returns a delayed response (max of 10 seconds). tags: - Dynamic data trace: parameters: - in: path name: delay required: true schema: type: integer responses: "200": description: A delayed response. summary: Returns a delayed response (max of 10 seconds). tags: - Dynamic data /delete: delete: responses: "200": description: The request's DELETE parameters. summary: The request's DELETE parameters. tags: - HTTP Methods /deny: get: responses: "200": description: Denied message summary: Returns page denied by robots.txt rules. tags: - Response formats "/digest-auth/{qop}/{user}/{passwd}": get: parameters: - description: auth or auth-int in: path name: qop required: true schema: type: string - in: path name: user required: true schema: type: string - in: path name: passwd required: true schema: type: string responses: "200": description: Sucessful authentication. "401": description: Unsuccessful authentication. summary: Prompts the user for authorization using Digest Auth. tags: - Auth "/digest-auth/{qop}/{user}/{passwd}/{algorithm}": get: parameters: - description: auth or auth-int in: path name: qop required: true schema: type: string - in: path name: user required: true schema: type: string - in: path name: passwd required: true schema: type: string - description: MD5, SHA-256, SHA-512 in: path name: algorithm required: true schema: default: MD5 type: string responses: "200": description: Sucessful authentication. "401": description: Unsuccessful authentication. summary: Prompts the user for authorization using Digest Auth + Algorithm. tags: - Auth "/digest-auth/{qop}/{user}/{passwd}/{algorithm}/{stale_after}": get: description: | allow settings the stale_after argument. parameters: - description: auth or auth-int in: path name: qop required: true schema: type: string - in: path name: user required: true schema: type: string - in: path name: passwd required: true schema: type: string - description: MD5, SHA-256, SHA-512 in: path name: algorithm required: true schema: default: MD5 type: string - in: path name: stale_after required: true schema: default: never type: string responses: "200": description: Sucessful authentication. "401": description: Unsuccessful authentication. summary: Prompts the user for authorization using Digest Auth + Algorithm. tags: - Auth /drip: get: parameters: - description: The amount of time (in seconds) over which to drip each byte in: query name: duration required: false schema: default: 2 type: number - description: The number of bytes to respond with in: query name: numbytes required: false schema: default: 10 type: integer - description: The response code that will be returned in: query name: code required: false schema: default: 200 type: integer - description: The amount of time (in seconds) to delay before responding in: query name: delay required: false schema: default: 2 type: number responses: "200": description: A dripped response. summary: Drips data over a duration after an optional initial delay. tags: - Dynamic data /encoding/utf8: get: responses: "200": description: Encoded UTF-8 content. summary: Returns a UTF-8 encoded body. tags: - Response formats "/etag/{etag}": get: parameters: - in: header name: If-None-Match schema: type: string - in: header name: If-Match schema: type: string - description: Automatically added in: path name: etag required: true schema: type: string responses: "200": description: Normal response "412": description: match summary: Assumes the resource has the given etag and responds to If-None-Match and If-Match headers appropriately. tags: - Response inspection /get: get: responses: "200": description: The request's query parameters. summary: The request's query parameters. tags: - HTTP Methods /gzip: get: responses: "200": description: GZip-encoded data. summary: Returns GZip-encoded data. tags: - Response formats /headers: get: responses: "200": description: The request's headers. summary: Return the incoming request's HTTP headers. tags: - Request inspection "/hidden-basic-auth/{user}/{passwd}": get: parameters: - in: path name: user required: true schema: type: string - in: path name: passwd required: true schema: type: string responses: "200": description: Sucessful authentication. "404": description: Unsuccessful authentication. summary: Prompts the user for authorization using HTTP Basic Auth. tags: - Auth /html: get: responses: "200": description: An HTML page. summary: Returns a simple HTML document. tags: - Response formats /image: get: responses: "200": description: An image. summary: Returns a simple image of the type suggest by the Accept header. tags: - Images /image/jpeg: get: responses: "200": description: A JPEG image. summary: Returns a simple JPEG image. tags: - Images /image/png: get: responses: "200": description: A PNG image. summary: Returns a simple PNG image. tags: - Images /image/svg: get: responses: "200": description: An SVG image. summary: Returns a simple SVG image. tags: - Images /image/webp: get: responses: "200": description: A WEBP image. summary: Returns a simple WEBP image. tags: - Images /ip: get: responses: "200": description: The Requester's IP Address. summary: Returns the requester's IP Address. tags: - Request inspection /json: get: responses: "200": description: An JSON document. summary: Returns a simple JSON document. tags: - Response formats "/links/{n}/{offset}": get: parameters: - in: path name: n required: true schema: type: integer - in: path name: offset required: true schema: type: integer responses: "200": description: HTML links. summary: Generate a page containing n links to other pages which do the same. tags: - Dynamic data /patch: patch: responses: "200": description: The request's PATCH parameters. summary: The request's PATCH parameters. tags: - HTTP Methods /post: post: responses: "200": description: The request's POST parameters. summary: The request's POST parameters. tags: - HTTP Methods /put: put: responses: "200": description: The request's PUT parameters. summary: The request's PUT parameters. tags: - HTTP Methods "/range/{numbytes}": get: parameters: - in: path name: numbytes required: true schema: type: integer responses: "200": description: Bytes. summary: Streams n random bytes generated with given seed, at given chunk size per packet. tags: - Dynamic data /redirect-to: delete: responses: "302": description: A redirection. summary: 302/3XX Redirects to the given URL. tags: - Redirects get: parameters: - in: query name: url required: true schema: type: string - in: query name: status_code schema: type: integer responses: "302": description: A redirection. summary: 302/3XX Redirects to the given URL. tags: - Redirects patch: responses: "302": description: A redirection. summary: 302/3XX Redirects to the given URL. tags: - Redirects post: requestBody: $ref: "#/components/requestBodies/postRedirectTo" responses: "302": description: A redirection. summary: 302/3XX Redirects to the given URL. tags: - Redirects put: requestBody: $ref: "#/components/requestBodies/postRedirectTo" responses: "302": description: A redirection. summary: 302/3XX Redirects to the given URL. tags: - Redirects trace: responses: "302": description: A redirection. summary: 302/3XX Redirects to the given URL. tags: - Redirects "/redirect/{n}": get: parameters: - in: path name: n required: true schema: type: integer responses: "302": description: A redirection. summary: 302 Redirects n times. tags: - Redirects "/relative-redirect/{n}": get: parameters: - in: path name: n required: true schema: type: integer responses: "302": description: A redirection. summary: Relatively 302 Redirects n times. tags: - Redirects /response-headers: get: parameters: - allowEmptyValue: true explode: true in: query name: freeform schema: additionalProperties: type: string type: string style: form responses: "200": description: Response headers summary: Returns a set of response headers from the query string. tags: - Response inspection post: parameters: - allowEmptyValue: true explode: true in: query name: freeform schema: additionalProperties: type: string type: string style: form responses: "200": description: Response headers summary: Returns a set of response headers from the query string. tags: - Response inspection /robots.txt: get: responses: "200": description: Robots file summary: Returns some robots.txt rules. tags: - Response formats "/status/{codes}": delete: parameters: - in: path name: codes required: true schema: type: string responses: "100": description: Informational responses "200": description: Success "300": description: Redirection "400": description: Client Errors "500": description: Server Errors summary: Return status code or random status code if more than one are given tags: - Status codes get: parameters: - in: path name: codes required: true schema: type: string responses: "100": description: Informational responses "200": description: Success "300": description: Redirection "400": description: Client Errors "500": description: Server Errors summary: Return status code or random status code if more than one are given tags: - Status codes patch: parameters: - in: path name: codes required: true schema: type: string responses: "100": description: Informational responses "200": description: Success "300": description: Redirection "400": description: Client Errors "500": description: Server Errors summary: Return status code or random status code if more than one are given tags: - Status codes post: parameters: - in: path name: codes required: true schema: type: string responses: "100": description: Informational responses "200": description: Success "300": description: Redirection "400": description: Client Errors "500": description: Server Errors summary: Return status code or random status code if more than one are given tags: - Status codes put: parameters: - in: path name: codes required: true schema: type: string responses: "100": description: Informational responses "200": description: Success "300": description: Redirection "400": description: Client Errors "500": description: Server Errors summary: Return status code or random status code if more than one are given tags: - Status codes trace: parameters: - in: path name: codes required: true schema: type: string responses: "100": description: Informational responses "200": description: Success "300": description: Redirection "400": description: Client Errors "500": description: Server Errors summary: Return status code or random status code if more than one are given tags: - Status codes "/stream-bytes/{n}": get: parameters: - in: path name: n required: true schema: type: integer responses: "200": description: Bytes. summary: Streams n random bytes generated with given seed, at given chunk size per packet. tags: - Dynamic data "/stream/{n}": get: parameters: - in: path name: n required: true schema: type: integer responses: "200": description: Streamed JSON responses. summary: Stream n JSON responses tags: - Dynamic data /user-agent: get: responses: "200": description: The request's User-Agent header. summary: Return the incoming requests's User-Agent header. tags: - Request inspection /uuid: get: responses: "200": description: A UUID4. summary: Return a UUID4. tags: - Dynamic data /xml: get: responses: "200": description: An XML document. summary: Returns a simple XML document. tags: - Response formats components: requestBodies: postRedirectTo: content: application/x-www-form-urlencoded: schema: properties: status_code: type: integer url: type: string required: - url type: object required: true x-protocol: https