Paperless-ngx
Connect your client's Paperless-ngx with a key they paste, and call its API through Operate As.
- Website
- docs.paperless-ngx.com
- Connects by
- Pasting a API token
- Category
- Files and docs
- Services
- 1
- Tools
- Pass-through only
| Service | Key | Base URL |
|---|---|---|
| Paperless-ngx | paperless-ngx | https://{site}/api |
Your client also types their paperless-ngx address (Where your Paperless-ngx is, such as example.com, without https://).
Connecting
Your client makes a API token in their Paperless-ngx settings and pastes it on their link. Operate As tries it with Paperless-ngx before saving it, and stores it encrypted. See Services connected with an API key.
curl https://api.operate.as/v1/me/clients \ -H "Authorization: Bearer $OPERATE_AS_API_KEY"[ { "id": "6f1c2a7e-...", "name": "Miller Dental", "services": [ "paperless-ngx" ] }]Permissions
| What the client reads | Permission it asks for |
|---|---|
| Use the Paperless-ngx key you paste, with only the access you gave that key | Chosen on the provider's screen |
Pass-through
Paperless-ngx has no ready-made tools yet. Call any endpoint of its API through Operate As instead, with the client's access attached.
Add the client
In Clients, add your client and select Paperless-ngx. Then send them their link.
Your client connects
They paste a API token from their Paperless-ngx settings.
Find the endpoint
Pick the call from Paperless-ngx's own API docs. Your path is everything after https://{site}/api, with the parts in braces filled in from your client's account.
Send it through Operate As
Use the client's ID, the service key paperless-ngx and that path. Your Operate As key goes in Authorization; the client's access is added for you.
See Pass-through requests for the full request and response format.
curl "https://api.operate.as/v1/clients/6f1c2a7e-.../paperless-ngx/..." \ -H "Authorization: Bearer $OPERATE_AS_API_KEY"{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}When access ends
A key works until your client deletes it in Paperless-ngx. They can paste a new one on the same link at any time, and your workflows carry on without changes.
See Keeping access alive and Removing access.
{ "status": 401, "data": { "…": "the service's own error" }, "encoding": "json"}