examples are with curl - you can (obviously) use any HTTP client.
### creating a new API key
```sh
curl -X POST -H "Authorization: $U_API_KEY" "$U_HOST/api/new_key"
```
requires an admin key to execute. you can give this API key to someone else so they can use your instance.
you can't modify API keys (delete or make admin) through the API - you'll have to open your database in your favorite sqlite client and edit the row manually.
`file_id` and `revocation_key` are the values returned by the upload endpoint. if using `upload.sh`, the revocation key is stored in `$U_REVOCATION_KEY_PATH`.
### accessing files
files can be accessed with the URL `$U_HOST/i/$file_id`. you can add a file extension to the path if you want the server to return a specific mime type.