{"note":"OpenAPI conversion -- returning structured metadata","name":"httpbin-org","description":"httpbin.org","version":"0.9.2","base_url":"https://httpbin.org/","endpoints":73,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api httpbin.org\n@base https://httpbin.org/\n@version 0.9.2\n@auth ApiKey Authorization in header\n@endpoints 73\n@hint download_for_search\n@toc absolute-redirect(1), anything(10), base64(1), basic-auth(1), bearer(1), brotli(1), bytes(1), cache(2), cookies(4), deflate(1), delay(5), delete(1), deny(1), digest-auth(3), drip(1), encoding(1), etag(1), get(1), gzip(1), headers(1), hidden-basic-auth(1), html(1), image(5), ip(1), json(1), links(1), patch(1), post(1), put(1), range(1), redirect-to(5), redirect(1), relative-redirect(1), response-headers(2), robots.txt(1), status(5), stream-bytes(1), stream(1), user-agent(1), uuid(1), xml(1)\n\n@group absolute-redirect\n@endpoint GET /absolute-redirect/{n}\n@desc Absolutely 302 Redirects n times.\n@optional {n: any}\n@errors {302: A redirection.}\n\n@endgroup\n\n@group anything\n@endpoint DELETE /anything\n@desc Returns anything passed in request data.\n@returns(200) Anything passed in request\n\n@endpoint GET /anything\n@desc Returns anything passed in request data.\n@returns(200) Anything passed in request\n\n@endpoint PATCH /anything\n@desc Returns anything passed in request data.\n@returns(200) Anything passed in request\n\n@endpoint POST /anything\n@desc Returns anything passed in request data.\n@returns(200) Anything passed in request\n\n@endpoint PUT /anything\n@desc Returns anything passed in request data.\n@returns(200) Anything passed in request\n\n@endpoint DELETE /anything/{anything}\n@desc Returns anything passed in request data.\n@returns(200) Anything passed in request\n\n@endpoint GET /anything/{anything}\n@desc Returns anything passed in request data.\n@returns(200) Anything passed in request\n\n@endpoint PATCH /anything/{anything}\n@desc Returns anything passed in request data.\n@returns(200) Anything passed in request\n\n@endpoint POST /anything/{anything}\n@desc Returns anything passed in request data.\n@returns(200) Anything passed in request\n\n@endpoint PUT /anything/{anything}\n@desc Returns anything passed in request data.\n@returns(200) Anything passed in request\n\n@endgroup\n\n@group base64\n@endpoint GET /base64/{value}\n@desc Decodes base64url-encoded string.\n@optional {value: any}\n@returns(200) Decoded base64 content.\n\n@endgroup\n\n@group basic-auth\n@endpoint GET /basic-auth/{user}/{passwd}\n@desc Prompts the user for authorization using HTTP Basic Auth.\n@optional {user: any, passwd: any}\n@returns(200) Sucessful authentication.\n@errors {401: Unsuccessful authentication.}\n\n@endgroup\n\n@group bearer\n@endpoint GET /bearer\n@desc Prompts the user for authorization using bearer authentication.\n@optional {Authorization: str}\n@returns(200) Sucessful authentication.\n@errors {401: Unsuccessful authentication.}\n\n@endgroup\n\n@group brotli\n@endpoint GET /brotli\n@desc Returns Brotli-encoded data.\n@returns(200) Brotli-encoded data.\n\n@endgroup\n\n@group bytes\n@endpoint GET /bytes/{n}\n@desc Returns n random bytes generated with given seed\n@optional {n: any}\n@returns(200) Bytes.\n\n@endgroup\n\n@group cache\n@endpoint GET /cache\n@desc Returns a 304 if an If-Modified-Since header or If-None-Match is present. Returns the same as a GET otherwise.\n@optional {If-Modified-Since: any, If-None-Match: any}\n@returns(200) Cached response\n@errors {304: Modified}\n\n@endpoint GET /cache/{value}\n@desc Sets a Cache-Control header for n seconds.\n@optional {value: any}\n@returns(200) Cache control set\n\n@endgroup\n\n@group cookies\n@endpoint GET /cookies\n@desc Returns cookie data.\n@returns(200) Set cookies.\n\n@endpoint GET /cookies/delete\n@desc Deletes cookie(s) as provided by the query string and redirects to cookie list.\n@optional {freeform: map}\n@returns(200) Redirect to cookie list\n\n@endpoint GET /cookies/set\n@desc Sets cookie(s) as provided by the query string and redirects to cookie list.\n@optional {freeform: map}\n@returns(200) Redirect to cookie list\n\n@endpoint GET /cookies/set/{name}/{value}\n@desc Sets a cookie and redirects to cookie list.\n@optional {name: any, value: any}\n@returns(200) Set cookies and redirects to cookie list.\n\n@endgroup\n\n@group deflate\n@endpoint GET /deflate\n@desc Returns Deflate-encoded data.\n@returns(200) Defalte-encoded data.\n\n@endgroup\n\n@group delay\n@endpoint DELETE /delay/{delay}\n@desc Returns a delayed response (max of 10 seconds).\n@optional {delay: any}\n@returns(200) A delayed response.\n\n@endpoint GET /delay/{delay}\n@desc Returns a delayed response (max of 10 seconds).\n@optional {delay: any}\n@returns(200) A delayed response.\n\n@endpoint PATCH /delay/{delay}\n@desc Returns a delayed response (max of 10 seconds).\n@optional {delay: any}\n@returns(200) A delayed response.\n\n@endpoint POST /delay/{delay}\n@desc Returns a delayed response (max of 10 seconds).\n@optional {delay: any}\n@returns(200) A delayed response.\n\n@endpoint PUT /delay/{delay}\n@desc Returns a delayed response (max of 10 seconds).\n@optional {delay: any}\n@returns(200) A delayed response.\n\n@endgroup\n\n@group delete\n@endpoint DELETE /delete\n@desc The request's DELETE parameters.\n@returns(200) The request's DELETE parameters.\n\n@endgroup\n\n@group deny\n@endpoint GET /deny\n@desc Returns page denied by robots.txt rules.\n@returns(200) Denied message\n\n@endgroup\n\n@group digest-auth\n@endpoint GET /digest-auth/{qop}/{user}/{passwd}\n@desc Prompts the user for authorization using Digest Auth.\n@optional {qop: any # auth or auth-int, user: any, passwd: any}\n@returns(200) Sucessful authentication.\n@errors {401: Unsuccessful authentication.}\n\n@endpoint GET /digest-auth/{qop}/{user}/{passwd}/{algorithm}\n@desc Prompts the user for authorization using Digest Auth + Algorithm.\n@optional {qop: any # auth or auth-int, user: any, passwd: any, algorithm: any # MD5, SHA-256, SHA-512}\n@returns(200) Sucessful authentication.\n@errors {401: Unsuccessful authentication.}\n\n@endpoint GET /digest-auth/{qop}/{user}/{passwd}/{algorithm}/{stale_after}\n@desc Prompts the user for authorization using Digest Auth + Algorithm.\n@optional {qop: any # auth or auth-int, user: any, passwd: any, algorithm: any # MD5, SHA-256, SHA-512, stale_after: any}\n@returns(200) Sucessful authentication.\n@errors {401: Unsuccessful authentication.}\n\n@endgroup\n\n@group drip\n@endpoint GET /drip\n@desc Drips data over a duration after an optional initial delay.\n@optional {duration: any # The amount of time (in seconds) over which to drip each byte, numbytes: any # The number of bytes to respond with, code: any # The response code that will be returned, delay: any # The amount of time (in seconds) to delay before responding}\n@returns(200) A dripped response.\n\n@endgroup\n\n@group encoding\n@endpoint GET /encoding/utf8\n@desc Returns a UTF-8 encoded body.\n@returns(200) Encoded UTF-8 content.\n\n@endgroup\n\n@group etag\n@endpoint GET /etag/{etag}\n@desc Assumes the resource has the given etag and responds to If-None-Match and If-Match headers appropriately.\n@optional {If-None-Match: any, If-Match: any}\n@returns(200) Normal response\n@errors {412: match}\n\n@endgroup\n\n@group get\n@endpoint GET /get\n@desc The request's query parameters.\n@returns(200) The request's query parameters.\n\n@endgroup\n\n@group gzip\n@endpoint GET /gzip\n@desc Returns GZip-encoded data.\n@returns(200) GZip-encoded data.\n\n@endgroup\n\n@group headers\n@endpoint GET /headers\n@desc Return the incoming request's HTTP headers.\n@returns(200) The request's headers.\n\n@endgroup\n\n@group hidden-basic-auth\n@endpoint GET /hidden-basic-auth/{user}/{passwd}\n@desc Prompts the user for authorization using HTTP Basic Auth.\n@optional {user: any, passwd: any}\n@returns(200) Sucessful authentication.\n@errors {404: Unsuccessful authentication.}\n\n@endgroup\n\n@group html\n@endpoint GET /html\n@desc Returns a simple HTML document.\n@returns(200) An HTML page.\n\n@endgroup\n\n@group image\n@endpoint GET /image\n@desc Returns a simple image of the type suggest by the Accept header.\n@returns(200) An image.\n\n@endpoint GET /image/jpeg\n@desc Returns a simple JPEG image.\n@returns(200) A JPEG image.\n\n@endpoint GET /image/png\n@desc Returns a simple PNG image.\n@returns(200) A PNG image.\n\n@endpoint GET /image/svg\n@desc Returns a simple SVG image.\n@returns(200) An SVG image.\n\n@endpoint GET /image/webp\n@desc Returns a simple WEBP image.\n@returns(200) A WEBP image.\n\n@endgroup\n\n@group ip\n@endpoint GET /ip\n@desc Returns the requester's IP Address.\n@returns(200) The Requester's IP Address.\n\n@endgroup\n\n@group json\n@endpoint GET /json\n@desc Returns a simple JSON document.\n@returns(200) An JSON document.\n\n@endgroup\n\n@group links\n@endpoint GET /links/{n}/{offset}\n@desc Generate a page containing n links to other pages which do the same.\n@optional {n: any, offset: any}\n@returns(200) HTML links.\n\n@endgroup\n\n@group patch\n@endpoint PATCH /patch\n@desc The request's PATCH parameters.\n@returns(200) The request's PATCH parameters.\n\n@endgroup\n\n@group post\n@endpoint POST /post\n@desc The request's POST parameters.\n@returns(200) The request's POST parameters.\n\n@endgroup\n\n@group put\n@endpoint PUT /put\n@desc The request's PUT parameters.\n@returns(200) The request's PUT parameters.\n\n@endgroup\n\n@group range\n@endpoint GET /range/{numbytes}\n@desc Streams n random bytes generated with given seed, at given chunk size per packet.\n@optional {numbytes: any}\n@returns(200) Bytes.\n\n@endgroup\n\n@group redirect-to\n@endpoint DELETE /redirect-to\n@desc 302/3XX Redirects to the given URL.\n@errors {302: A redirection.}\n\n@endpoint GET /redirect-to\n@desc 302/3XX Redirects to the given URL.\n@required {url: any}\n@optional {status_code: any}\n@errors {302: A redirection.}\n\n@endpoint PATCH /redirect-to\n@desc 302/3XX Redirects to the given URL.\n@errors {302: A redirection.}\n\n@endpoint POST /redirect-to\n@desc 302/3XX Redirects to the given URL.\n@required {url: any}\n@optional {status_code: any}\n@errors {302: A redirection.}\n\n@endpoint PUT /redirect-to\n@desc 302/3XX Redirects to the given URL.\n@required {url: any}\n@optional {status_code: any}\n@errors {302: A redirection.}\n\n@endgroup\n\n@group redirect\n@endpoint GET /redirect/{n}\n@desc 302 Redirects n times.\n@optional {n: any}\n@errors {302: A redirection.}\n\n@endgroup\n\n@group relative-redirect\n@endpoint GET /relative-redirect/{n}\n@desc Relatively 302 Redirects n times.\n@optional {n: any}\n@errors {302: A redirection.}\n\n@endgroup\n\n@group response-headers\n@endpoint GET /response-headers\n@desc Returns a set of response headers from the query string.\n@optional {freeform: map}\n@returns(200) Response headers\n\n@endpoint POST /response-headers\n@desc Returns a set of response headers from the query string.\n@optional {freeform: map}\n@returns(200) Response headers\n\n@endgroup\n\n@group robots.txt\n@endpoint GET /robots.txt\n@desc Returns some robots.txt rules.\n@returns(200) Robots file\n\n@endgroup\n\n@group status\n@endpoint DELETE /status/{codes}\n@desc Return status code or random status code if more than one are given\n@optional {codes: any}\n@returns(200) Success\n@errors {100: Informational responses, 300: Redirection, 400: Client Errors, 500: Server Errors}\n\n@endpoint GET /status/{codes}\n@desc Return status code or random status code if more than one are given\n@optional {codes: any}\n@returns(200) Success\n@errors {100: Informational responses, 300: Redirection, 400: Client Errors, 500: Server Errors}\n\n@endpoint PATCH /status/{codes}\n@desc Return status code or random status code if more than one are given\n@optional {codes: any}\n@returns(200) Success\n@errors {100: Informational responses, 300: Redirection, 400: Client Errors, 500: Server Errors}\n\n@endpoint POST /status/{codes}\n@desc Return status code or random status code if more than one are given\n@optional {codes: any}\n@returns(200) Success\n@errors {100: Informational responses, 300: Redirection, 400: Client Errors, 500: Server Errors}\n\n@endpoint PUT /status/{codes}\n@desc Return status code or random status code if more than one are given\n@optional {codes: any}\n@returns(200) Success\n@errors {100: Informational responses, 300: Redirection, 400: Client Errors, 500: Server Errors}\n\n@endgroup\n\n@group stream-bytes\n@endpoint GET /stream-bytes/{n}\n@desc Streams n random bytes generated with given seed, at given chunk size per packet.\n@optional {n: any}\n@returns(200) Bytes.\n\n@endgroup\n\n@group stream\n@endpoint GET /stream/{n}\n@desc Stream n JSON responses\n@optional {n: any}\n@returns(200) Streamed JSON responses.\n\n@endgroup\n\n@group user-agent\n@endpoint GET /user-agent\n@desc Return the incoming requests's User-Agent header.\n@returns(200) The request's User-Agent header.\n\n@endgroup\n\n@group uuid\n@endpoint GET /uuid\n@desc Return a UUID4.\n@returns(200) A UUID4.\n\n@endgroup\n\n@group xml\n@endpoint GET /xml\n@desc Returns a simple XML document.\n@returns(200) An XML document.\n\n@endgroup\n\n@end\n"}