Paw – Advanced API tool for Mac
paw.cloud
paw.cloud
How many of these commenters make thousands of dollars every month as professional software engineers? How many make thousands each week? Paw is an extremely high quality, native Mac app, made by a small team trying to provide for their families by building software for other software engineers like all of us. It's a paid tool but it's probably the most sophisticated API testing tool that exists.
I've been a completely satisfied Paw user for over a year. It's been invaluable to me and I use it constantly. It is worth the money. It is more sophisticated with a far better user interface than anything else out there. Use the trial, buy it if you like it, but this pattern of comments saying Check Out Product Z, It's Like Product Y But Free (And Less Good) makes me hate coming to HN.
"Scientists find a new reason to explain why the sky appears blue."
HN: I know nothing about science but the sky is definitely azure, not blue.
Thing is, most of us don't care. I don't care if Paw engineers aren't selling their software. Just like they shouldn't care if I'm not selling mine. People are not going to stop using software that does 80% of what Paw does (but probably 100% of their needs) because it hurts their feelings.
If Product Z is less good than Paw but still fills my needs and is free, Product Z is going to be my choice. Bonus points if it's FOSS.
There's also the fact that not all of us work on Mac. I'd love to try out Paw, but unless I see a .deb somewhere, I'm out of luck. So my solution is to grab alternatives.
>Check Out Product Z, It's Like Product Y But Free (And Less Good) makes me hate coming to HN.
At the other extreme, we have software monoculture. Variety of software is good. Making FOSS software known is good. I'm actually going to go a step further and say that if FOSS software copies pixel for pixel Paw's UI and UX, that is a good thing.
That is of course assuming that the copy is done to have feature parity with the original. Copying solely to surf on the popularity of software while at the same time making it awful is a problem.
Also, if you don't want your work copied, don't put it out.
For me, the free aspect is important beyond just my paying for it: I create collections and I want them to be as accessible as possible.
As someone who is trying to bootstrap a SaaS app myself that is currently costing me a around $1000/mth, spending yet another $60 (converted to AU$) is something to think long and hard about, especially seeing as I have been using Postman for several versions with good results.
If someone can point out a compelling reason that Paw > Postman v2 because of x,y and z then I am happy to consider that and perhaps splurge for a licence. I don't think $70 is expensive for good software BTW, but I just haven't been sold on the value of it so far.
Paw users, what are things that Paw can do (better) than Postman?
Also, extensions (many are built by users) are bringing lots of extra features we would have not thought about ourselves: https://paw.cloud/extensions/
Environment variables in Paw can be nested or computed (with "dynamic values" described above). It can be useful, for example, to have an "Auth" variable that contains a pointer that accesses the "user.access_token" JSON path from inside the latest Login request, so you can later simply point to the "Auth" variable everywhere else. One other thing about envs, is that you can have independent groups of environments: a typical example is you have a "Server" group with envs called "Prod", "Staging", "Local" and independently a setup with user credentials or variables that are more like static globals (AWS Keys, etc.)…
Now regarding to the team syncing service, "Paw for Teams". It has branches, snapshots and full history. In a dev team, it means one dev can experiment stuff on the schema for API v2 while others are fixing bugs on API v1, and when API v2 is ready they can seamlessly merge the new updates back to the v1 branch. Also, we've made the choice not to be real-time synced, because it doesn't fit well to software development: when I'm experimenting stuff with an API I don't want others to be polluted by my temporary garbage. So instead you "commit" changes only when ready. More about Teams here: https://paw.cloud/teams
Last but not least, Paw locally encrypts with a randomly generated symmetric passphrase all credentials you enter in your projects, that means your server keys, access tokens, etc. are a lot safer. And now that you can (optionally) sync with Paw's backend, we certainly don't want to have your secrets in cleartext on our infra. As passphrases are never uploaded (obviously! but by default stored in OS X Keychain), it's the users responsibility to safeguard them and share them with their team (on 1Password or similar).
I find dynamic value really useful, but in most of my use, it's dynamic integer values that I need, and so the feature is much less useful than it could be. Could you please comment on when you plan on implementing dynamic integer values into Paw?
Also, it appears that you have changed which versions of OS X you support, but I had to overwrite my old version of Paw with the new one to find this out. I strongly suggest making it clear which version of OS X the new version of Paw requires before someone installs it.
About the OS X support, we haven't changed the requirements at all for this release. Paw is OS X 10.10+ (Yosemite+) since Paw 2.3. So maybe you had an earlier version? If you were prompted to update with no warning, that's a bug. Sorry about it! Will investigate…
Any ETA on being able to use integer values from JSON request?
If people stopped making comments recommending alternatives, similar things, and criticisms I probably wouldn't even look at the comments. I don't know if other people use HN like this, but it's the main reason the comments on here are valuable for me.
Good job guys! You made a fantastic product. I will always favor native apps over Electron hacks. I can't count how many times I've CMD+Tabbed to Chrome and hit CMD+W to close a tab, only to see Postman disappear. It disrupts my flow.
One thing though. I'm a developer, I know what I'm doing. Please make JSON Text the default option. Formatted JSON doesn't hurt or threaten me :) I expect to see my responses exactly as they are.
Edit: Unfortunately I have to edit this comment to give additional feedback about Paw. I'm using the 30 day trial, i.e. I am evaluating the product. Paw is running in the background, I'm not interacting with it in any way, but it jumps to foreground, just to show me a pop-up window informing me, that I have 29 days left of trial and should upgrade. No, thank you, I installed the app just an hour ago. I'm aware of the 30 day trial. No need to nag about it every 20 minutes, that will not prompt me to upgrade any sooner. If anything, it does quite the opposite.
However, my employer is extremely frugal and has very tight budgetary controls, so getting even the smallest expenses approved can be a huge hassle. So, perhaps ironically, I gravitate towards free products when doing professional development.
This is probably completely backwards, but it is what it is!
Anyway, I disagree with all the Paw bashing of course, but I think it is important for everyone to be aware of free alternatives - not necessarily because people feel "entitled" to free stuff, but that their circumstances may cause them to prefer not having to pay.
a) your colleagues will do the same so your team can use similar tools
b) you don't have to jump through hoops to install any software at all
Bugfix version Paw 3.0.5 has just been released https://paw.cloud/updates/3.0.5 (you can update from the app from Paw menu > Check for Updates…).
My main feature request (and I'm not sure if any competitor does this, so please inform me if it exists somewhere):
While Paw allows me to export code, which is cool and all, it would be very interesting to allow me to compose workflows, like, say Automator in macOS, including assertions, so that I could essentially compose and export integration tests with Paw. It'd be neat to see some more generally API-definition features hit Paw, or maybe a companion app that plays nicely with Paw to do the definition half of things, compatible with Swagger and whatnot.
Clearly not a well-thought-out idea, but I think there's space in Paw's domain for some form of what I'm talking about.
Although it looks like Paw has potential for something similar with its extensions. It already has some sort of javascript availability.
https://medium.com/ios-os-x-development/make-your-app-extens...
Second, we are currently brainstorming around the idea of a good automation app. So somehow the two ideas may merge. We're not sure yet what would make sense for automation, but for assertions testing, for sure it's in the pipeline!
-Micha from Paw
Secondly, there are indeed many similar tools, but I've found that Paw in particular has well-thought-out implementations of a number of useful features (cookies, JSON parsing, auth methods, history) as well as a neat way of managing requests across environments e.g. dev machine vs test server vs production API.
Paw isn't the only tool I use when testing/developing API endpoints, but I find it to be the most featureful while also playing nice as a Mac app, with a decent UI and the expected things like remembering my previous window positions/states the next time I launch it.
https://chrome.google.com/webstore/detail/insomnia-rest-clie...
Though, it looks like it is in beta, and I don't see any way to do cloud/team syncing.
So far, 3.0 ditches the Chrome dependency and provides a much nicer UI, but more advanced features like sync and versioning are in the works!
~ Gregory
The Mac App Store is absolutely horrible (lots of bugs, slow, inconsistent, almost unusable, absurd certificate expiration issues that are completely embarrassing for a company like Apple, etc.) and Apple has completely ignored all developers who use it... but this is exactly why I always prefer buying from it. I don’t want some nobody developer harvesting my information, and selling/renting it off to some who knows who either now or some years down the line when the company folds.
Please have respect for your potential paying customers and drop these kinds of practices. Other than recovering a potentially lost license key, there is absolutely nothing I need from you, including any and all “news or updates”, after I have purchased the app. Therefore you should only really need some unique value (like the hash of an email address) for that.
Regarding the app, Paw is friggin amazing. I was lucky to get it back when it was much cheaper, but it's definitely still worth the $49 even now. The team stuff is interesting too, as me and my guys share our exports all the time.
The application hijacks mouse events for custom widgets that don't function as expected. It takes far too much pointer precision to manage the request list and the groups. Half the time the drag-and-drop glitches so that you are highlighting rows without actually having the item with the cursor. You also cannot drop a group to the end of the list. Similar problem in the environments config window: add a second environment for a variable; the column widths are too short to see the variable's value, so you try to resize the columns and it doesn't work even though the resize icon appears on hover.
The "JSON" response format is hideous and for some reason the default. The "JSON Text" format is what I want and switch to, but this fact is not remembered and every single new response resets back to the ugly xml-tree-like format.
By the way, trying to click the help icon for dynamic values opens the documentation to a page[1] that doesn't load due to an encoded '#' symbol (%23). Again, a sign of a final product with very little QA, being sold at a fairly premium price for which one expects quality.
The UI and interactions are far from seamless. The constant harassment of a popup trying to get me to upgrade is the last straw. When a user is on trial, you don't interrupt their workflow every few minutes.
[1] https://paw.cloud/docs/dynamic-values/response%23Response_Bo...
I've tried using postman but it just isn't the same. Paw is much more efficient with screen space, and I love being able to copy any request from Chrome directly into paw and being able to tinker with it right away.
EDIT - didn't realize this post was for Paw 3, which just became available. Installing now and excited to try it!
It would seem like best practices is that all of this is part of your automated tests. Tests that are checked in to your repo and written in code and part of your CI. How does a native app that is OSX only fit in that scenario? Or maybe I'm not understanding it?
There's a feature in Paw which let's you generate code in multiple languages for any request that's already in Paw. May be people are using it as a starting point to write tests.
But that's actually a great question. We are asking ourselves the same here at Paw: should our app offer a testing/assertions feature?
Our own server backend is in Django using the Django REST Framework (it's an amazing tool btw) and clearly unit testing done inside the web framework is the right thing to do. Good frameworks have mocking libraries, and unit tests allows you to exercice all parts of the code (not only API facing). So why testing in an app like Paw? And should we encourage "bad practices" with a new feature that encourages users to have request/response assertions in our app instead proper unit tests?
First, everyone isn't writing tests ;) And sometimes maybe for good reasons (quickly putting together an MVP…). Assertions can be a quick alternative before writing proper unit tests. But mostly, we were thinking about assertions in Paw as a great way to do quick integration testing. For example, we've released Paw 3 recently, pushed server updates on an hourly basis, and we had no way to verify after a deploy that all the website's pages were up and that API endpoints were behaving as expected. Sure, the CI was saying that tests are passing, but who knows if someone has changed settings on AWS or on 3rd party tools (Stripe, Algolia…)? We would have loved to have assertions ourselves…
EDIT: Wow! Just saw that the upgrade to v3 is free for v2 users! Nice surprise!
- fetch huge json
- collapse first level fields
- leave node/subnode of interest open
- change backend
- refresh paw, and see changes way faster, coz it will show only open subtree
really useful for large json responses! (Postman dies on those)
But no, it's not a good team solution.
And I'd agree that Paw is subjectively more "nice", but I'm not sure I'd agree it's 12x more nice...
If it were $9.99 instead of $49.99, I would have already purchased it. As it stands, I'm sticking with Hypernap, which gets the job done for my needs.
I don't know if it does that, as I've never used it, and don't use macOS.
There are other things it could save instead of or in addition to time: Hassle, maybe it doesn't have any external dependencies or complicated setup; stress, maybe it works reliably while others are buggy and unreliable; etc.
Again, I don't know. And, I tend to choose OSS solutions, even when it costs me more time/hassle/stress. But, there's a number of reasons one might choose a more expensive tool that does roughly the same job as lower cost alternatives, and it might be the right economic decision to do so.
I don't understand why developers throw their arms in the air over pricing. Try out the app; if it has everything you will ever need out of such a tool and it greatly improves your productivity every single day... a one-time $50 payment is nothing. It's the cost of going out for dinner one evening.
I've been giving feedback to the postman team and hope to see it continue to improve. The electron desktop app was a big step forward, but there is still lots of room to improve.
Paw looks really good. I'll definitely give that a try, especially if the team sharing features are good.
Paw looks gorgeous and very nicely featured. Let's see how it works on Monday against the Niantic APIs :)
I hadn't heard of Paw, but based on the screenshots and positive reviews in the comments, I'll be giving the trial a go. Fingers crossed!
I also got familiar with Stoplight.io - which I have found to be a little bit harder to use but has a large array of features that I think could inspire a lot of developers to build and grow the API dev community
aaand I don't work for either companies!
I can vouch for Paw; it's an awesome tool.
Paw definitely looks promising. The pricing seems a little steep though.
For now though, I'm super excited about the new Paw app.
Paw helps me compose arbitrary calls faster. It also helps me just keep track of and search API calls really easily, just by searching the request list. I have an API call right there, with the JSON body, and I don't have to pull up the API docs. It's just way better than having a bunch of little shell scripts for these API calls, and better than having a big, ugly, stupid text file full of API calls, because I can execute them, and it really helps in composing them.
It just helps with a lot of little random stuff. Like, if you tell it you're doing a JSON-body form post, and you've got quote marks in there, it'll get those quotes escaped right to get it embedded in the JSON.
If you're a heavy RESTful API user, I'd say just give it a try for a month and see if you feel like it's worth it. I thought it was.
There's command history, and if you're executing calls multiple times in a row and might want to see what changed between them later, the history is great. You can scroll back in your terminal, sure, but you tend to close terminal windows and lose the output. It just keeps everything glued together, it's really much more coherent than trying to throw around a lot of disparate API calls in a terminal with curl (or httpie.)
That being said, I do find it to be complementary to curl | jq. For one, the "keypath" filter in the http exchange pane of Paw doesn't take anything close to a full jq-like syntax. I pretty frequently use the "curl" code generator (it's got an httpie code generator as well, but it doesn't seem that one is as good at shell-quoting edge cases. Not sure who maintains that extension and if it's open-source, but if you love it, you might be able to help fix it if it interferes with your workflow) to copy out the call I composed, and even executed in Paw, so that I can do some jq mangling. (Or i could just copy out the json body if I didn't want to re-execute the call.)
If slinging RESTful API calls is a significant part of your day, you're almost certainly going to find value in something like Paw. It's got a 1 month free trial. I tried it, and didn't really plan to buy it, but a month ended, and I was using it and liked it.
Hopefully not the C++ bindings! https://github.com/RNCryptor/RNCryptor-cpp/issues/2
But anyway, there's already a HAR importer, you can install it here as an extension https://paw.cloud/extensions/HARImporter
Also, we're working on a powerful API format transformer that we will release more officially soon, but it's already on GitHub: https://github.com/luckymarmot/api-flow That will allow us to release exporters for Swagger, RAML, HAR soon as well as formats of other clients like Postman and DHC Client.
If you're curious about writing an exporter/generator though here are some steps: https://paw.cloud/docs/extensions/create-code-generator
(Disclaimer, Paw guy here…)
Implement core features, then implement a great API for 3P (or your own!) developers to add rich feature sets to the app that some demographics might find helpful.
You know the difference, quit trolling.
Ask authors of Macaw what good it did them or did Web flow actually eat their lunch.
As far as I am concerned if a dev tool isn't three platforms crossplatform it didn't need to exist at all. Don't be surprised if it's another "yeah I remember them" niche thing in a couple of years. Existence of Postman and Insomnia is already a burden for this product, being OSX only will likely limit it's eeach to Starbucks dwelling hipsters from SoCa.