{ "swagger" : "2.0", "info" : { "description" : "The Digital Linguistics (DLx) REST API", "version" : "0.3.1", "title" : "DLx", "contact" : { "name" : "Daniel W. Hieber", "url" : "http://danielhieber.com/", "email" : "dhieber@umail.ucsb.edu" }, "license" : { "name" : "MIT" } }, "host" : "api.digitallinguistics.io", "basePath" : "/v0", "tags" : [ { "name" : "Language", "description" : "Operations on Languages" }, { "name" : "Lexeme", "description" : "Operations on Lexemes" } ], "schemes" : [ "https" ], "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "security" : [ { "Authorization" : [ ] } ], "paths" : { "/languages" : { "get" : { "tags" : [ "Language" ], "summary" : "Get all Languages", "description" : "Retrieves all the Languages that the authenticated user or client has permission to access.", "operationId" : "getLanguages", "parameters" : [ { "name" : "continuation", "in" : "header", "description" : "The `dlx-continuation` header is used to send a continuation token with the request, when retrieving the next page of results.", "required" : false, "type" : "string" }, { "name" : "deleted", "in" : "query", "description" : "Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error.", "required" : false, "type" : "boolean", "default" : false }, { "name" : "ifModifiedSince", "in" : "header", "description" : "The `If-Modified-Since` header is used to retrieve only results modified since a given time. The value of this header must be a valid date string.", "required" : false, "type" : "string" }, { "name" : "maxItemCount", "in" : "header", "description" : "The `dlx-max-item-count` header is used to limit the number of results to a certain amount at a time (by default all results will be returned). If there are more results to be returned, a continuation token will also be sent in the `dlx-continuation` header.", "required" : false, "type" : "string" }, { "name" : "public", "in" : "query", "description" : "Set this parameter to `true` to include all publicly-accessible resources, not just those that the user is listed as an Owner, Contributor, or Viewer for.", "required" : false, "type" : "string", "default" : "false" } ], "responses" : { "200" : { "description" : "200: Operation successful.", "headers" : { "dlx-continuation" : { "type" : "string", "description" : "A continuation token for retrieving more results" }, "dlx-item-count" : { "type" : "string", "description" : "The number of items returned in the response" }, "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } }, "post" : { "tags" : [ "Language" ], "summary" : "Add a new Language", "operationId" : "addLanguage", "parameters" : [ { "in" : "body", "name" : "body", "description" : "A database resource to upsert", "required" : true, "schema" : { "type" : "object" } } ], "responses" : { "201" : { "description" : "201: The resource was created successfully.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } }, "put" : { "tags" : [ "Language" ], "summary" : "Upsert (create or replace) a Language", "description" : "Creates a Language if it does not yet exist (i.e. if the resource does not have an `id` property yet), or replaces the existing Language resource if it does. Note that this replaces the *entire* Language. It is not a partial update.", "operationId" : "upsertLanguage", "parameters" : [ { "in" : "body", "name" : "body", "description" : "A database resource to upsert", "required" : true, "schema" : { "type" : "object" } }, { "name" : "ifMatch", "in" : "header", "description" : "The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.", "required" : false, "type" : "string" } ], "responses" : { "201" : { "description" : "201: Upsert successful.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } } }, "/languages/{languageID}" : { "get" : { "tags" : [ "Language" ], "summary" : "Retrieve a Language by ID", "operationId" : "getLanguage", "parameters" : [ { "name" : "languageID", "in" : "path", "description" : "The ID of the Language to perform the operation on", "required" : true, "type" : "string" }, { "name" : "deleted", "in" : "query", "description" : "Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error.", "required" : false, "type" : "boolean", "default" : false }, { "name" : "ifNoneMatch", "in" : "header", "description" : "If `If-None-Match` header is used with GET requests to check whether you already have the most up-to-date version of the resource, and therefore do not need the resource sent again. The value of the `If-None-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to reduce bandwidth.", "required" : false, "type" : "string" } ], "responses" : { "200" : { "description" : "200: Operation successful.", "headers" : { "dlx-continuation" : { "type" : "string", "description" : "A continuation token for retrieving more results" }, "dlx-item-count" : { "type" : "string", "description" : "The number of items returned in the response" }, "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } }, "304" : { "description" : "304: Not modified." } } }, "delete" : { "tags" : [ "Language" ], "summary" : "Delete a Language by ID", "operationId" : "deleteLanguage", "parameters" : [ { "name" : "languageID", "in" : "path", "description" : "The ID of the Language to perform the operation on", "required" : true, "type" : "string" }, { "name" : "ifMatch", "in" : "header", "description" : "The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.", "required" : false, "type" : "string" } ], "responses" : { "204" : { "description" : "204: Delete operation successful." } } }, "patch" : { "tags" : [ "Language" ], "summary" : "Perform a partial update on a Language", "description" : "Performs a partial update the Language whose ID is specified in the URL. If the Language object has an `id` property, is ignored in favor of the ID in the URL.", "operationId" : "updateLanguage", "parameters" : [ { "name" : "languageID", "in" : "path", "description" : "The ID of the Language to perform the operation on", "required" : true, "type" : "string" }, { "in" : "body", "name" : "body", "description" : "A database resource to upsert", "required" : true, "schema" : { "type" : "object" } }, { "name" : "ifMatch", "in" : "header", "description" : "The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.", "required" : false, "type" : "string" } ], "responses" : { "200" : { "description" : "200: Update successful.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } } }, "/languages/{languageID}/lexemes" : { "get" : { "tags" : [ "Language", "Lexeme" ], "summary" : "Get all Lexemes for a Language", "operationId" : "getLexemesByLanguage", "parameters" : [ { "name" : "languageID", "in" : "path", "description" : "The ID of the Language to perform the operation on", "required" : true, "type" : "string" }, { "name" : "continuation", "in" : "header", "description" : "The `dlx-continuation` header is used to send a continuation token with the request, when retrieving the next page of results.", "required" : false, "type" : "string" }, { "name" : "deleted", "in" : "query", "description" : "Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error.", "required" : false, "type" : "boolean", "default" : false }, { "name" : "ifModifiedSince", "in" : "header", "description" : "The `If-Modified-Since` header is used to retrieve only results modified since a given time. The value of this header must be a valid date string.", "required" : false, "type" : "string" }, { "name" : "maxItemCount", "in" : "header", "description" : "The `dlx-max-item-count` header is used to limit the number of results to a certain amount at a time (by default all results will be returned). If there are more results to be returned, a continuation token will also be sent in the `dlx-continuation` header.", "required" : false, "type" : "string" }, { "name" : "public", "in" : "query", "description" : "Set this parameter to `true` to include all publicly-accessible resources, not just those that the user is listed as an Owner, Contributor, or Viewer for.", "required" : false, "type" : "string", "default" : "false" } ], "responses" : { "200" : { "description" : "200: Operation successful.", "headers" : { "dlx-continuation" : { "type" : "string", "description" : "A continuation token for retrieving more results" }, "dlx-item-count" : { "type" : "string", "description" : "The number of items returned in the response" }, "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } }, "post" : { "tags" : [ "Language", "Lexeme" ], "summary" : "Add a new Lexeme to a Language", "operationId" : "addLexemeByLanguage", "parameters" : [ { "name" : "languageID", "in" : "path", "description" : "The ID of the Language to perform the operation on", "required" : true, "type" : "string" } ], "responses" : { "201" : { "description" : "201: The resource was created successfully.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } }, "put" : { "tags" : [ "Language", "Lexeme" ], "summary" : "Upsert (add or replace) a Lexeme", "operationId" : "upsertLexemeByLanguage", "parameters" : [ { "name" : "languageID", "in" : "path", "description" : "The ID of the Language to perform the operation on", "required" : true, "type" : "string" }, { "name" : "ifMatch", "in" : "header", "description" : "The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.", "required" : false, "type" : "string" } ], "responses" : { "201" : { "description" : "201: Upsert successful.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } } }, "/languages/{languageID}/lexemes/{lexemeID}" : { "get" : { "tags" : [ "Language", "Lexeme" ], "summary" : "Get a Lexeme by ID", "operationId" : "getLexemeByLanguage", "parameters" : [ { "name" : "languageID", "in" : "path", "description" : "The ID of the Language to perform the operation on", "required" : true, "type" : "string" }, { "name" : "lexemeID", "in" : "path", "description" : "The ID of the Lexeme to perform the operation on", "required" : true, "type" : "string" }, { "name" : "deleted", "in" : "query", "description" : "Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error.", "required" : false, "type" : "boolean", "default" : false }, { "name" : "ifNoneMatch", "in" : "header", "description" : "If `If-None-Match` header is used with GET requests to check whether you already have the most up-to-date version of the resource, and therefore do not need the resource sent again. The value of the `If-None-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to reduce bandwidth.", "required" : false, "type" : "string" } ], "responses" : { "200" : { "description" : "200: Operation successful.", "headers" : { "dlx-continuation" : { "type" : "string", "description" : "A continuation token for retrieving more results" }, "dlx-item-count" : { "type" : "string", "description" : "The number of items returned in the response" }, "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } }, "304" : { "description" : "304: Not modified." } } }, "delete" : { "tags" : [ "Language", "Lexeme" ], "summary" : "Delete a Lexeme by ID", "operationId" : "deleteLexemeByLanguage", "parameters" : [ { "name" : "languageID", "in" : "path", "description" : "The ID of the Language to perform the operation on", "required" : true, "type" : "string" }, { "name" : "lexemeID", "in" : "path", "description" : "The ID of the Lexeme to perform the operation on", "required" : true, "type" : "string" }, { "name" : "ifMatch", "in" : "header", "description" : "The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.", "required" : false, "type" : "string" } ], "responses" : { "204" : { "description" : "204: Delete operation successful." } } }, "patch" : { "tags" : [ "Lexeme" ], "summary" : "Perform a partial update on a Lexeme", "operationId" : "updateLexemeByLanguage", "parameters" : [ { "name" : "languageID", "in" : "path", "description" : "The ID of the Language to perform the operation on", "required" : true, "type" : "string" }, { "name" : "lexemeID", "in" : "path", "description" : "The ID of the Lexeme to perform the operation on", "required" : true, "type" : "string" }, { "name" : "ifMatch", "in" : "header", "description" : "The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.", "required" : false, "type" : "string" } ], "responses" : { "200" : { "description" : "200: Update successful.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } } }, "/lexemes" : { "get" : { "tags" : [ "Lexeme" ], "summary" : "Get all Lexemes", "description" : "Retrieve all Lexemes that the authenticated user has permission to access. Include a `languageID` query parameter to limit results to Lexemes from a particular Language.", "operationId" : "getLexemes", "parameters" : [ { "name" : "continuation", "in" : "header", "description" : "The `dlx-continuation` header is used to send a continuation token with the request, when retrieving the next page of results.", "required" : false, "type" : "string" }, { "name" : "deleted", "in" : "query", "description" : "Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error.", "required" : false, "type" : "boolean", "default" : false }, { "name" : "ifModifiedSince", "in" : "header", "description" : "The `If-Modified-Since` header is used to retrieve only results modified since a given time. The value of this header must be a valid date string.", "required" : false, "type" : "string" }, { "name" : "languageID", "in" : "query", "description" : "The ID of the Language to perform the operation on", "required" : false, "type" : "string", "allowEmptyValue" : true }, { "name" : "maxItemCount", "in" : "header", "description" : "The `dlx-max-item-count` header is used to limit the number of results to a certain amount at a time (by default all results will be returned). If there are more results to be returned, a continuation token will also be sent in the `dlx-continuation` header.", "required" : false, "type" : "string" }, { "name" : "public", "in" : "query", "description" : "Set this parameter to `true` to include all publicly-accessible resources, not just those that the user is listed as an Owner, Contributor, or Viewer for.", "required" : false, "type" : "string", "default" : "false" } ], "responses" : { "200" : { "description" : "200: Operation successful.", "headers" : { "dlx-continuation" : { "type" : "string", "description" : "A continuation token for retrieving more results" }, "dlx-item-count" : { "type" : "string", "description" : "The number of items returned in the response" }, "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } }, "post" : { "tags" : [ "Lexeme" ], "summary" : "Add a new Lexeme", "description" : "Add a new Lexeme. A `languageID` must be provided either as a query parameter, or as an attribute on the Lexeme body.", "operationId" : "addLexeme", "parameters" : [ { "name" : "languageID", "in" : "query", "description" : "The ID of the Language to perform the operation on", "required" : false, "type" : "string", "allowEmptyValue" : true } ], "responses" : { "201" : { "description" : "201: The resource was created successfully.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } }, "put" : { "tags" : [ "Lexeme" ], "summary" : "Upsert (add or replace) a Lexeme", "description" : "Upsert (add or replace) a Lexeme. A `languageID` must be provided either as a query parameter, or as an attribute on the Lexeme body.", "operationId" : "upsertLexeme", "parameters" : [ { "name" : "ifMatch", "in" : "header", "description" : "The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.", "required" : false, "type" : "string" }, { "name" : "languageID", "in" : "query", "description" : "The ID of the Language to perform the operation on", "required" : false, "type" : "string", "allowEmptyValue" : true } ], "responses" : { "201" : { "description" : "201: Upsert successful.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } } }, "/lexemes/{lexemeID}" : { "get" : { "tags" : [ "Lexeme" ], "summary" : "Get a Lexeme by ID", "operationId" : "getLexeme", "parameters" : [ { "name" : "lexemeID", "in" : "path", "description" : "The ID of the Lexeme to perform the operation on", "required" : true, "type" : "string" }, { "name" : "deleted", "in" : "query", "description" : "Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error.", "required" : false, "type" : "boolean", "default" : false }, { "name" : "ifNoneMatch", "in" : "header", "description" : "If `If-None-Match` header is used with GET requests to check whether you already have the most up-to-date version of the resource, and therefore do not need the resource sent again. The value of the `If-None-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to reduce bandwidth.", "required" : false, "type" : "string" } ], "responses" : { "200" : { "description" : "200: Operation successful.", "headers" : { "dlx-continuation" : { "type" : "string", "description" : "A continuation token for retrieving more results" }, "dlx-item-count" : { "type" : "string", "description" : "The number of items returned in the response" }, "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } }, "304" : { "description" : "304: Not modified." } } }, "delete" : { "tags" : [ "Lexeme" ], "summary" : "Delete a Lexeme by ID", "operationId" : "deleteLexeme", "parameters" : [ { "name" : "lexemeID", "in" : "path", "description" : "The ID of the Lexeme to perform the operation on", "required" : true, "type" : "string" }, { "name" : "ifMatch", "in" : "header", "description" : "The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.", "required" : false, "type" : "string" } ], "responses" : { "204" : { "description" : "204: Delete operation successful." } } }, "patch" : { "tags" : [ "Lexeme" ], "summary" : "Perform a partial update on a Lexeme", "description" : "Perform a partial update on a Lexeme.", "operationId" : "updateLexeme", "parameters" : [ { "name" : "lexemeID", "in" : "path", "description" : "The ID of the Lexeme to perform the operation on", "required" : true, "type" : "string" }, { "name" : "ifMatch", "in" : "header", "description" : "The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.", "required" : false, "type" : "string" } ], "responses" : { "200" : { "description" : "200: Update successful.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } } } } } }, "securityDefinitions" : { "Authorization" : { "description" : "An access token (JSON Web Token) included in the `Authorization` header in the format `Bearer {token}`. Tokens may be retrieved programmatically from https://digitallinguistics.auth0.com. See the authorization documentation at http://developer.digitallinguistics.io/api/.", "type" : "apiKey", "name" : "Authorization", "in" : "header" } }, "definitions" : { }, "parameters" : { "body" : { "in" : "body", "name" : "body", "description" : "A database resource to upsert", "required" : true, "schema" : { "type" : "object" } }, "continuation" : { "name" : "continuation", "in" : "header", "description" : "The `dlx-continuation` header is used to send a continuation token with the request, when retrieving the next page of results.", "required" : false, "type" : "string" }, "deleted" : { "name" : "deleted", "in" : "query", "description" : "Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error.", "required" : false, "type" : "boolean", "default" : false }, "ifMatch" : { "name" : "ifMatch", "in" : "header", "description" : "The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.", "required" : false, "type" : "string" }, "ifModifiedSince" : { "name" : "ifModifiedSince", "in" : "header", "description" : "The `If-Modified-Since` header is used to retrieve only results modified since a given time. The value of this header must be a valid date string.", "required" : false, "type" : "string" }, "ifNoneMatch" : { "name" : "ifNoneMatch", "in" : "header", "description" : "If `If-None-Match` header is used with GET requests to check whether you already have the most up-to-date version of the resource, and therefore do not need the resource sent again. The value of the `If-None-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to reduce bandwidth.", "required" : false, "type" : "string" }, "languageID" : { "name" : "languageID", "in" : "path", "description" : "The ID of the Language to perform the operation on", "required" : true, "type" : "string" }, "languageIDProp" : { "in" : "body", "name" : "languageID", "description" : "The ID of the Language to perform the operation on", "required" : false, "schema" : { "required" : [ "languageID" ], "properties" : { "languageID" : { "type" : "string" } } } }, "languageIDQuery" : { "name" : "languageID", "in" : "query", "description" : "The ID of the Language to perform the operation on", "required" : false, "type" : "string", "allowEmptyValue" : true }, "lexemeID" : { "name" : "lexemeID", "in" : "path", "description" : "The ID of the Lexeme to perform the operation on", "required" : true, "type" : "string" }, "maxItemCount" : { "name" : "maxItemCount", "in" : "header", "description" : "The `dlx-max-item-count` header is used to limit the number of results to a certain amount at a time (by default all results will be returned). If there are more results to be returned, a continuation token will also be sent in the `dlx-continuation` header.", "required" : false, "type" : "string" }, "public" : { "name" : "public", "in" : "query", "description" : "Set this parameter to `true` to include all publicly-accessible resources, not just those that the user is listed as an Owner, Contributor, or Viewer for.", "required" : false, "type" : "string", "default" : "false" } }, "responses" : { "Success" : { "description" : "200: Operation successful.", "headers" : { "dlx-continuation" : { "type" : "string", "description" : "A continuation token for retrieving more results" }, "dlx-item-count" : { "type" : "string", "description" : "The number of items returned in the response" }, "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } }, "UpdateSuccessful" : { "description" : "200: Update successful.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } }, "Created" : { "description" : "201: The resource was created successfully.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } }, "UpsertSuccessful" : { "description" : "201: Upsert successful.", "headers" : { "Last-Modified" : { "type" : "string", "description" : "The time that the item was last modified" } } }, "DeleteSuccessful" : { "description" : "204: Delete operation successful." }, "NotModified" : { "description" : "304: Not modified." }, "BadRequest" : { "description" : "400: There was a problem with the request." }, "Unauthorized" : { "description" : "401: Authorization missing or invalid.", "headers" : { "WWW-Authenticate" : { "type" : "string", "description" : "An access token is required." } } }, "Forbidden" : { "description" : "403: Unauthorized." }, "NotFound" : { "description" : "404: Database resource not found." }, "MethodNotAllowed" : { "description" : "405: Method not allowed." }, "NotAcceptable" : { "description" : "406: Cannot return data in requested format." }, "Timeout" : { "description" : "408: The request timed out." }, "Conflict" : { "description" : "409: There was a data conflict in the database." }, "PreconditionFailed" : { "description" : "412: A precondition for the operation was not met." }, "LargePayload" : { "description" : "413: Request payload is too large." }, "TokenExpired" : { "description" : "419: Access token expired." }, "Unprocessable" : { "description" : "422: The data is not properly formatted." }, "TooManyRequests" : { "description" : "429: Too many requests." }, "RetryOperation" : { "description" : "449: Retry the operation" }, "ServerError" : { "description" : "500: An error occurred on the server." }, "NotImplemented" : { "description" : "501: This feature is not yet implemented." } }, "externalDocs" : { "description" : "How to use the API", "url" : "http://developer.digitallinguistics.io/api/" } }