canonical: https://jentic.com/apis/mojotxt.com/mojotxt

# MojoTxt API

Jentic publishes the only available OpenAPI specification for MojoTxt API, keeping it validated and agent-ready. MojoTxt is an SMS messaging platform focused on subscriber list management, broadcast sending, and donation tracking, often used by nonprofits and small organizations running text-to-give and text-to-subscribe campaigns. The API exposes operations to manage phone numbers, add or remove subscribers, send messages to a list, and pull message and donation logs. It is positioned as a turnkey SMS engagement tool rather than a generic SMS gateway.

## For AI agents

Manage SMS subscriber lists, send broadcast messages from owned phone numbers, and pull message and donation logs from MojoTxt.

## Scope

Does not handle email delivery, voice calls, or two-way SMS conversations - use for opt-in SMS broadcasts and subscriber list management only.

## Capabilities

- List phone numbers owned by the MojoTxt account
- Add or remove subscribers on a specific phone number's list
- Send broadcast SMS messages from a phone number to its subscribers
- Retrieve historical message logs for a phone number
- Pull donation records linked to a phone number for text-to-give campaigns

## Use cases

### Nonprofit Text-to-Give Campaign Tracking

Pull donation records associated with a MojoTxt phone number to reconcile fundraising totals against finance ledgers. The donations endpoint exposes individual contribution records linked to the originating subscriber, removing manual export steps from the donation reporting workflow. Suitable for nonprofit operations teams running monthly board reports on text-to-give performance.

Example prompt: Call GET /{phone_number}/donations/list for the campaign number to retrieve the month's donation records and aggregate them into a fundraising total.

### Subscriber List Maintenance

Programmatically add new opt-ins captured from a website form to a MojoTxt subscriber list and remove unsubscribed contacts to keep the list compliant. The add and remove endpoints take a subscriber identifier and the target phone number, so a CRM or signup form can sync state without manual import. Practical for organizations replacing manual CSV uploads with real-time syncing.

Example prompt: Call POST /{phone_number}/subscribers/add with the new contact's phone number when a website opt-in form is submitted.

### Broadcast SMS Sending

Send a message from a MojoTxt-owned phone number to its subscriber list using the messages endpoint, then pull the message log to confirm delivery. This pattern works for event reminders, advocacy alerts, or weekly newsletters where the target audience has already opted in. The single-call broadcast model is simpler than building per-recipient send loops on top of generic SMS gateways.

Example prompt: Call POST /{phone_number}/messages/send with the message body to broadcast to all subscribers, then GET /{phone_number}/messageLog/list to confirm delivery.

### Agent-Driven Constituent Outreach

AI agents managing supporter outreach for nonprofits or advocacy groups call MojoTxt through Jentic to send timely SMS broadcasts and pull engagement data without holding the basic-auth credential in their context. Jentic's spec is the only structured definition for MojoTxt, so schema-driven agents rely on Jentic for tool selection and parameter shape.

Example prompt: Search Jentic for 'broadcast an sms to my subscribers', load POST /{phone_number}/messages/send, and execute with the campaign body.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/phoneNumbers/list` | List MojoTxt phone numbers on the account |
| GET | `/{phone_number}/subscribers/list` | List subscribers for a phone number |
| POST | `/{phone_number}/subscribers/add` | Add a subscriber to a phone number list |
| POST | `/{phone_number}/subscribers/remove` | Remove a subscriber from a phone number list |
| POST | `/{phone_number}/messages/send` | Send a broadcast SMS to a phone number's subscribers |
| GET | `/{phone_number}/messageLog/list` | Retrieve message history for a phone number |
| GET | `/{phone_number}/donations/list` | List donations received via a text-to-give number |

## Key resources

- **phoneNumbers** — List MojoTxt phone numbers attached to the account
- **subscribers** — Add and remove subscribers on a phone number list
- **messages** — Send broadcast SMS to a phone number's subscriber list
- **messageLog** — Retrieve historical message records for a phone number
- **donations** — List donations received through a text-to-give number
- **lists** — List subscriber segments associated with a phone number

## Why Jentic

- **Setup:** Wiring the MojoTxt API by hand means encoding your Basic-auth username and password, keying every call to the right phone number, and coding the subscriber and broadcast operations yourself. Through Jentic you install once, import the MojoTxt API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** MojoTxt puts the sending phone number in the URL path (/{phone_number}/messages/send, /{phone_number}/subscribers/list), so a rule can pin your agent to one phone number and the operations on it. You choose the operations it may call, so a destructive one like removing a subscriber is not included unless you add it.
- **Credential handling:** Your MojoTxt username and password are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send a broadcast SMS' or 'add a subscriber', and Jentic returns the matching MojoTxt operation with its parameter schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Twilio Messaging API** — General-purpose programmable SMS, MMS, and WhatsApp gateway with global coverage
- **Plivo Messaging API** — Programmable SMS and voice platform with subscriber-style messaging features
- **ClickSend SMS API** — Multi-channel messaging API covering SMS, MMS, voice, and post mail

## FAQ

### Why is there no official OpenAPI spec for MojoTxt API?

MojoTxt does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call MojoTxt API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the MojoTxt API use?

MojoTxt uses HTTP Basic authentication - the account username and password (or API credential pair) are sent in the Authorization header as a base64-encoded basicAuth challenge. Through Jentic, the credential pair is held in the encrypted vault and injected at request time so the secret never enters the agent's context.

### Can I send a broadcast SMS with the MojoTxt API?

Yes. POST /{phone_number}/messages/send takes the broadcast body and dispatches it to every subscriber on that phone number's list. Pull GET /{phone_number}/messageLog/list afterwards to confirm what was sent and to whom.

### What are the rate limits for the MojoTxt API?

MojoTxt does not document rate limits in this OpenAPI spec. Carrier-level limits on outbound SMS will apply for broadcast operations, so check https://mojotxt.com or the account dashboard for current send-rate guidance before running large campaigns.

### How do I add a subscriber through Jentic?

Run pip install jentic, search for 'add a subscriber to my sms list', load POST /{phone_number}/subscribers/add, and execute it with the target phone number and subscriber details. Jentic returns the operation result so the agent can confirm the opt-in was recorded.

### Does MojoTxt support text-to-give donation tracking?

Yes. GET /{phone_number}/donations/list returns donation records linked to the campaign phone number, including the originating subscriber and amount. This makes it straightforward to reconcile text-to-give revenue against finance reports.

### Can I limit what my agent is allowed to do with the MojoTxt API?

Yes. Because you run Jentic One yourself, your own rules decide which MojoTxt operations and credentials the agent may use. Since MojoTxt puts the sending phone number in the URL path, such as /{phone_number}/messages/send and /{phone_number}/subscribers/list, you can pin the agent to a single phone number and only the operations on it. You choose the exact calls it can make, so you can allow sending broadcasts and adding subscribers while withholding a destructive operation like POST /{phone_number}/subscribers/remove.
