Terms of Use
1. Who this covers
Rafiki API is operated by Dennis Muthui, trading as DennisCreatives Data Solutions ("we," "us"), based in Nairobi, Kenya. These terms apply to anyone who signs up for an API key or otherwise sends requests to Rafiki API ("you," "the developer").
2. What you're getting
Rafiki API provides programmatic access to sentiment analysis, translation, content moderation, and language detection for Swahili, Sheng, and English text, delivered over REST endpoints documented at /docs. Results are generated by an automated lexicon-based (and optionally machine-learning-based) engine — they are estimates, not guarantees of accuracy.
3. Your API key
- Keep your API key confidential. You're responsible for all activity under your key.
- Don't share a single key across unrelated applications or resell access without a separate agreement with us.
- Tell us as soon as possible if you believe a key has been compromised — we can revoke and reissue it.
4. Acceptable use
You may not use Rafiki API to:
- Process content that is illegal under Kenyan law, or that facilitates harassment, hate speech, or exploitation of minors
- Attempt to circumvent rate limits, quotas, or authentication
- Reverse-engineer the service to extract or replicate the underlying lexicons/models for a competing product
- Send abusive volumes of traffic intended to degrade service for other developers
We may suspend or revoke API keys that violate this section, generally with notice where practical — immediately, without notice, for severe or repeated abuse.
5. Rate limits & quotas
Each plan has a daily request quota (see pricing) and all traffic is subject to a short burst rate limit regardless of plan. Requests beyond your quota will be rejected with a 429 response until your quota resets.
6. Service availability
We aim to keep Rafiki API reliably available but don't guarantee a specific uptime percentage at this stage. We'll try to give notice of planned maintenance where possible. This is a young service, not (yet) covered by a formal SLA — enterprise customers who need one should contact us to discuss it.
7. Disclaimer & liability
Rafiki API is provided "as is." Sentiment, translation, and moderation outputs are automated and can be wrong — don't rely on them as the sole basis for decisions with legal, medical, financial, or safety consequences. To the extent permitted by Kenyan law, our liability for any claim relating to the service is limited to the amount you paid us in the three months before the claim arose.
8. Changes to these terms
We may update these terms as the service evolves. Material changes will be reflected here with an updated "Last updated" date; continued use after a change means you accept the update.
9. Governing law
These terms are governed by the laws of Kenya.
Privacy Policy
1. What we collect
| Data | Why |
|---|---|
| Name, email, phone (optional) | Account creation, billing, support |
| API request metadata (endpoint, timestamp, count) | Enforcing quotas, debugging, capacity planning |
| M-Pesa transaction references | Confirming subscription payments |
| Hashed fingerprint of moderated text | Detecting repeat-abuse patterns |
/v1/sentiment, /v1/translate, or /v1/language is processed in memory to generate a response and is not written to our database. For /v1/moderate, we store a one-way hash of the text (not the text itself) so we can recognize repeated flagged submissions without retaining the original content.2. How we use it
- To operate and secure the API (authentication, quota enforcement, abuse prevention)
- To process subscription payments via M-Pesa Daraja
- To contact you about your account, billing, or material service changes
- To improve the underlying lexicons and detection logic, using aggregated, non-identifying usage patterns
3. Who we share it with
We don't sell your data. It's shared only with:
- Safaricom (M-Pesa Daraja) — to process STK Push payments
- RapidAPI — if you subscribe through the RapidAPI marketplace, they hold your billing relationship, not us
- Infrastructure providers (our hosting server) as necessary to run the service
- Kenyan authorities, if legally compelled by a valid court order or statutory request
4. Data retention
Account and billing records are kept for as long as your account is active, plus a reasonable period afterward for accounting/tax purposes. Usage-quota records are rolled up and older raw entries are periodically pruned. Database backups are retained for a rolling window and encrypted at rest in our backup storage.
5. Your rights
You can ask us to access, correct, or delete your account data at any time by emailing [email protected]. We'll respond within a reasonable time and may need to verify your identity first.
6. Security
API keys are stored as opaque tokens, traffic is served over HTTPS, and the admin key required to manage accounts is kept separate from developer-facing credentials. No system is perfectly secure — if you believe your data has been exposed, contact us immediately.
Billing & Refund Policy
1. Plans
Rafiki API is offered on Free, Basic, Pro, and Enterprise plans (see current pricing at rafiki.denniscreatives.com/#pricing). The Free plan requires no payment. Paid plans are billed monthly in Kenyan Shillings (KES).
2. Payment
Direct subscribers pay via M-Pesa STK Push, initiated from your account. You'll receive a payment prompt on your phone; your plan upgrades automatically once Safaricom confirms the payment. If you subscribe via RapidAPI instead, RapidAPI's own payment terms and billing cycle apply to that relationship, not this section.
3. Renewals
Paid plans run for 30 days from the date of a successful payment. We don't currently auto-charge for renewal — you'll need to initiate the next payment yourself before your plan expires, after which your account reverts to the Free tier's quota until you renew.
4. Refunds
- Because usage is metered per request and takes effect immediately on payment, completed payments are generally non-refundable once your plan has been upgraded.
- Exception: if a payment is deducted but your plan fails to upgrade due to a technical fault on our side, contact us and we'll fix the plan assignment or refund the payment, whichever you prefer.
- Duplicate charges: if an STK Push is accidentally confirmed twice for the same upgrade, the duplicate amount will be refunded via M-Pesa.
5. Changing or cancelling plans
There's no lock-in — simply don't renew when your current 30-day period ends and your account will drop to the Free tier automatically. To move to a higher plan immediately, initiate a new STK Push for the plan you want; it replaces your current plan right away rather than stacking.
6. Enterprise billing
Enterprise pricing is negotiated directly and may follow different invoicing terms — contact us for a custom agreement.
7. Disputes
If you believe you've been charged in error, email us with your M-Pesa transaction reference within 30 days and we'll investigate.