API Overview¶
Tachi exposes a public API which allows programs to interact with Tachi.
This means you could make your own applications that work off of Tachi's datasets.
Warning
This documentation assumes some basic programming knowledge, such as how to make HTTP requests, and how to parse JSON.
Depending on what variant of Tachi you want to interact with, the API is hosted
on https://kamai.tachi.ac/api/v1
or https://boku.tachi.ac/api/v1
.
Note
Some API endpoints are only available on Kamaitachi or Bokutachi. If an endpoint has this restriction, it will be documented on that endpoints' page.
Abuse¶
The Tachi API is provided under the assumption that it will be used to make cool things, and used responsibly.
Abuse of this API will result in your ability to use it being banned.
The API has a rate limit of 500 requests every minute. This is a very generous rate limit, and you should not even be close to hitting it.
If you are in a scenario where you might be hitting even 100 requests a minute consistently,
send an email to [email protected]
and let me know what you're up to. Otherwise, I might revoke your tokens for abuse.
License¶
Tachi-Server (Where the API is wrote) is licensed under the AGPLv3.
To quote GitHub:
Quote
Permissions of this strongest copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available.
This is not legal advice.
Requests¶
Unless otherwise mentioned, all non-GET request properties should be sent to the API in application/json
form.
GET request properties should be sent to the API in the Query String.
Your authentication tokens should be sent in the HTTP Authorization
header, using Bearer token
form.
You should provide this token for every endpoint. Even though not all endpoints require authentication tokens, they are still used for API analytics.
Response¶
Unless otherwise mentioned, all responses to the API are in application/json
form.
The API has two schemas for JSON responses.
Success Response¶
As the name implies, the Success Response is returned on a successful request.
Property | Type | Description |
---|---|---|
success |
true | Always true for a successful response. |
description |
String | Information about what happened with the request. |
body |
Endpoint Dependent | Any data that the endpoint needs to return, such as a user's document from a profile request. |
The HTTP Status Code for any Success Response will always be of 2XX form.
Failed Response¶
As the name implies, the Failed Response is returned when a request fails.
Property | Type | Description |
---|---|---|
success |
false | Always false for a failed response. |
description |
String | Information about what went wrong with the request. |
The HTTP Status Code for any Failed Response will always be of either 4XX or 5XX form.
Warning
The description
property is NOT intended for program usage. You should NEVER depend
on the output of description
, as it may be changed at any time for any reason.
Note
Any API request can fail for any reason. You should always account for the case where the request fails.
Footnote¶
That should be everything. If you have any questions about the API, you can
contact me at [email protected]
. You can also write an issue on the
Issue Tracker. I'll get around to either.
It's entirely possible that I might've made a typo or wrote a poor explaination of something, so please reach out!