The Pixabits REST API lets you integrate SMS, WhatsApp, Voice, Email, RCS, VAS, Network, and Billing capabilities into your application. All requests use JSON and require an API key.
curl -X POST https://api.pixabits.ai/v2/sms/send \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to":"+919876543210","body":"Hello from Pixabits!","sender":"PIXABT"}'All API requests require a Bearer token in the Authorization header. Tokens are scoped to your organization and can be rotated at any time.
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
/api/v1/sms/reportsv1Summary + daily delivery breakdown for all SMS sent via this API key.
curl -X GET https://api.pixabits.ai/api/v1/sms/reports
/api/v1/sms/sendv1POST /api/v1/sms/send
curl -X POST https://api.pixabits.ai/api/v1/sms/send
/api/v1/sms/shortenv1GET /api/v1/sms/shorten
curl -X GET https://api.pixabits.ai/api/v1/sms/shorten
/api/v1/sms/shortenv1POST /api/v1/sms/shorten
curl -X POST https://api.pixabits.ai/api/v1/sms/shorten
/api/v1/sms/status/{jobId}v1Returns delivery status for a customer API SMS job.
curl -X GET https://api.pixabits.ai/api/v1/sms/status/{jobId}/api/v1/sms/templatesv1List DLT-approved SMS templates for the authenticated org.
curl -X GET https://api.pixabits.ai/api/v1/sms/templates
/api/v1/sms/templates/{id}v1Fetch a single SMS template by its UUID.
curl -X GET https://api.pixabits.ai/api/v1/sms/templates/{id}/api/v1/sms/webhooksv1SMS delivery webhook registration (customer-facing).
curl -X GET https://api.pixabits.ai/api/v1/sms/webhooks
/api/v1/sms/webhooksv1SMS delivery webhook registration (customer-facing).
curl -X POST https://api.pixabits.ai/api/v1/sms/webhooks
/api/wa/ext/media-libraryextLibrary
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/wa/ext/media-library \ -H "Authorization: Bearer YOUR_API_KEY"
/api/wa/ext/media-libraryextLibrary
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/wa/ext/media-library \ -H "Authorization: Bearer YOUR_API_KEY"
/api/wa/ext/templatesextGET /api/wa/ext/templates
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/wa/ext/templates \ -H "Authorization: Bearer YOUR_API_KEY"
/api/wa/ext/templatesextReturn a useful error instead of Next.js default HTML for wrong methods
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/wa/ext/templates \ -H "Authorization: Bearer YOUR_API_KEY"
/api/wa/v1/ai-agent-handoffv1Handoff
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/wa/v1/ai-agent-handoff \ -H "Authorization: Bearer YOUR_API_KEY"
/api/wa/v1/ai-agent-handoffv1Handoff
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/wa/v1/ai-agent-handoff \ -H "Authorization: Bearer YOUR_API_KEY"
/api/wa/v1/bulk/{jobId}v1Returns status and progress for a bulk WhatsApp send job.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/wa/v1/bulk/{jobId} \
-H "Authorization: Bearer YOUR_API_KEY"/api/wa/v1/bulk/{jobId}/recipientsv1Returns per-recipient delivery data for a bulk WhatsApp job.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/wa/v1/bulk/{jobId}/recipients \
-H "Authorization: Bearer YOUR_API_KEY"/api/wa/v1/bulk/{jobId}/recipientsv1Returns per-recipient delivery data for a bulk WhatsApp job.
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/wa/v1/bulk/{jobId}/recipients \
-H "Authorization: Bearer YOUR_API_KEY"/api/wa/v1/inbox/conversationsv1Lists conversations for the authenticated WABA with pagination and optional polling support via the `since` query parameter.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/wa/v1/inbox/conversations \ -H "Authorization: Bearer YOUR_API_KEY"
/api/wa/v1/inbox/conversations/{id}/messagesv1Returns paginated message history for a single conversation.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/wa/v1/inbox/conversations/{id}/messages \
-H "Authorization: Bearer YOUR_API_KEY"/api/wa/v1/inbox/conversations/{id}/replyv1Sends a free-form (session) text reply within an open 24-hour WhatsApp conversation window.
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/wa/v1/inbox/conversations/{id}/reply \
-H "Authorization: Bearer YOUR_API_KEY"/api/wa/v1/inbox/conversations/{id}/send-mediav1Media
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/wa/v1/inbox/conversations/{id}/send-media \
-H "Authorization: Bearer YOUR_API_KEY"/api/wa/v1/ivr/eventsv1Public IVR event ingestion for third-party providers.
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/wa/v1/ivr/events \ -H "Authorization: Bearer YOUR_API_KEY"
/api/wa/v1/sendv1GET /api/wa/v1/send
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/wa/v1/send \ -H "Authorization: Bearer YOUR_API_KEY"
/api/wa/v1/sendv1Public API for sending WhatsApp messages via API token.
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/wa/v1/send \ -H "Authorization: Bearer YOUR_API_KEY"
/api/wa/v1/send/bulkv1Bulk WhatsApp send via API token.
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/wa/v1/send/bulk \ -H "Authorization: Bearer YOUR_API_KEY"
/api/voice/ext/audioextList the org's audio library clips
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/voice/ext/audio \ -H "Authorization: Bearer YOUR_API_KEY"
/api/voice/ext/audioextList the org's audio library clips
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/voice/ext/audio \ -H "Authorization: Bearer YOUR_API_KEY"
/api/voice/ext/audio/{id}/downloadextFetch a clip for playback/preview
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/voice/ext/audio/{id}/download \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/audio/ttsextSynthesize a TTS clip (for a preview sample or to pre-generate a camp_type 2 message). Saves to the audio library and reuses on repeat, same as the dashboard route.
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/voice/ext/audio/tts \ -H "Authorization: Bearer YOUR_API_KEY"
/api/voice/ext/callsextTrigger a single outbound call via the external API
Authorization: Bearer <api_token>{
"to_number": "string",
"from_number": "string",
"camp_type": 0,
"tts_text": "string",
"audio_id": "string",
"audio_url": "string",
"flow_id": "string",
"campaign_id": "string"
}curl -X POST https://api.pixabits.ai/api/voice/ext/calls \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to_number":"string","from_number":"string","camp_type":0,"tts_text":"string","audio_id":"string","audio_url":"string","flow_id":"string","campaign_id":"string"}'/api/voice/ext/campaignsextList campaigns for the org
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/voice/ext/campaigns \ -H "Authorization: Bearer YOUR_API_KEY"
/api/voice/ext/campaignsextList campaigns for the org
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/voice/ext/campaigns \ -H "Authorization: Bearer YOUR_API_KEY"
/api/voice/ext/campaigns/{id}extGet campaign details
Authorization: Bearer <api_token>curl -X DELETE https://api.pixabits.ai/api/voice/ext/campaigns/{id} \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/campaigns/{id}extGet campaign details
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/voice/ext/campaigns/{id} \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/campaigns/{id}extGet campaign details
Authorization: Bearer <api_token>curl -X PATCH https://api.pixabits.ai/api/voice/ext/campaigns/{id} \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/campaigns/{id}extGet campaign details
Authorization: Bearer <api_token>curl -X PUT https://api.pixabits.ai/api/voice/ext/campaigns/{id} \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/campaigns/{id}/contactsextUpload audience contacts to a voice campaign. Supports four content modes:
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/voice/ext/campaigns/{id}/contacts \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/campaigns/{id}/launchextPOST /api/voice/ext/campaigns/{id}/launch
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/voice/ext/campaigns/{id}/launch \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/campaigns/{id}/pauseextPause a running campaign
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/voice/ext/campaigns/{id}/pause \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/campaigns/{id}/resumeextResume a paused campaign
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/voice/ext/campaigns/{id}/resume \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/campaigns/{id}/statusextCampaign status + KPIs
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/voice/ext/campaigns/{id}/status \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/campaigns/{id}/stopextStop a running/paused campaign
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/voice/ext/campaigns/{id}/stop \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/campaigns/runextRun a voice campaign in ONE call.
Authorization: Bearer <api_token>{
"name": "string",
"recipients": [
"..."
],
"camp_type": 0,
"caller_id": "string",
"tts_text": "string",
"audio_id": "string",
"audio_url": "string",
"flow_id": "string",
"max_retries": 0,
"scheduled_at": "string"
}curl -X POST https://api.pixabits.ai/api/voice/ext/campaigns/run \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"string","recipients":["..."],"camp_type":0,"caller_id":"string","tts_text":"string","audio_id":"string","audio_url":"string","flow_id":"string","max_retries":0,"scheduled_at":"string"}'/api/voice/ext/contactsextUpload a named contact dataset — not tied to any specific campaign.
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/voice/ext/contacts \ -H "Authorization: Bearer YOUR_API_KEY"
/api/voice/ext/ivrextList the org's IVR / call flows
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/voice/ext/ivr \ -H "Authorization: Bearer YOUR_API_KEY"
/api/voice/ext/ivr/{id}extGet one IVR / call flow (summary/detail for preview)
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/voice/ext/ivr/{id} \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/recordings/{callId}extDownload a call's recording
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/voice/ext/recordings/{callId} \
-H "Authorization: Bearer YOUR_API_KEY"/api/voice/ext/reportsextCDR / delivery reports for the org
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/voice/ext/reports \ -H "Authorization: Bearer YOUR_API_KEY"
/api/email/ext/campaigns/{jobId}/statsextReturns aggregate delivery stats for a send job (campaign).
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/email/ext/campaigns/{jobId}/stats \
-H "Authorization: Bearer YOUR_API_KEY"/api/email/ext/domainsextReturns verified sending domains for the authenticated organisation.
curl -X GET https://api.pixabits.ai/api/email/ext/domains
/api/email/ext/reportsextPaginated delivery report — one row per recipient per job.
curl -X GET https://api.pixabits.ai/api/email/ext/reports
/api/email/ext/sendextExternal API — send a single or bulk email using a Pixabits email API key.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/email/ext/send \ -H "Authorization: Bearer YOUR_API_KEY"
/api/email/ext/sendextPOST /api/email/ext/send
Authorization: Bearer <api_token>{
"to": "recipient@example.com",
"subject": "Hello",
"htmlContent": "<html>...</html>",
"fromEmail": "sender@brand.com",
"fromName": "Brand",
"replyTo": "reply@brand.com",
"domain": "brand.com"
}curl -X POST https://api.pixabits.ai/api/email/ext/send \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to":"recipient@example.com","subject":"Hello","htmlContent":"<html>...</html>","fromEmail":"sender@brand.com","fromName":"Brand","replyTo":"reply@brand.com","domain":"brand.com"}'/api/email/ext/status/{jobId}extReturns delivery status and per-recipient breakdown for a send job.
curl -X GET https://api.pixabits.ai/api/email/ext/status/{jobId}/api/email/ext/templatesextExternal API — list email templates using a Pixabits email API key.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/email/ext/templates \ -H "Authorization: Bearer YOUR_API_KEY"
/api/email/ext/templatesextExternal API — list email templates using a Pixabits email API key.
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/email/ext/templates \ -H "Authorization: Bearer YOUR_API_KEY"
/api/email/ext/templates/{id}extExternal API — fetch a single email template by UUID.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/email/ext/templates/{id} \
-H "Authorization: Bearer YOUR_API_KEY"/api/email/ext/templates/{id}extExternal API — fetch a single email template by UUID.
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/email/ext/templates/{id} \
-H "Authorization: Bearer YOUR_API_KEY"/api/email/ext/webhooksextList registered webhooks
curl -X GET https://api.pixabits.ai/api/email/ext/webhooks
/api/email/ext/webhooksextList registered webhooks
curl -X POST https://api.pixabits.ai/api/email/ext/webhooks
/api/email/ext/webhooks/{id}extUpdate (enable/disable/change url)
curl -X DELETE https://api.pixabits.ai/api/email/ext/webhooks/{id}/api/email/ext/webhooks/{id}extUpdate (enable/disable/change url)
curl -X PATCH https://api.pixabits.ai/api/email/ext/webhooks/{id}/api/v1/email/otp/sendv1Customer-facing Email OTP — generate + send a one-time code.
curl -X POST https://api.pixabits.ai/api/v1/email/otp/send
/api/v1/email/otp/statsv1Live OTP metrics for the customer-facing API:
curl -X GET https://api.pixabits.ai/api/v1/email/otp/stats
/api/v1/email/otp/verifyv1Customer-facing Email OTP — verify a code against a prior /send requestId.
curl -X POST https://api.pixabits.ai/api/v1/email/otp/verify
/api/rcs/ext/accountextUse this as a "ping" to verify your integration is configured correctly.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/rcs/ext/account \ -H "Authorization: Bearer YOUR_API_KEY"
/api/rcs/ext/bulkextExternal bulk RCS send — sends the same approved template to a list of mobile numbers. Callable from any system using a Bearer API token.
Authorization: Bearer <api_token>{
"templateId": "template-uuid-or-id",
"mobiles": ["9876543210", "9123456789"]
}curl -X POST https://api.pixabits.ai/api/rcs/ext/bulk \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"templateId":"template-uuid-or-id","mobiles":["9876543210","9123456789"]}'/api/rcs/ext/bulk/{jobId}extReturns status and progress for a bulk send job.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/rcs/ext/bulk/{jobId} \
-H "Authorization: Bearer YOUR_API_KEY"/api/rcs/ext/bulk/{jobId}/statsextReturns delivery stats for a bulk send job.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/rcs/ext/bulk/{jobId}/stats \
-H "Authorization: Bearer YOUR_API_KEY"/api/rcs/ext/messagesextPaginated + filterable list of messages sent via this API key, plus aggregate stats for the requested date range.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/rcs/ext/messages \ -H "Authorization: Bearer YOUR_API_KEY"
/api/rcs/ext/reportsextSummary and daily breakdown for all messages sent via this API key.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/rcs/ext/reports \ -H "Authorization: Bearer YOUR_API_KEY"
/api/rcs/ext/statusextLook up delivery status for a specific message.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/rcs/ext/status \ -H "Authorization: Bearer YOUR_API_KEY"
/api/rcs/ext/templatesextGET /api/rcs/ext/templates
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/rcs/ext/templates \ -H "Authorization: Bearer YOUR_API_KEY"
/api/rcs/ext/templatesextCreates a template in 'draft' status.
Authorization: Bearer <api_token>curl -X POST https://api.pixabits.ai/api/rcs/ext/templates \ -H "Authorization: Bearer YOUR_API_KEY"
/api/rcs/ext/templates/{id}extReturns a single template by ID (must belong to the org).
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/rcs/ext/templates/{id} \
-H "Authorization: Bearer YOUR_API_KEY"/api/rcs/ext/templates/{id}extAllows updating name, title, body, suggestions, media, cards of a draft template.
Authorization: Bearer <api_token>curl -X PATCH https://api.pixabits.ai/api/rcs/ext/templates/{id} \
-H "Authorization: Bearer YOUR_API_KEY"/api/rcs/ext/walletextReturns current wallet balance, and usage/transaction history scoped to RCS and this API key.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/rcs/ext/wallet \ -H "Authorization: Bearer YOUR_API_KEY"
/api/rcs/ext/webhooksextLists all registered webhook endpoints for this API key's organisation.
Authorization: Bearer <api_token>curl -X GET https://api.pixabits.ai/api/rcs/ext/webhooks \ -H "Authorization: Bearer YOUR_API_KEY"
/api/rcs/ext/webhooksextRegister a new webhook endpoint.
Authorization: Bearer <api_token>{
"url": "string",
"events": "string",
"secret": "string"
}curl -X POST https://api.pixabits.ai/api/rcs/ext/webhooks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"string","events":"string","secret":"string"}'/api/rcs/ext/webhooks/{id}extPermanently removes a registered webhook endpoint.
Authorization: Bearer <api_token>curl -X DELETE https://api.pixabits.ai/api/rcs/ext/webhooks/{id} \
-H "Authorization: Bearer YOUR_API_KEY"/api/rcs/ext/webhooks/{id}extUpdate events list, isActive flag, or secret.
Authorization: Bearer <api_token>curl -X PATCH https://api.pixabits.ai/api/rcs/ext/webhooks/{id} \
-H "Authorization: Bearer YOUR_API_KEY"Webhooks deliver real-time event notifications to your server via HTTP POST. Configure your webhook URL in the Dashboard. Each event includes a JSON payload with event type, timestamp, and relevant data.
| Event | Channel | Description |
|---|---|---|
| sms.message.delivered | SMS | SMS delivered to handset |
| sms.message.failed | SMS | SMS delivery failed |
| sms.otp.verified | SMS | OTP code verified successfully |
| wa.message.delivered | WhatsApp message delivered | |
| wa.message.read | WhatsApp message read by recipient | |
| wa.message.received | Incoming WhatsApp message from user | |
| voice.call.answered | Voice | Outbound call answered |
| voice.call.completed | Voice | Call ended — duration and recording available |
| email.delivered | Email delivered to inbox | |
| email.opened | Email opened by recipient | |
| email.clicked | Link clicked in email body | |
| email.bounced | Email bounced (hard or soft) | |
| rcs.message.delivered | RCS | RCS message delivered to handset |
| rcs.message.read | RCS | RCS message read by recipient |
| rcs.fallback.triggered | RCS | Fallback to SMS triggered for RCS |
| push.delivered | Push | Push notification delivered to device |
| push.clicked | Push | User tapped on push notification |
| vas.verification.success | VAS | KYC/verification completed successfully |
| vas.verification.failed | VAS | Verification failed or rejected |
| net.sim-swap.detected | Network API | SIM swap event detected on number |
| net.number.verified | Network API | Silent number verification completed |
| aicam.campaign.completed | AiCAM | Campaign run completed with results |
| aicam.ab-test.winner | AiCAM | A/B test winner variant selected by AI |
| wallet.recharged | Billing | Wallet recharge payment confirmed |
| wallet.balance.low | Billing | Wallet balance below threshold |
{
"event": "sms.message.delivered",
"timestamp": "2026-03-21T10:05:00Z",
"data": {
"message_id": "msg_abc123",
"to": "+919876543210",
"status": "delivered",
"delivered_at": "2026-03-21T10:04:58Z"
}
}All API responses include a standard HTTP status code. Below are the codes you may encounter.
| Status | Code | Description |
|---|---|---|
| 200 | OK | Request succeeded |
| 201 | CREATED | Resource created successfully |
| 400 | BAD_REQUEST | Invalid request body or parameters |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 403 | FORBIDDEN | Insufficient permissions or plan restriction |
| 404 | NOT_FOUND | Resource not found |
| 409 | CONFLICT | Duplicate resource or conflicting state |
| 422 | VALIDATION_ERROR | Request body failed validation |
| 429 | RATE_LIMITED | Too many requests — retry after cooldown |
| 500 | INTERNAL_ERROR | Server error — contact support if persistent |
| 503 | SERVICE_UNAVAILABLE | Temporary outage — retry with backoff |
Rate limits are enforced per API key. When you exceed the limit, the API returns a 429 status with a Retry-After header indicating when to retry.
| Plan | Requests/sec | Burst | Daily Limit |
|---|---|---|---|
| Starter | 10 req/sec | 50 | 1,000 messages |
| Growth | 200 req/sec | 1,000 | Unlimited |
| Enterprise | 1,000 req/sec | 5,000 | Unlimited |
| Premium | 5,000+ req/sec | 10,000 | Unlimited |
Official SDKs for popular languages. Install via your package manager and start building in minutes.