API Builder


Fully describe your REST service in an intuitive JSON format. Start by creating a service below, or by downloading an example.

API Builder has a very intuitive format that is simple to learn from online docs or from user-contributed public services.

API Builder also has support for other input formats, including avro idl and swagger 2.0.

Convention over configuration

Start by describing your models. Then map your models to resources that expose the specific operations you would like to make available.

api.json is designed to guide developers to think carefully about their APIs, while making it easy to create services that align to the REST standard. By favoring convention over configuration in a few key places, it enables developers to create great REST APIs.

Simple native client libraries with no dependencies

Download native client libraries with no (or almost no) dependencies. We take special care to make sure that the client libraries are a pleasure to use.

Example from Ruby:

      client = MyService::Client.new("http://localhost:8000")

      organizations = client.organizations.get(:limit => 10, :offset => 0)
      organizations.each do |org|
        puts "Org %s is named %s" % [org.id, org.name]

      neworg = client.organizations.post(:name => "My org")
      puts "Created new org named %s" % neworg.name

Example from Scala:

      val client = new io.apibuilder.api.v0.Client("http://localhost:8000")

      val organizations = client.organizations.get(limit = 10, offset = 0)
      organizations.foreach { org =>
        println(s"Org ${org.name} is named ${org.id}")

      val neworg = client.organizations.post(name = "My org")
      println(s"Created new org named ${neworg.name}")
Getting Started