{"id":15136853,"url":"https://github.com/knid/httpy","last_synced_at":"2025-06-17T01:06:50.233Z","repository":{"id":38207972,"uuid":"465264938","full_name":"knid/httpy","owner":"knid","description":"Modern, user-friendly, programmable command-line HTTP client for the API.","archived":false,"fork":false,"pushed_at":"2023-07-05T22:05:22.000Z","size":3595,"stargazers_count":25,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-11T07:54:39.018Z","etag":null,"topics":["api-client","api-testing","cli","client","command-line","curl","developer-tools","http","http-cli","http-client","httpcli","httptools","httpy","python","python3","requests","rest","terminal","web"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/knid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"knid"}},"created_at":"2022-03-02T10:49:22.000Z","updated_at":"2025-05-05T05:52:42.000Z","dependencies_parsed_at":"2024-01-09T08:53:21.490Z","dependency_job_id":null,"html_url":"https://github.com/knid/httpy","commit_stats":null,"previous_names":["sinankanidagli/httpy"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/knid/httpy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knid%2Fhttpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knid%2Fhttpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knid%2Fhttpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knid%2Fhttpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/knid","download_url":"https://codeload.github.com/knid/httpy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knid%2Fhttpy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260269429,"owners_count":22983645,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-client","api-testing","cli","client","command-line","curl","developer-tools","http","http-cli","http-client","httpcli","httptools","httpy","python","python3","requests","rest","terminal","web"],"created_at":"2024-09-26T06:41:36.066Z","updated_at":"2025-06-17T01:06:50.197Z","avatar_url":"https://github.com/knid.png","language":"Python","readme":"\n\u003ch2 align=\"center\"\u003e\n\u003cimg height=\"100\" alt=\"HTTPie\" src=\"https://raw.githubusercontent.com/SinanKanidagli/httpy/main/docs/httpy-logo.svg\" /\u003e\n    \u003cbr\u003e\n    Modern, user-friendly, programmable and filterable command-line HTTP client for the API\n\u003c/h2\u003e\n\n \u003cdiv align=\"center\"\u003e\n \n\u003ca href=\"https://www.codacy.com/gh/SinanKanidagli/httpy/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=SinanKanidagli/httpy\u0026amp;utm_campaign=Badge_Grade\"\u003e\u003cimg src=\"https://app.codacy.com/project/badge/Grade/e2534e38d4a14534bb358a108441020e\"/\u003e\u003c/a\u003e\n\u003ca href=\"[https://twitter.com/devknid](https://pypi.python.org/pypi/httpy-cli)\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/httpy-cli.svg?style=flat\u0026label=Latest\u0026color=%234B78E6\u0026logo=\u0026logoColor=white\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://twitter.com/devknid\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/devknid?style=flat\u0026color=%234B78E6\u0026logoColor=%234B78E6\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://www.codacy.com/gh/SinanKanidagli/httpy/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=SinanKanidagli/httpy\u0026amp;utm_campaign=Badge_Coverage\"\u003e\u003cimg src=\"https://app.codacy.com/project/badge/Coverage/e2534e38d4a14534bb358a108441020e\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.python.org/pypi/ansicolortags/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/l/ansicolortags.svg\" /\u003e\u003c/a\u003e\n\n\u003c!---\n\u003ca href=\"https://www.buymeacoffee.com/knid\"\u003e\u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\"/\u003e\u003c/a\u003e\n--\u003e\n\n\u003c/div\u003e\n\n\n[HTTPy](https://github.com/knid/httpy) is a command line HTTP client.\nIts purpose is to make duplicate web requests on a single line.\nhttpy is designed for testing, debugging, and generally interacting with APIs and HTTP servers.\nThe `httpy` command allows creating and sending arbitrary HTTP requests.\nThey use simple and natural syntax and provide formatted and colored output.\nUnder favour of its programmable structure, it can perform many tasks at the same time.\nFor example, you can pull data for user IDs 0, 1, and 2 at the same time\n\n\n\u003cimg src=\"https://raw.githubusercontent.com/SinanKanidagli/httpy/main/docs/httpy-animation.gif\" alt=\"httpy in action\" width=\"100%\"/\u003e\n\n\n## Features\n\n* Expressive and intuitive syntax\n\n* Formatted and colorized terminal output\n\n* Programmable requests\n    - Multiple requests one line\n\n    - Value increment each time\n\n    - Random number per request\n\n    - Read each value from the lines in the file\n\n    - Value per each request as a list of multiple values\n\n* Built-in JSON support\n\n* Arbitrary request data\n\n* Custom headers\n\n## Installation\n\n```bash\n$ pip3 install httpy-cli\n```\n\n## Usage\n\nSimple get request:\n\n```bash\nhttpy httpbin.org/get\n```\n\nSynopsis:\n\n```bash\n$ httpy \u003cURL\u003e \u003cMETHOD\u003e \u003cHEADERS,QUERIES,DATA\u003e --exec \u003cCOMMAND\u003e \u003cARGS\u003e\n```\n\nWe will use `api.service.com` as a API server for simulating requests.\n\nLet's start with a simple request:\n\n```bash\n$ httpy api.service.com/users\n```\n\nThis command will return all user objects. But if we want get only users with id 0, 1, 2, 3. Normally we have to do like this:\n\n```bash\n$ httpy api.service.com/users/0\n  ...\n$ httpy api.service.com/users/1\n  ...\n$ httpy api.service.com/users/2\n  ...\n$ httpy api.service.com/users/3\n  ...\n```\n\nBut we can do this in one line with `httpy`:\n\n```bash\n$ httpy 'api.service.com/users/{i}' -X i:0,1,2\n```\n\nThis will be return all response for these ids.\n\n`i` is arg name and it can be everything. And `-X` argument execute commands.\n\nVariable name must be same with inside of `{}`.\nWe can use `{i}` in everything. Headers, query values etc.\n\nWe can more simply the command:\n\n```bash\n$ httpy 'api.service.com/users/{i}' -X i:++:4\n```\n\nThis command increment the variable each time.\n\nThe command syntax must be like this:\n\n```bash\n\u003cVALUE\u003e:\u003cOPERATION\u003e:\u003cMAX_RUN\u003e\n```\n\nWe can use different operation:\n\n|Operation            |Description\n|---------------------|-------------------------------\n| `++` | Increment\n| `--` | Decrement\n| `rand(0,10)` | Random number from 1 to 10\n| `read(path/to/file)` | Read lines from file\n| `item1,item2` | List\n| `item` | Text\n\nFor exaple we can get random number and use in request:\n\n```bash\n$ httpy 'api.service.com/users/{i}' -X 'i:rand(1,10)'\n```\n\nor we can use file as a token list for deleting users:\n\n```bash\n$ httpy 'api.service.com/users/me' DELETE 'Authorization:{i}' -X 'i:read(tokens.txt)'\n```\n\nor we can fill db with random 100 data in one line (we will see only status with `-S`):\n\n```bash\n$ httpy 'api.service.com/books' POST 'id={i}' 'title=Book {i}' -X 'i:rand(1,3000):100' -S\n```\n\n\nWe can get only body with `-B` argument.\n\n\n```bash\n$ httpy 'api.service.com/users/{i}' -X i:3,4,5 -B\n```\n\nWe can use other arguments for choosing what will see:\n\n|Argument             |Description\n|---------------------|-------------------------------\n| `-B`, `--body`      | Only show body\n| `-H`, `--header`    | Only show headers\n| `-S`, `--status`    | Only show status\n\nWe can combine args. For example we can print only body and status with `-B` and `-S`:\n\n```bash\n$ httpy 'api.service.com/users/{i}' -X i:3,4,5 -B -S\n```\n\nThat's it. You can check [project page](https://github.com/knid/httpy) for all \"operations\" and all usages.\n## Community \u0026 support\n\n* Tweet httpy at [@KanidagliV](https://twitter.com/KanidagliV) on Twitter.\n* Use [StackOverflow](https://stackoverflow.com/questions/tagged/httpy) to ask questions and include a `httpy` tag.\n* Create [GitHub Issues](https://github.com/SinanKanidagil/httpy/issues) for bug reports and feature requests.\n\n## Contributing\n\nHave a look through existing [Issues](https://github.com/SinanKanidagli/httpy/issues) and [Pull Requests](https://github.com/SinanKanidagli/httpy/pulls) that you could help with. If you'd like to request a feature or report a bug, please [create a GitHub Issue](https://github.com/SinanKanidagli/httpy/issues) using one of the templates provided.\n\nSinan Kanidağlı © 2022\n\n","funding_links":["https://github.com/sponsors/knid","https://www.buymeacoffee.com/knid"],"categories":["API Clients"],"sub_categories":["Desktop"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknid%2Fhttpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknid%2Fhttpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknid%2Fhttpy/lists"}