Skip to content

Slingshot - Another kind of API client

Consider this our manifest - our promise to you.

Why yet another API client?

There is a lofty goal behind Slingshot that I believe hasn’t really been reached by any of the other main API clients - and that is - just like curl: To be the default go-to app for making HTTP requests and to be the preferred API client by most. But unlike curl, for the web.

To functionally reach this goal, there are a number of features that need to be supported and a number of philosophical decisions that need to be followed:

No account can be required

There is just no sense in asking for credentials and centrally logging your activities just to make an HTTP request or testing out an API. An account can provide value-added functionally for those who want or need it, but it can never be a requirement for the vast majority of an API client’s functionality.

It needs to be blazing fast

Web based API clients is a category of software that seems to be unreasonably slow and bloated for no particular reason. Blazing fast apps change user behavior, and is a hard requirement for a piece of software that seeks to become a default go-to app.

It must be local-first

Since an account cannot be required for this type of app, it just follows that all your data must be possible to store locally. Slingshot does this by leveraging your browser’s built-in IndexDB database. None of your data ever needs to pass through our servers1. Also, we don’t have any particular interest in hoarding your data or having to store possible secrets used for authentication - and we're hopeful you don’t mind keeping that data to yourself either.

It must be possible to just “paste and go”

If you see a curl example online that you want to test out but you have no terminal app or shell readily available, you shouldn’t have to manually copy-and-paste all parameters into the equivalent Slingshot input field, instead you should just be able to “paste-and-go”.

It must work on any device

We make a slight liberal interpretation of what “any device” means and define it as it should work on recent versions of Chrome and Firefox on both desktop and mobile, the main difference here from other products is mobile where many other apps struggle.

It must play well with others

A go-to app must allow you to import data, export data, copy-and-paste data and recognize commonly used formats of data which is why Slingshot allows you to easily copy and share the requests you do and export and import entire collections in different formats.

It needs to be highly competent

Beyond allowing you to make all sorts of requests, a competent HTTP client should also help you with more advanced capability such as authentication and properly present returned data in a somewhat context-relevant way.


Beyond this there are yet another set of slightly more ideological decisions we try to follow:

It should respect your privacy

Just like it doesn’t make sense to require an account to make an HTTP request, it just doesn’t make sense to grab any of your data that is not strictly necessary to use the app - or even worse, to actively (or even passively) share this with third parties. This is why Slingshot doesn’t collect any telemetry and doesn’t leverage any third-party analytics tools.

It should be free and open-source

Beyond the many benefits inherent in FOSS software, there are primarily three additional benefits we see from publishing the source code of Slingshot and picking (what we believe is) a great license:

  • It allows us to prove that it does what it says on the tin.
  • Since it runs entirely in your browser on your computer anyways, there is no real reason for us to hide the original source code (all it really does is benefiting those who’d want to see/tinker/use it).
  • Sharing it with a GPL license allows others to use it anyway they want as well, but prohibits the possibility to making it proprietary.

It should optionally allow you to sync your data

We all have more than one device and beyond that, we might want to collaborate on our data with our colleagues and friends. Also, since Slingshot is a webapp it’s just natural that it should leverage the fact that it’s an online app by allowing users to sync, share and collaborate on an API in convenient ways (to be supported soon).

It must be able to outlive me/us as maintainers

If, for whatever reason, we decide to discontinue the development of Slingshot, the app should be able to continue to exist, evolve and provide value to those who use it.

By following the principles above about being local-first and open-source, we hope that it will continue to be in a state where it’s actually never in need of our active care, development and hosting if the decision to leave it for other ventures would ever happen.

We hope that many of these features and decisions resonate with you as well and that you, if you haven’t already, would consider using Slingshot for many or all of your API testing needs.


  1. By default Slingshot is configured to use our hosted proxy server for HTTP requests, but you're free to run own instance of it (the code is available here and it can be configured here in the app).