Host API documentation for applications providing REST APIs, facilitating the design of good resource first APIs.

Base URL: https://api.apibuilder.io

Contact: Michael Bryzek mbryzek@alum.mit.edu http://twitter.com/mbryzek

License: MIT

application

Path: /:orgKey

GET /:orgKey/metadata/:applicationKey/versions

Returns the versions assocoated with the specified application. The latest version is the first result returned.

Parameters
NameTypeDescription
orgKey requiredstringPath
applicationKey requiredstringPath
limit requiredlongQuery default: 25 The number of records to return (max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[application_metadata_version]
401unit
404unit
GET /:orgKey/metadata/:applicationKey/versions/latest.txt

Returns the latest version number as a string

Parameters
NameTypeDescription
orgKey requiredstringPath
applicationKey requiredstringPath
Responses
CodeTypeDescription
200string
401unit
404unit
GET /:orgKey

Search all applications. Results are always paginated.

Parameters
NameTypeDescription
orgKey requiredstringPath The organization key for which to search applications
name stringQuery The name of an application. Case in-sensitive. Exact match
guid uuidQuery The guid of an application. Exact match
key stringQuery The key of an application. Case in-sensitive. Exact match
has_version booleanQuery If true, we return applications that have at least one version. If false, we return applications that have no versions in the system
limit requiredlongQuery default: 25 The number of records to return (max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
sort_by app_sort_byQuery
order sort_orderQuery
Responses
CodeTypeDescription
200[application]
POST /:orgKey

Create an application.

Parameters
NameTypeDescription
orgKey requiredstringPath
Responses
CodeTypeDescription
200application
409[error]
PUT /:orgKey/:applicationKey

Updates an application.

Parameters
NameTypeDescription
orgKey requiredstringPath
applicationKey requiredstringPath
Responses
CodeTypeDescription
200application
409[error]
DELETE /:orgKey/:applicationKey

Deletes a specific application and its associated versions.

Parameters
NameTypeDescription
orgKey requiredstringPath
applicationKey requiredstringPath
Responses
CodeTypeDescription
204unit
401unit
404unit
POST /:orgKey/:applicationKey/move

Moves application to a new organization.

Body
Parameters
NameTypeDescription
orgKey requiredstringPath
applicationKey requiredstringPath
Responses
CodeTypeDescription
200application
409[error]

attribute

Path: /attributes

GET /attributes

Search all attributes. Results are always paginated.

Parameters
NameTypeDescription
guid uuidQuery Find the watch with this guid.
name stringQuery Find attributes with this name. Case in-sensitive. Exact match
limit requiredlongQuery default: 25 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[attribute]
GET /attributes/:name

Returns the attribute with this name.

Parameters
NameTypeDescription
name requiredstringPath
Responses
CodeTypeDescription
200attribute
404unit
POST /attributes

Create a new attribute.

Responses
CodeTypeDescription
201attribute
401unit
409[error]
DELETE /attributes/:name

Deletes the attribute with this name. Only the user who created an attribute can delete it.

Parameters
NameTypeDescription
name requiredstringPath
Responses
CodeTypeDescription
204unit
401unit
404unit

authentication

Path: /authentications

GET /authentications/session/:id
Parameters
NameTypeDescription
id requiredstringPath
Responses
CodeTypeDescription
200authentication
404unit

batch

Path: /:orgKey/batch/applications

POST /:orgKey/batch/applications

Upsert multiple applications in one api call. Validation happens first - we store results only if ALL applications are valid

Parameters
NameTypeDescription
orgKey requiredstringPath
Responses
CodeTypeDescription
201batch
409[error]
POST /:orgKey/batch/applications/dryrun

Validate a batch of applications without SAVING anything to the database

Parameters
NameTypeDescription
orgKey requiredstringPath
Responses
CodeTypeDescription
201batch
409[error]
POST /:orgKey/batch/applications/download

Download multiple applications in one api call.

Parameters
NameTypeDescription
orgKey requiredstringPath
Responses
CodeTypeDescription
201batch
409[error]

change

Path: /changes

GET /changes
Parameters
NameTypeDescription
org_key stringQuery Filter changes to those made for the organization with this key.
application_key stringQuery Filter changes to those made for the application with this key.
from stringQuery Filter changes to those made from this version.
to stringQuery Filter changes to those made to this version.
type stringQuery The type of diff to return.
limit requiredlongQuery default: 25 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[change]

code

Path: /:orgKey/:applicationKey/:version

POST /:orgKey/:applicationKey/:version/form

Create an invocation form. This is useful primarily for debugging when you want to see exactly what content is being forwarded to the generator

Body
Parameters
NameTypeDescription
orgKey requiredstringPath
applicationKey requiredstringPath
version requiredstringPath
Responses
CodeTypeDescription
200io.apibuilder.generator.v0.models.invocation_form
409[error]
GET /:orgKey/:applicationKey/:version/:generatorKey

Generate code for a specific version of an application.

Parameters
NameTypeDescription
orgKey requiredstringPath The organization key for which to generate code
applicationKey requiredstringPath The application key for which to generate code
version requiredstringPath The version of this application. Can be 'latest'
generatorKey requiredstringPath The key of the generator to invoke
Responses
CodeTypeDescription
200code
409[error]If the target, version, and/or generator are invalid.
POST /:orgKey/:applicationKey/:version/:generatorKey

Generate code for a specific version of an application.

Body
Parameters
NameTypeDescription
orgKey requiredstringPath The organization key for which to generate code
applicationKey requiredstringPath The application key for which to generate code
version requiredstringPath The version of this application. Can be 'latest'
generatorKey requiredstringPath The key of the generator to invoke
Responses
CodeTypeDescription
200code
409[error]If the target, version, and/or generator are invalid.

domain

Path: /domains/:orgKey

POST /domains/:orgKey

Add a domain to this organization

Body
Parameters
NameTypeDescription
orgKey requiredstringPath
Responses
CodeTypeDescription
200domain
409[error]
DELETE /domains/:orgKey/:name

Remove this domain from this organization

Parameters
NameTypeDescription
orgKey requiredstringPath
name requiredstringPath
Responses
CodeTypeDescription
204unit
401unit
404unit

email_verification_confirmation_form

Path: /email_verification_confirmations

POST /email_verification_confirmations

Validate an email address using a token.

Responses
CodeTypeDescription
204unit
409[error]

generator_service

Path: /generator_services

GET /generator_services

List all generator services

Parameters
NameTypeDescription
guid uuidQuery
uri stringQuery
generator_key stringQuery
limit requiredlongQuery default: 100 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[generator_service]
GET /generator_services/:guid
Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
200generator_service
404unit
POST /generator_services
Responses
CodeTypeDescription
200generator_service
409[error]
DELETE /generator_services/:guid

Deletes a generator service.

Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
204unit
401unit
404unit

generator_with_service

Path: /generators

GET /generators

List all available generators

Parameters
NameTypeDescription
guid uuidQuery Filter to generator with this guid
service_guid uuidQuery Filter to generator from this service
service_uri stringQuery Filter to generator from this service URI
attribute_name stringQuery Filter to generators that use this attribute
key stringQuery Filter to generator with this key
limit requiredlongQuery default: 100 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[generator_with_service]
GET /generators/:key
Parameters
NameTypeDescription
key requiredstringPath
Responses
CodeTypeDescription
200generator_with_service
404unit

io.apibuilder.generator.v0.models.healthcheck

Path: /_internal_

GET /_internal_/healthcheck
Responses
CodeTypeDescription
200io.apibuilder.generator.v0.models.healthcheck

item

Path: /items

GET /items
Parameters
NameTypeDescription
q stringQuery The search query. At the moment, we do case insensitive exact match search.
limit requiredlongQuery default: 25 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[item]
GET /items/:guid
Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
200item
404unit

membership

Path: /memberships

GET /memberships

Search all memberships. Results are always paginated.

Parameters
NameTypeDescription
org_guid uuidQuery
org_key stringQuery
user_guid uuidQuery
role io.apibuilder.common.v0.enums.membership_roleQuery
limit requiredlongQuery default: 25 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[membership]
GET /memberships/:guid
Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
200membership
404unit
DELETE /memberships/:guid
Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
204unit
401unit
404unit

membership_request

Path: /membership_requests

GET /membership_requests

Search all membership requests. Results are always paginated.

Parameters
NameTypeDescription
org_guid uuidQuery
org_key stringQuery
user_guid uuidQuery
role io.apibuilder.common.v0.enums.membership_roleQuery
limit requiredlongQuery default: 25 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[membership_request]
POST /membership_requests

Create a membership request

Parameters
NameTypeDescription
org_guid requireduuidForm
user_guid requireduuidForm
role requiredio.apibuilder.common.v0.enums.membership_roleForm
Responses
CodeTypeDescription
200membership_request
409[error]
POST /membership_requests/:guid/accept

Accepts this membership request. User will become a member of the specified organization.

Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
204unit
409[error]
POST /membership_requests/:guid/decline

Declines this membership request. User will NOT become a member of the specified organization.

Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
204unit
409[error]

organization

Path: /organizations

GET /organizations

Search all organizations. Results are always paginated.

Parameters
NameTypeDescription
guid uuidQuery Finds the organization with this guid, if any
user_guid uuidQuery If specified, restricts to organizations that this user is specifically a member of (e.g. will exclude public organizations with which the user does not have a direct membership).
key stringQuery Find organizations with this key. Case in-sensitive. Exact match
name stringQuery Find organizations with this name. Case in-sensitive. Exact match
namespace stringQuery Find organizations with this namespace. Case in-sensitive. Exact match
limit requiredlongQuery default: 25 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[organization]
GET /organizations/:key

Returns the organization with this key.

Parameters
NameTypeDescription
key requiredstringPath
Responses
CodeTypeDescription
200organization
404unit
POST /organizations

Create a new organization.

Responses
CodeTypeDescription
200organization
409[error]
PUT /organizations/:key

Update an organization.

Parameters
NameTypeDescription
key requiredstringPath
Responses
CodeTypeDescription
200organization
409[error]
DELETE /organizations/:key

Deletes an organization and all of its associated applications.

Parameters
NameTypeDescription
key requiredstringPath
Responses
CodeTypeDescription
204unit
401unit
404unit
GET /organizations/:key/attributes

Returns all attribute values for this organization. Results are always paginated.

Parameters
NameTypeDescription
key requiredstringPath
name stringQuery Find the values for the attribute with this name.
limit requiredlongQuery default: 25 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[attribute_value]
GET /organizations/:key/attributes/:name

Returns the attribute value with this name.

Parameters
NameTypeDescription
key requiredstringPath
name requiredstringPath
Responses
CodeTypeDescription
200attribute_value
404unit
PUT /organizations/:key/attributes/:name

Create or update a new attribute value.

Parameters
NameTypeDescription
key requiredstringPath
name requiredstringPath
Responses
CodeTypeDescription
200attribute_value
201attribute_value
404unit
409[error]
DELETE /organizations/:key/attributes/:name

Deletes the attribute value with the specified name. Only the user who created an attribute value can delete it.

Parameters
NameTypeDescription
key requiredstringPath
name requiredstringPath
Responses
CodeTypeDescription
204unit
401unit
404unit

password_reset

Path: /password_resets

POST /password_resets

Change the password for this token. If the token is invalid, has been used, or otherwise no longer can be applied, errors will be returned as 409s. A 204 represents that the user has successfully changed their password.

Responses
CodeTypeDescription
200authentication
409[error]

password_reset_request

Path: /password_reset_requests

POST /password_reset_requests

Create a new password reset. This will send the user an email with a link to reset their password.

Responses
CodeTypeDescription
204unit
409[error]

subscription

Path: /subscriptions

GET /subscriptions

Search subscriptions. Always paginated.

Parameters
NameTypeDescription
guid uuidQuery Find the subscription with this guid.
organization_key stringQuery Find subscriptions for this organization.
user_guid uuidQuery Find subscriptions for this user.
publication publicationQuery Find subscriptions for this publication.
limit requiredlongQuery default: 25 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[subscription]
GET /subscriptions/:guid

Returns information about a specific subscription.

Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
200subscription
404unit
POST /subscriptions

Create a new subscription.

Responses
CodeTypeDescription
201subscription
409[error]
DELETE /subscriptions/:guid
Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
204unit
401unit
404unit

token

Path: /tokens

GET /tokens/users/:user_guid
Parameters
NameTypeDescription
user_guid requireduuidPath
guid uuidQuery
limit requiredlongQuery default: 25 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[token]
GET /tokens/:guid/cleartext

Used to fetch the clear text token.

Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
200cleartext_token
404unit
POST /tokens

Create a new API token for this user

Responses
CodeTypeDescription
201token
409[error]
DELETE /tokens/:guid
Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
204unit
401unit
404unit

user

Path: /users

GET /users

Search for a specific user. You must specify at least 1 parameter - either a guid, email or token - and will receive back either 0 or 1 users.

Parameters
NameTypeDescription
guid uuidQuery Find user with this guid. Exact match
email stringQuery Find user with this email address. Case in-sensitive. Exact match
nickname stringQuery Find user with the specified nickname. For users that register via GitHub, this will be their GitHub username. Case in-sensitive. Exact match
token stringQuery Find the user with this API token. Exact match
Responses
CodeTypeDescription
200[user]
GET /users/:guid

Returns information about the user with this guid.

Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
200user
404unit
POST /users/authenticate

Used to authenticate a user with an email address and password. Successful authentication returns an instance of the user model. Failed authorizations of any kind are returned as a generic error with code user_authorization_failed.

Parameters
NameTypeDescription
email requiredstringForm
password requiredstringForm
Responses
CodeTypeDescription
200authentication
409[error]
POST /users/authenticate_github

Used to authenticate a user using a github access token. This is equivalent to running the following command to get the user info: curl -H 'Authorization: Bearer code' https://api.github.com/user

Parameters
NameTypeDescription
token requiredstringForm The GitHub assigned oauth token
Responses
CodeTypeDescription
200authentication
409[error]
POST /users

Create a new user.

Body
Responses
CodeTypeDescription
200user
409[error]
PUT /users/:guid

Updates information about the user with the specified guid.

Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
200user
409[error]

validation

Public resource that can accept JSON input and returns a validation object describing any validation errors.

Path: /validations

POST /validations
Body
string
Responses
CodeTypeDescription
200validation

version

Path: /:orgKey

GET /:orgKey/:applicationKey

Search all versions of this application. Results are always paginated.

Parameters
NameTypeDescription
orgKey requiredstringPath The organization key for which to search versions
applicationKey requiredstringPath The application key for which to search versions
limit requiredlongQuery default: 25 The number of records to return (max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[version]
GET /:orgKey/:applicationKey/:version

Retrieve a specific version of an application.

Parameters
NameTypeDescription
orgKey requiredstringPath
applicationKey requiredstringPath
version requiredstringPath The version of this application to download, or the keyword latest to get the latest version
Responses
CodeTypeDescription
200version
404unit
POST /:orgKey/:version

Create a new version for an application

Parameters
NameTypeDescription
orgKey requiredstringPath
version requiredstringPath
Responses
CodeTypeDescription
200version
409[error]
PUT /:orgKey/:applicationKey/:version

Upsert a version of an application

Parameters
NameTypeDescription
orgKey requiredstringPath
applicationKey requiredstringPath
version requiredstringPath
Responses
CodeTypeDescription
200version
409[error]
DELETE /:orgKey/:applicationKey/:version

Deletes a specific version.

Parameters
NameTypeDescription
orgKey requiredstringPath
applicationKey requiredstringPath
version requiredstringPath
Responses
CodeTypeDescription
204unit
401unit
404unit
GET /:orgKey/:applicationKey/:version/example/:type_name

Generates an example JSON document of the type with the specified name.

Parameters
NameTypeDescription
orgKey requiredstringPath
applicationKey requiredstringPath
version requiredstringPath The version of this application to download, or the keyword latest to get the latest version
type_name requiredstringPath The name of the type (e.g. model name) for which you would like to generate a sample json document
sub_type_name stringQuery The name of the sub-type for which you would like to generate a sample json document, e.g. a specific type of a union
optional_fields booleanQuery If true, we generate sample data for all optional fields. Otherwise the generated sample will contain only required fields, where applicable
Responses
CodeTypeDescription
200object
404unit

watch

Path: /watches

GET /watches

Search attributes. Always paginated.

Parameters
NameTypeDescription
guid uuidQuery Find the watch with this guid.
user_guid uuidQuery Find attributes for this user.
organization_key stringQuery Find attributes for this organization.
application_key stringQuery Find attributes for this application.
limit requiredlongQuery default: 25 The number of records to return (min: 1,max: 100)
offset requiredlongQuery default: 0 Used to paginate. First page of results is 0. (min: 0)
Responses
CodeTypeDescription
200[watch]
GET /watches/:guid

Returns information about a specific watch.

Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
200watch
404unit
GET /watches/check

Quick check if a user is watching a specific application.

Parameters
NameTypeDescription
user_guid uuidQuery The user for which we are checking. API returns false if the user guid is not provided
organization_key requiredstringQuery
application_key requiredstringQuery
Responses
CodeTypeDescription
200boolean
POST /watches

Create a new watch.

Responses
CodeTypeDescription
201watch
409[error]
DELETE /watches/:guid
Parameters
NameTypeDescription
guid requireduuidPath
Responses
CodeTypeDescription
204unit
401unit
404unit