- name
- droploft-api
- version
- 0.2.0
- description
- Layer 3 raw HTTP: any endpoint not yet covered by a flow or resource verb.
- metadata
- {"requires":{"bins":["droploft"],"skills":["droploft-shared"]},"cliHelp":"droploft api --help"}
# Droploft v2 CLI — Raw API Skill
Use this when the higher-level layers don't cover what you need. The CLI takes care of authentication and the `/v1` prefix; you supply the method, path, and body.
## Usage
```bash
droploft api GET /v1/auth/me
droploft api GET /v1/documents
droploft api GET /v1/lofts/<id>/documents
droploft api POST /v1/documents --data '{"title":"x","content_hash":"...","original_bytes":12,"kind":"markdown"}'
droploft api PATCH /v1/documents/<id>/share-link --data '{"share_enabled":false}'
droploft api DELETE /v1/documents/<id>
```
Body forms:
- inline JSON: `--data '{"k":"v"}'`
- file: `--data @./payload.json`
## Discovery
Before writing a `--data` body, look up the schema:
```bash
droploft schema search workspace
droploft schema get workspaces.create
```
## Patterns
### List + filter via jq-style flag
```bash
droploft api GET /v1/documents --jq '.[].id'
droploft api GET /v1/me/navigation --jq '.workspaces[].name'
```
### Explore an unfamiliar endpoint via verbose
```bash
droploft --verbose api GET /v1/lofts
# stderr shows method, URL, status, headers
```
## When NOT to use this skill
If a flow or resource verb already covers the operation, prefer it — those layers carry retries, polling, and human-friendly errors that raw `api` skips.
View on GitHub