sensorpro.app
/install sensorpro
Use this skill to manage your Sensorpro email marketing account in OpenClaw.
Official docs:
- Home: https://sensorpro.net/api/
- Contacts: https://sensorpro.net/api/contacts.html
- Campaigns + metrics: https://sensorpro.net/api/campaigns.html
- Relay Email: https://sensorpro.net/api/sendemail.html
- Imports: https://www.sensorpro.net/api/imports.html
- Account: https://sensorpro.net/api/account.html
Setup (required)
Set these environment variables in your OpenClaw .env (or in the shell before running curl):
SENSORPRO_API_KEY— API key for thex-apikeyheaderSENSORPRO_ORG— organization code/nameSENSORPRO_USER— API username (must be an API user)SENSORPRO_PASS— API user password
How to get the API key
From the Sensorpro UI:
- Go to API → API keys
- Select “Sensorpro rest API default key”
- Copy the key value into
SENSORPRO_API_KEY - If your API key is IP-restricted, whitelist the calling IP (the machine running OpenClaw)
The key is passed as an HTTP header:
x-apikey: $SENSORPRO_API_KEY
How to create an API user
Sensorpro distinguishes between UI users and API users:
- API users have no UI access but can use the REST API.
- Normal users have UI access but typically cannot use the REST API.
Create a dedicated API user in Sensorpro and set:
SENSORPRO_USERto that usernameSENSORPRO_PASSto that password
Safe secret handling (important)
- Put secrets in
~/.openclaw/.env(or your process manager), not inSKILL.md. - Don’t commit
.envto git. - Rotate the API key if it’s ever pasted into a public place.
Global gotchas
- IP allowlisting: Sensorpro REST API can be locked to whitelisted IPs.
- Every response includes
Result.TotalErrors; treat0as success. - Signin token (
Token) must be used in the URL path for most endpoints. - Logoff: server may require a body (HTTP 411 otherwise). Use
-d '{}'.
Quick workflow pattern (recommended)
- Signin once → store
TOKEN - Make one or more API calls
- Logoff
Example (bash):
TOKEN=$(curl -sS -X POST "https://apinie.sensorpro.net/auth/sys/signin" \
-H "Content-Type: application/json" \
-H "x-apikey: ${SENSORPRO_API_KEY}" \
-d "{\"Organization\":\"${SENSORPRO_ORG}\",\"User\":\"${SENSORPRO_USER}\",\"Password\":\"${SENSORPRO_PASS}\"}" \
| python3 -c 'import sys,json; print(json.load(sys.stdin).get("Token",""))')
# Call an endpoint (example)
curl -sS -X POST "https://apinie.sensorpro.net/api/Contact/UpdateAdd/${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"AddToList":[],"Contact":[{"PersonalEMail":"[email protected]"}],"Options":{"Parameters":{},"Action":""},"ReturnFailedRequests":false,"UpdateByKey":"email","SendWelcomeEmail":false,"SignupFormId":"00000000-0000-0000-0000-000000000000"}'
# Log off (some servers require a body)
curl -sS -X POST "https://apinie.sensorpro.net/auth/sys/logoff/${TOKEN}" \
-H "Content-Type: application/json" -d '{}'
Core endpoints (cheat sheet)
Authentication
POST https://apinie.sensorpro.net/auth/sys/signin(headerx-apikeyrequired)POST https://apinie.sensorpro.net/auth/sys/logoff/[Token]
Contacts (token required)
Base: https://apinie.sensorpro.net/api/Contact/\x3CEndpoint>/[Token]
UpdateAdd(recommended)Add,UpdateGetContacts,GetContactsPagedUpdateAddAsync,GetUpdateAddAsyncStatusChangeStatus,ChangeOptOutStatusDeleteContacts,ForgetMe
Campaigns + sending
Base: https://apinie.sensorpro.net/api/campaign/\x3CEndpoint>/[Token] (note casing differs for some Get endpoints)
AddCampaign,AddDesign,AddSegment,AddBroadcast
Campaign results / metrics
POST https://apinie.sensorpro.net/api/Campaign/GetBroadcastStatus/[Token]POST https://apinie.sensorpro.net/api/campaign/GetCampaignResults/[Token]POST https://apinie.sensorpro.net/api/campaign/GetCampaignResultsLinks/[Token]
Relay Email
POST https://apinie.sensorpro.net/api/Email/SendEmail/[Token]
Imports
POST https://apinie.sensorpro.net/api/import/ExecuteFTPImport/[Token]POST https://apinie.sensorpro.net/api/import/GetImportStatus/[Token]POST https://apinie.sensorpro.net/api/import/ClearTagList/[Token]
Account
POST https://apinie.sensorpro.net/api/Account/AddSubOrganization/[Token]POST https://apinie.sensorpro.net/api/Account/AddUpdateUser/[Token]
Examples
Signin (manual curl)
curl -sS -X POST "https://apinie.sensorpro.net/auth/sys/signin" \
-H "Content-Type: application/json" \
-H "x-apikey: ${SENSORPRO_API_KEY}" \
-d '{"Organization":"'"${SENSORPRO_ORG}"'","User":"'"${SENSORPRO_USER}"'","Password":"'"${SENSORPRO_PASS}"'"}'
Contacts: UpdateAdd (add/update by email)
curl -sS -X POST "https://apinie.sensorpro.net/api/Contact/UpdateAdd/${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"AddToList": [],
"Contact": [{"PersonalEMail":"[email protected]","FirstName":"","LastName":""}],
"Options":{"Parameters":{},"Action":""},
"ReturnFailedRequests": true,
"UpdateByKey": "email",
"SendWelcomeEmail": false,
"SignupFormId": "00000000-0000-0000-0000-000000000000"
}'
Campaign metrics: GetCampaignResults
curl -sS -X POST "https://apinie.sensorpro.net/api/campaign/GetCampaignResults/${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"CampaignId": 53}'
Relay: SendEmail (one-off)
curl -sS -X POST "https://apinie.sensorpro.net/api/Email/SendEmail/${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"From": {"DisplayName":"Marketing","Email":"[email protected]"},
"To": [{"DisplayName":"","Email":"[email protected]"}],
"Cc": [],
"Bcc": [],
"Headers": {},
"ReplyTo": null,
"ReturnPath": null,
"Subject": "Hello",
"HTMLMessageStyle": "",
"HTMLMessageEncoded": "\x3Chtml>\x3Cbody>\x3Cp>Hello\x3C/p>\x3C/body>\x3C/html>",
"PlainTextMessage": "Hello",
"MsgType": 0,
"MailEncoding": "UTF8",
"Schedule": {"DelayByMinutes": 0, "DelayUntilUTC": ""}
}'
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install sensorpro - After installation, invoke the skill by name or use
/sensorpro - Provide required inputs per the skill's parameter spec and get structured output
What is sensorpro.app?
Manage your Sensorpro email marketing account in OpenClaw. It is an AI Agent Skill for Claude Code / OpenClaw, with 670 downloads so far.
How do I install sensorpro.app?
Run "/install sensorpro" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is sensorpro.app free?
Yes, sensorpro.app is completely free (open-source). You can download, install and use it at no cost.
Which platforms does sensorpro.app support?
sensorpro.app is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created sensorpro.app?
It is built and maintained by Chris Byrne (@forcequit); the current version is v0.2.3.