API and MCP
An AI agent (Claude, ChatGPT or another) can use Please Send It for its owner: create a document collection project, launch it, track who sent what, send reminders, and retrieve the files received.
Contents
- The API key
- The MCP server
- List projects · Create a project · View a project · Launch
- Remind · Pause and resume · Download an upload · The ZIP · Other routes
The API key
Create a key in My subscription, "Agent access" section. It starts with pse_, is shown only once, and can be revoked at any time. It acts on your behalf, in the organization that was active when you created it: it only sees the projects of that organization that you are allowed to see.
Send it in the Authorization header of every call:
Authorization: Bearer pse_your_key
- Base URL:
https://pleasesendit.com. Request and response bodies in JSON (Content-Type: application/json). Field names are in French: that is the API. - On error, the response carries an HTTP code (400, 401, 403, 404, 409, 429) and a message in your account's language (English for an account set to English):
{"erreur": "…"}. - 120 calls per minute at most with the same key.
- Managing the account, the organization and the keys stays on the website.
The MCP server
For Claude and MCP-compatible assistants: add a remote MCP connector with the address below, and your key sent in the Authorization: Bearer header.
https://pleasesendit.com/mcp
"Streamable HTTP" transport: each JSON-RPC 2.0 message is sent as a POST, the response comes back as application/json (no SSE stream). Protocol version: 2025-06-18. The tools:
lister_projets: projects and their progress.voir_projet: documents, recipients and their upload link, uploads, reminder history.creer_projet: documents, recipients (each with an optionallangue, see below), deadline, reminders; as a draft, or launched right away withlancer: true.lancer_projet,relancer_destinataire,mettre_en_pause.lister_documents_recus: the documents received, each with a download URL that requires the same key, and what is still missing.
Try it by hand:
curl https://pleasesendit.com/mcp \
-H "Authorization: Bearer $PSE_CLE" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"lister_projets","arguments":{}}}'
List projects
curl https://pleasesendit.com/api/projets -H "Authorization: Bearer $PSE_CLE"
Response: {"projets": [{"id": 12, "nom": "…", "echeance": "2026-10-31", "statut": "actif", "attendues": 8, "recues": 5, "destinataires": 4, "complets": 2, …}]}. Statuses: brouillon (draft), actif (active), pause (paused).
Create a project
Each document and each recipient carries a cle (key) of your choice; affectations says who sends what (recipient key to the list of document keys). The project is created as a draft: nothing is sent before launch.
curl https://pleasesendit.com/api/projets \
-H "Authorization: Bearer $PSE_CLE" -H "Content-Type: application/json" \
-d '{
"nom": "Rental application",
"echeance": "2026-10-31",
"frequence": 3, "plafond": 6, "renforcee": true,
"message": "Please send everything before the viewing.",
"pieces": [
{"cle": "rib", "nom": "Bank details", "format": "pdf"},
{"cle": "dom", "nom": "Proof of address", "format": "pdf", "consigne": "Less than three months old"}
],
"destinataires": [
{"cle": "c", "prenom": "Camille", "nom_famille": "Martin", "email": "camille.martin@example.com", "canal": "email", "langue": "en"},
{"cle": "j", "prenom": "Jean", "telephone": "06 12 34 56 78", "canal": "sms", "langue": "fr"}
],
"affectations": {"c": ["rib", "dom"], "j": ["rib"]}
}'
Response: {"ok": true, "id": 12}.
format:document(PDF or photo, JPG, PNG, HEIC or WebP, the default format),pdf,image(JPG, PNG, HEIC or WebP),docx,xlsx,video,lien(a web address),question(a written answer, the document name is the question) ortout(any format).signature(optional):aucune(none),manuelle(print, sign, send back) orelectronique(see attaching the PDF to sign).frequence: a reminder every 2, 3 or 7 days, or 0;plafond: maximum reminders per person (0 to 20);renforcee: a reminder the day before and on the day of the deadline.- A recipient has an email or a phone number;
canalisemailorsms;bascule: truealso writes through the other channel after two unanswered messages;formuleisprenom(first name) orcomplet(full name). langue(optional):froren, the language of the recipient's emails, text messages and upload page. By default, your account's language.visibilite(optional):prive(private) orequipe(all members of the organization).
View a project
curl https://pleasesendit.com/api/projets/12 -H "Authorization: Bearer $PSE_CLE"
The response details pieces, destinataires (with lien, their personal upload link, langue, the pieces requested and the depots received) and relances. To edit a project, send the same body as for creation to POST /api/projets/12, with the id of existing documents and recipients.
Launch the collection
curl -X POST https://pleasesendit.com/api/projets/12/lancer -H "Authorization: Bearer $PSE_CLE"
Each recipient gets their personal link by email or text message, then automatic reminders go out between 9 am and 7 pm (Paris time), never on Sundays or public holidays, and stop as soon as the person has sent everything. Response: {"ok": true, "invites": 2}. Invitations follow the same window: launched outside it, the project is active and the response says "invites": 0, "differees": 2, "prochain_envoi": "…". The account must have confirmed its email address.
Remind a person
curl https://pleasesendit.com/api/projets/12/relancer \
-H "Authorization: Bearer $PSE_CLE" -H "Content-Type: application/json" \
-d '{"destinataire_id": 34}'
At most one manual reminder every ten minutes for the same person.
Pause and resume
curl -X POST https://pleasesendit.com/api/projets/12/pause -H "Authorization: Bearer $PSE_CLE"
Toggles between actif and pause; the response gives the new statut. While paused, links stay open but nobody is reminded.
Download an upload
The ID of an upload is found in destinataires[].depots[].id in the response of View a project.
curl -OJ https://pleasesendit.com/api/projets/12/depots/56 -H "Authorization: Bearer $PSE_CLE"
Download everything as a ZIP
curl -OJ https://pleasesendit.com/api/projets/12/zip -H "Authorization: Bearer $PSE_CLE"
The ZIP keeps the same organization: one folder per recipient, files named "Recipient - Document".
Other routes
GET /api/moi: the account, its active organization and the requests addressed to it.PUT /api/projets/12/pieces/7/modele?nom=contract.pdf(body: the raw file, 20 MB at most): attaches a blank template, or the PDF to sign for a document with electronic signature;…/exemple?nom=…attaches an example.POST /api/projets/12/supprimer: deletes the project and all files received. Permanent.
See also llms.txt, Your data, Terms of Use.