API Catalogue
Tip
Use the search to quickly find endpoints, and open the playground to try requests with your current auth context.
Explore our APIs. Pick a card to open the full reference.
Tip: You can authorize requests using the top-right login and your tenant will be applied automatically.
Overview
The Tech231 Platform exposes multiple APIs for managing USSD applications, SMS messaging, and related services. All APIs follow REST conventions and use JSON for request/response payloads.
API Services
- SMS API - Manage SMS messaging, sender IDs, and message delivery
- USSD API - Deploy and manage USSD applications, handle session execution
- Auth API - (Reference only) Multi-tenant authentication and authorization via Zitadel OIDC
SMS API
Base URL: https://sms.tech231apps.net/api/v2
Documentation: See sms-api.json for full OpenAPI specification
Endpoints by Category
SMS Management
POST /sms- Send SMS messageGET /sms/{messageId}- Get message statusDELETE /sms/{messageId}- Cancel pending message
Sender ID Management
GET /senderid- List sender IDs for tenantPOST /senderid- Register new sender IDPATCH /senderid/{senderId}- Update sender IDDELETE /senderid/{senderId}- Deactivate sender ID
Message Templates
GET /templates- List message templatesPOST /templates- Create templatePUT /templates/{templateId}- Update templateDELETE /templates/{templateId}- Delete template
Reporting & Analytics
GET /reports/delivery-status- Delivery status reportGET /reports/cost-analysis- Cost analysis by sender/destinationGET /reports/compliance- Compliance and regulatory report
USSD API
Base URL: https://api.tech231.com/api/ussd
Documentation: See ussd-api.json for full OpenAPI specification
Endpoints by Category
Application Deployment (Deployment Service)
POST /deploy- Deploy new USSD application from DSLPUT /deploy/{applicationName}- Update deployed USSD applicationDELETE /deploy/{applicationName}- Undeploy applicationGET /deploy/{applicationName}- Get application definition and metadata
Session Execution (Execution Service)
POST /session- Start new USSD sessionPOST /session/{sessionId}/input- Send user input to sessionGET /session/{sessionId}- Get current session stateDELETE /session/{sessionId}- Terminate session
Monitoring & Observability (Monitoring Service)
GET /health- Service health statusGET /metrics- Prometheus-format metrics (OpenTelemetry)GET /logs- Structured logs (if enabled)
USSD DSL (Domain-Specific Language)
The USSD API accepts application definitions in HCL-like DSL format.
DSL Structure Overview
Code
Terminal Search Example
New in v2.1 — Use terminal menus for search results and one-time displays.
Code
See USSD DSL Guide for full specification.
Authentication & Authorization
All APIs require authentication via OAuth 2.0 (OIDC) with Zitadel.
Request Headers
Code
JWT Token Structure
The token includes standard claims:
sub- Subject (user ID)org_idortenant_id- Organization/Tenant IDroles- User roles for authorizationiat- Issued atexp- Expiration time
Error Handling
All APIs follow a consistent error response format:
Code
Common Error Codes
UNAUTHORIZED- Missing or invalid authenticationFORBIDDEN- User lacks required permissionsNOT_FOUND- Resource not foundINVALID_INPUT- Malformed request or invalid dataCONFLICT- Resource already exists or state conflictINTERNAL_ERROR- Server error
Rate Limiting
APIs implement rate limiting per tenant and API key:
- SMS API: 1000 requests per minute
- USSD API: 100 requests per minute
Rate limit status is included in response headers:
Code
Webhooks & Callbacks
SMS Delivery Callbacks
POST to your configured webhook URL when SMS delivery status changes:
Code
USSD Session Callbacks (Optional)
If configured, notifications are sent at key session events:
- Session started
- Session terminated (with reason: completed, abandoned, timeout)
- Action execution result
SDK & Client Libraries
Official client libraries are available for:
- Node.js/TypeScript -
@tech231/platform-sdk - Python -
tech231-platform-sdk - .NET -
Tech231.Platform.SDK - Go -
github.com/tech231/platform-sdk-go
See SDK Documentation for usage examples.
Versioning
APIs use semantic versioning. The current version is v1.
- Breaking changes → Major version bump (v1 → v2)
- New features → Minor version bump (v1.0 → v1.1)
- Bug fixes → Patch version bump (v1.0.0 → v1.0.1)
The version is specified in the Base URL: /api/sms/v1/...
Support & Issues
For API issues, feature requests, or documentation corrections:
- GitHub Issues: tech231/platform
- Email: api-support@tech231.com
- Slack: #api-support (internal)