← Back to Skills Marketplace
forcequit

sensorpro.app

by Chris Byrne · GitHub ↗ · v0.2.3
cross-platform ✓ Security Clean
670
Downloads
0
Stars
0
Active Installs
7
Versions
Install in OpenClaw
/install sensorpro
Description
Manage your Sensorpro email marketing account in OpenClaw.
README (SKILL.md)

Use this skill to manage your Sensorpro email marketing account in OpenClaw.

Official docs:

Setup (required)

Set these environment variables in your OpenClaw .env (or in the shell before running curl):

  • SENSORPRO_API_KEY — API key for the x-apikey header
  • SENSORPRO_ORG — organization code/name
  • SENSORPRO_USER — API username (must be an API user)
  • SENSORPRO_PASS — API user password

How to get the API key

From the Sensorpro UI:

  1. Go to API → API keys
  2. Select “Sensorpro rest API default key”
  3. Copy the key value into SENSORPRO_API_KEY
  4. 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_USER to that username
  • SENSORPRO_PASS to that password

Safe secret handling (important)

  • Put secrets in ~/.openclaw/.env (or your process manager), not in SKILL.md.
  • Don’t commit .env to 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; treat 0 as 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)

  1. Signin once → store TOKEN
  2. Make one or more API calls
  3. 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 (header x-apikey required)
  • POST https://apinie.sensorpro.net/auth/sys/logoff/[Token]

Contacts (token required)

Base: https://apinie.sensorpro.net/api/Contact/\x3CEndpoint>/[Token]

  • UpdateAdd (recommended)
  • Add, Update
  • GetContacts, GetContactsPaged
  • UpdateAddAsync, GetUpdateAddAsyncStatus
  • ChangeStatus, ChangeOptOutStatus
  • DeleteContacts, 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": ""}
  }'
Usage Guidance
This skill appears to be what it claims: it will make REST calls to your Sensorpro instance and therefore needs an API key plus an API user/password. Before installing: 1) Only provide these secrets via environment variables or your platform's secret store (do not paste them into public code or SKILL.md). 2) Create a least-privilege API user in Sensorpro and enable IP allowlisting if possible. 3) Understand that, if you permit autonomous skill invocation for agents, the agent could call the Sensorpro API using these credentials—limit agent permissions if you want tighter control. 4) Rotate keys if they are exposed and audit API user activity in Sensorpro. Overall this skill is internally consistent; proceed if you trust the skill source and follow the secret-handling advice above.
Capability Analysis
Type: OpenClaw Skill Name: sensorpro Version: 0.2.3 The skill bundle is benign. It provides instructions and examples for interacting with the Sensorpro email marketing API using `curl` and `python3`. All network calls are directed to `apinie.sensorpro.net`, which is the legitimate API endpoint for Sensorpro. The `SKILL.md` file includes good security practices for handling API keys and credentials, and there is no evidence of prompt injection attempts, data exfiltration to unauthorized endpoints, persistence mechanisms, or other malicious activities. The required environment variables and binaries (`curl`, `python3`) are explicitly declared and used for their intended purpose of API interaction and JSON parsing.
Capability Assessment
Purpose & Capability
Name/description, required env vars (API key, org, API user, password), and required binaries (curl, python3) align with the Sensorpro REST API usage shown in SKILL.md. The dual use of an x-apikey header plus API-user credentials is consistent with the documented API flows.
Instruction Scope
SKILL.md contains concrete curl examples that only call Sensorpro endpoints, shows signin/token usage and logoff, and explicitly warns about secret handling. It does not instruct reading unrelated files, probing other system state, or sending data to third-party endpoints.
Install Mechanism
No install spec or remote downloads — this is an instruction-only skill. It assumes curl and python3 are present, which is reasonable given the examples.
Credentials
The four required env vars (SENSORPRO_API_KEY, SENSORPRO_ORG, SENSORPRO_USER, SENSORPRO_PASS) are justified by the API signin and header requirements; nothing unrelated (cloud provider keys, tokens for other services, etc.) is requested.
Persistence & Privilege
always is false and the skill requests no system-wide config paths or other skills' credentials. The normal platform default allowing autonomous invocation is unchanged; that is expected for a usable integration.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install sensorpro
  3. After installation, invoke the skill by name or use /sensorpro
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.2.3
Change display title to sensorpro.app
v0.2.2
Update listing summary/title
v0.2.1
Republish 0.2.1 to retrigger security scan (0.2.0 stuck >12h)
v0.2.0
Docs-only release: remove bundled shell scripts to reduce security scanner suspicion; include inline bash token workflow example.
v0.1.2
Add GitHub homepage for verifiable source; no functional changes.
v0.1.1
Fix registry metadata: declare required env vars (SENSORPRO_*), required binaries (curl, python3), and homepage. No code changes.
v0.1.0
Initial public release: auth, contacts, campaigns, results/metrics, relay email, imports, account. Includes helper scripts for signin+call.
Metadata
Slug sensorpro
Version 0.2.3
License
All-time Installs 0
Active Installs 0
Total Versions 7
Frequently Asked Questions

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.

💬 Comments