Image of the Argo sailing


Argo is a package for the Racket programming language validating JSON data against a JSON Schema.

If you deal with data in the JSON format and want to check (or ensure) that it adheres to some sensible structural constraints, JSON Schema is a powerful tool to have around. And if you’re using JSON Schema, consider using Argo.

Argo supports the latest JSON Schema (draft 06), including all semantic validation keywords (date-time, email, hostname, ipv4, ipv6, uri, uri-reference, uri-template and json-pointer.

How to install and use

You don’t have to be a Racket programmer to use Argo, but you do need to have Racket on your machine to use Argo.

First, install Racket (click the big Download link).

Second, once you’ve installed Racket, use raco, the standard Racket package manager, like so:

$ raco pkg install argo

To start validating JSON data against schemas, run:

$ raco argo validate schema.json data.json

Supporting Argo

I aim to make Argo the go-to JSON Schema validator for web developers, programmers, and data scientists and engineers. If you’d like to contribute to that goal, or if you just find Argo useful in your work, I’d be happy if you supported Argo development with a €5 donation.

Bug reports and feature requests

If you find that Argo doesn’t do what you want (feature request)—or if Argo does something wrong that it is supposed to do right (bug)—let me know. I love talking about JSON and Racket. You may reach me at

You’re also welcome to submit an issue on GitHub.

Further reading

To stay up-to-date with my Racket work, check out my blog over at

If you’re interested in building web sites or HTTP API services with Racket, you may be interested in Server: Racket—Practical Web Development with the Racket HTTP Server, my ebook on web programming in Racket.

Just getting started with Racket? Racket Weekend, my introductory course, may be just what you’re looking for.