mirror of
https://github.com/Expand-sys/CCash
synced 2025-12-16 08:12:12 +11:00
14 KiB
14 KiB
API endpoints
KEY
Jresp - Json Response, json must be accepted in the Accept header, be that via application/json or */*, failing to do so results in error 406
Jreq - Json Request, requires application/json as content-type, failing to do so results in error 406
U - User, requires basic auth in the header Authorization. This credential must be a valid user, failing to do so results in error 401
A - Admin, same as U but in addition requires username supplied be equal to the admin account username
⚠ - Deprecated endpoint
⛔ - Defunct endpoint
all error responses have JSON string along with them to describe
Usage endpoints
| name | added on | purpose | json input | path | HTTP Method | correct status | return type | return value | Jresp | Jreq | A | U |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GetBal | v1.2.3 |
retrieving the balance of a given user, {name} |
N/A |
api/v1/user/balance?name={name} | GET |
200 | uint32 | the user's balance | ✔️ | ❌ | ❌ | ❌ |
| GetLog | v1.2.3 |
retrieves the logs of a given user, length varies by server configuration | N/A |
⚠ api/v1/user/log | GET |
200 | array of objects | [{"to":string, "from":string, "amount":uint32, "time":int64}] | ✔️ | ❌ | ❌ | ✔️ |
| GetLogV2 | v1.5.3 |
retrieves the logs of a given user, length varies by server configuration | N/A |
api/v2/user/log | GET |
200 | array of objects | [{"counterparty":string, "receiving":bool, "amount":uint32, "time":int64}] | ✔️ | ❌ | ❌ | ✔️ |
| SendFunds | v1.2.3 |
sends funds from the authenticated user to the user {name} given in the json |
{"name":string, "amount":uint32} | api/v1/user/transfer | POST |
200 | uint32 | the user's balance after the transaction | ✔️ | ✔️ | ❌ | ✔️ |
| VerifyPassword | v1.2.3 |
verifies the credentials, used for connected services for ease of use | N/A |
api/v1/user/verify_password | POST |
204 | N/A |
N/A |
✔️ | ❌ | ❌ | ✔️ |
Usage enpoint errors
| name | 400 | 401 | 404 | 406 |
|---|---|---|---|---|
| GetBal | ❌ | ❌ | ✔️ | ✔️ |
| GetLog | ❌ | ✔️ | ✔️ | ✔️ |
| GetLogV2 | ❌ | ✔️ | ✔️ | ✔️ |
| SendFunds | ✔️ | ✔️ | ✔️ | ✔️ |
| VerifyPassword | ❌ | ✔️ | ❌ | ✔️ |
Meta Usage endpoints
| name | added on | purpose | json input | path | HTTP Method | correct status | return type | return value | Jresp | Jreq | A | U |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ChangePassword | v1.2.3 |
changes the password of the Authenticated user | {"pass":string} | api/v1/user/change_password | PATCH |
204 | N/A |
N/A |
✔️ | ✔️ | ❌ | ✔️ |
| AdminChangePassword | v1.2.3 |
changes the password of a given user {name} |
{"name":string,"pass":string} | api/v1/admin/user/change_password | PATCH |
204 | N/A |
N/A |
✔️ | ✔️ | ✔️ | ❌ |
| SetBal | v1.2.3 |
sets the balance of a given user {name} |
{"name":string,"amount":uint32} | api/v1/admin/set_balance | PATCH |
204 | N/A |
N/A |
✔️ | ✔️ | ✔️ | ❌ |
| ImpactBal | v1.2.3 |
modifies the user {name}'s balance by {amount} if positive itll add, if negative itll subtract |
{"name":string,"amount":int64} | api/v1/admin/impact_balance | POST |
200 | uint32 | new balance after modification | ✔️ | ✔️ | ✔️ | ❌ |
Meta Usage endpoint errors
| name | 400 | 401 | 404 | 406 |
|---|---|---|---|---|
| ChangePassword | ✔️ | ✔️ | ❌ | ✔️ |
| AdminChangePassword | ✔️ | ✔️ | ✔️ | ✔️ |
| SetBal | ✔️ | ✔️ | ✔️ | ✔️ |
| ImpactBal | ✔️ | ✔️ | ✔️ | ✔️ |
Sytem Usage endpoints
| name | added on | purpose | json input | path | HTTP Method | correct status | return type | return value | Jresp | Jreq | A | U |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Help | v0.1 |
redirects to GitHub projects Docs | N/A |
api/help | GET |
301 | N/A |
N/A |
❌ | ❌ | ❌ | ❌ |
| Close | v1.2.3 |
saves & closes the CCash webserver | N/A |
api/v1/admin/shutdown | POST |
204 | N/A |
N/A |
✔️ | ❌ | ✔️ | ❌ |
| Contains | v1.2.3 |
checks wether a user exists | N/A |
api/v1/user/exists?name={name} | GET |
204 | N/A |
N/A |
✔️ | ❌ | ❌ | ❌ |
| AdminVerifyAccount | v1.2.3 |
checks wether a user is the admin | N/A |
api/v1/admin/verify_account | POST |
204 | N/A |
N/A |
✔️ | ❌ | ✔️ | ❌ |
| PruneUsers | v1.2.3 |
deletes users with most recent transactions older then {time} (if logs are enabled) and have less money then {amount} |
{"time":int64,"amount":uint32} or just {"amount":uint32} | api/v1/admin/prune_users | POST |
200 | uint64 | number of users deleted | ✔️ | ✔️ | ✔️ | ❌ |
| ApiProperties | v1.2.3 |
properties of the given instance | N/A |
api/properties | GET |
200 | json object | {"version":uint64,"min_version":uint64_t,"max_log":uint64} and "return_on_del":string if feature is enabled | ✔️ | ❌ | ❌ | ❌ |
System Usage endpoin errors
| name | 401 | 404 | 406 |
|---|---|---|---|
| Help | ❌ | ❌ | ❌ |
| Close | ✔️ | ❌ | ✔️ |
| Contains | ✔️ | ✔️ | ✔️ |
| AdminVerifyAccount | ✔️ | ❌ | ✔️ |
| PruneUsers | ✔️ | ❌ | ✔️ |
| ApiProperties | ❌ | ❌ | ❌ |
Username Requirements
Valid
- lowercase letters
- numbers
- _
- Length must be atleast 3 and at most 16 characters.
User Management endpoints
| name | added on | purpose | json input | path | HTTP Method | correct status | return type | return value | Jresp | Jreq | A | U |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AddUser | v1.2.3 |
adding a user with a balance of 0 | {"name":string,"pass":string} | api/v1/user/register | POST |
204 | N/A |
N/A |
✔️ | ✔️ | ❌ | ❌ |
| AdminAddUser | v1.2.3 |
adding a user with an arbitrary balance | {"name":string,"amount":uint32,"pass":string} | api/v1/admin/user/register | POST |
204 | N/A |
N/A |
✔️ | ✔️ | ✔️ | ❌ |
| DelSelf | v1.2.3 |
deletes a user | N/A |
api/v1/user/delete | DELETE |
204 | N/A |
N/A |
✔️ | ❌ | ❌ | ✔️ |
| AdminDelUser | v1.2.3 |
deletes a given user {name} |
{"name":string} | api/v1/admin/user/delete | DELETE |
204 | N/A |
N/A |
✔️ | ✔️ | ✔️ | ❌ |
User Management endpoint errors
| name | 400 | 401 | 404 | 406 | 409 |
|---|---|---|---|---|---|
| AddUser | ✔️ | ❌ | ✔️ | ✔️ | ✔️ |
| AdminAddUser | ✔️ | ✔️ | ❌ | ✔️ | ✔️ |
| DelSelf | ❌ | ✔️ | ❌ | ✔️ | ❌ |
| AdminDelUser | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |