phone-calling
Make international phone calls to any country. Low per-minute rates. Pay with PayPal or UPI.
Best use case
phone-calling is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Make international phone calls to any country. Low per-minute rates. Pay with PayPal or UPI.
Teams using phone-calling should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/phone-calling/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How phone-calling Compares
| Feature / Agent | phone-calling | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Make international phone calls to any country. Low per-minute rates. Pay with PayPal or UPI.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
SKILL.md Source
# Ringez Phone Calling API
Make affordable international phone calls from anywhere. No hidden fees, no subscriptions — just pay for the minutes you use.
## What is Ringez?
Ringez is a simple, privacy-focused international calling service that lets you make phone calls to 200+ countries without complicated setups or expensive plans.
**Perfect for:**
- Calling family abroad
- Business calls to international clients
- AI agents making reservations or appointments
- Quick calls without buying a calling plan
---
## Quick Start Guide
### 1. Create an Account
First, check if your email is already registered:
```http
POST https://ringez-api.vercel.app/api/v1/auth/check-email
Content-Type: application/json
{"email": "you@example.com"}
```
**Response:**
- `new_user` → Continue to OTP verification
- `existing_user` → Login with password
#### For New Users: Verify with OTP
**Step 1:** Request OTP
```http
POST https://ringez-api.vercel.app/api/v1/auth/send-otp
Content-Type: application/json
{"email": "you@example.com"}
```
**Step 2:** Verify OTP
```http
POST https://ringez-api.vercel.app/api/v1/auth/verify-otp
Content-Type: application/json
{
"email": "you@example.com",
"otp": "123456"
}
```
**Response:**
```json
{
"session_id": "sess_abc123xyz",
"user": {
"email": "you@example.com",
"balance_minutes": 5
}
}
```
Save the `session_id` — you will need it for all API calls.
#### For Existing Users: Login
```http
POST https://ringez-api.vercel.app/api/v1/auth/login
Content-Type: application/json
{
"email": "you@example.com",
"password": "your-password"
}
```
---
### 2. Check Your Balance
See how many minutes you have before making a call:
```http
GET https://ringez-api.vercel.app/api/v1/auth/me
X-Session-ID: sess_abc123xyz
```
**Response:**
```json
{
"balance_minutes": 5,
"balance_usd": 0,
"email": "you@example.com"
}
```
---
### 3. Make a Phone Call
Use the `idempotency_key` to prevent accidental duplicate calls:
```http
POST https://ringez-api.vercel.app/api/v1/calls/initiate
X-Session-ID: sess_abc123xyz
Content-Type: application/json
{
"to_number": "+919876543210",
"idempotency_key": "sess_abc123xyz_1700000000000_xyz789"
}
```
**Response (Success):**
```json
{
"call_id": "call_xyz789",
"status": "initiated",
"mode": "bridge",
"to_number": "+919876543210",
"from_number": "+17623713590",
"twilio_call_sid": "CAxxxxx"
}
```
**Response (Duplicate Call):**
```json
{
"alreadyInitiated": true,
"callSid": "CAxxxxx"
}
```
---
## Call Modes Explained
Ringez supports two ways to make calls:
### Bridge Mode (Default)
- **How it works:** Calls your phone first, then connects you to the destination
- **Best for:** Personal calls where you want to talk
- **Your phone:** Will ring first
### Direct Mode
- **How it works:** Calls the destination directly
- **Best for:** AI agents, automated calls, or when you do not want your phone to ring
- **Your phone:** Does not ring
**Force Direct Mode:**
```http
POST /api/v1/calls/initiate
X-Session-ID: sess_abc123xyz
Content-Type: application/json
{
"to_number": "+919876543210",
"mode": "direct"
}
```
---
## Preventing Duplicate Calls
When making calls through an API, network delays or retries can accidentally create multiple calls. Use an **idempotency key** to prevent this.
### What is an Idempotency Key?
A unique identifier for each call attempt. If you use the same key within 5 minutes, the API returns the original call instead of creating a new one.
### How to Use It
Generate a unique key for each user action:
```javascript
const idempotencyKey = `${sessionId}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
// Example: sess_abc123_1700000000000_xyz789abc
```
### Important Notes
- **5-minute window:** Same key within 5 minutes returns the existing call
- **After 5 minutes:** Same key creates a new call
- **Generate fresh keys:** Create a new key for each button click, not for API retries
- **Response:** If duplicate detected, you get `{alreadyInitiated: true, callSid: "..."}`
---
## Pricing
Pay only for what you use. No monthly fees, no subscriptions.
### USD Plans
| Plan | Price | Minutes | Rate per Minute |
|------|-------|---------|-----------------|
| Starter | $5 | 30 | $0.17 |
| Popular | $15 | 120 | $0.13 |
| Best Value | $30 | 300 | $0.10 |
### INR Plans
| Plan | Price | Minutes | Rate per Minute |
|------|-------|---------|-----------------|
| Starter | ₹99 | 7 | ₹14/min |
| Popular | ₹199 | 19 | ₹10/min |
| Value | ₹499 | 60 | ₹8/min |
| Power | ₹999 | 143 | ₹7/min |
**Billing:** Rounded up to the nearest minute. A 2-minute 30-second call = 3 minutes charged.
---
## Managing Active Calls
### Check Call Status
See if your call is still ringing, connected, or completed:
```http
GET https://ringez-api.vercel.app/api/v1/calls/call_xyz789
X-Session-ID: sess_abc123xyz
```
**Response:**
```json
{
"call_id": "call_xyz789",
"status": "in-progress",
"duration": 120,
"estimated_cost": {
"minutes": 2,
"amount": 0.25,
"currency": "USD"
}
}
```
### End a Call Early
Hang up a call before it finishes:
```http
DELETE https://ringez-api.vercel.app/api/v1/calls/call_xyz789
X-Session-ID: sess_abc123xyz
```
### Navigate Phone Menus (DTMF)
Press numbers during a call (useful for bank menus, customer support):
```http
POST https://ringez-api.vercel.app/api/v1/calls/call_xyz789/actions
X-Session-ID: sess_abc123xyz
Content-Type: application/json
{
"action": "dtmf",
"parameters": {
"digits": "1"
}
}
```
**Common DTMF uses:**
- `{"digits": "1"}` — Press 1 for English
- `{"digits": "1234"}` — Enter PIN
- `{"digits": "w"}` — Wait 0.5 seconds
---
## Call History
See your past calls:
```http
GET https://ringez-api.vercel.app/api/v1/calls?limit=10&offset=0
X-Session-ID: sess_abc123xyz
```
**Response:**
```json
{
"calls": [
{
"call_id": "call_abc123",
"to_number": "+919876543210",
"status": "completed",
"duration": 300,
"cost": 0.375,
"started_at": "2026-02-09T10:00:00Z"
}
],
"pagination": {
"total": 25,
"has_more": true
}
}
```
---
## Use Cases
### Personal Call to Family
```
User: Call my mom in India
AI: I will help you call India. First, let me check your balance...
You have 15 minutes available.
Calling +91 98765 43210 now...
AI: Your phone is ringing. Pick up and I will connect you.
```
### AI Agent Making a Reservation
```
User: Book a table at Taj Restaurant for 7 PM
AI: I will call Taj Restaurant for you.
[AI uses direct mode — your phone does not ring]
AI: Calling +91 12345 67890...
AI: Hello, I would like to make a reservation for 2 people at 7 PM today.
AI: ✅ Reservation confirmed! Table for 2 at 7 PM under your name.
```
---
## Important Information
### Free Minutes
New accounts get **5 free minutes** to test the service. These are for testing only — please add credits for regular use.
### Adding Credits
**This skill cannot add credits.** To add minutes:
1. Visit: https://ringez.com/wallet
2. Pay with PayPal (USD) or UPI (INR)
3. Credits appear instantly
**Why?** Payment processing requires secure browser redirects and PCI compliance that APIs cannot handle.
### Low Balance Handling
If someone tries to call with insufficient balance:
```
AI: Let me check your balance...
You have 0 minutes left. You will need to add credits first.
💳 Add credits at: https://ringez.com/wallet
The rates are:
• USA: $0.05/min
• India: $0.08/min
• UK: $0.06/min
Come back after adding credits and I will make that call!
```
---
## API Reference Quick Reference
| Action | Method | Endpoint | Headers |
|--------|--------|----------|---------|
| Check Email | POST | /auth/check-email | Content-Type |
| Send OTP | POST | /auth/send-otp | Content-Type |
| Verify OTP | POST | /auth/verify-otp | Content-Type |
| Login | POST | /auth/login | Content-Type |
| Check Balance | GET | /auth/me | X-Session-ID |
| Make Call | POST | /calls/initiate | X-Session-ID, Content-Type |
| Call Status | GET | /calls/:call_id | X-Session-ID |
| End Call | DELETE | /calls/:call_id | X-Session-ID |
| Call History | GET | /calls | X-Session-ID |
| DTMF/Actions | POST | /calls/:call_id/actions | X-Session-ID, Content-Type |
---
## Support
Need help? Contact us at support@ringez.com
**About Ringez:** Built by an independent creator, not a big corporation. Your support keeps the service running! 🙏Related Skills
Bland AI — Voice Calling Skill
Make and manage AI-powered phone calls via the Bland AI API.
openclaw-phone
Use CallMyCall API to start, end, and check AI phone calls, and return results in chat. Use when the user asks to call someone, plan a future call, end a call, or fetch call results.
clawphone-wechat-control
处理微信会话列表、进入聊天、发送消息、处理微信内弹窗与聊天页失败排查。适用于用户要求查看微信消息、回复联系人、转发、处理聊天输入框或发送失败时。执行时必须先确认当前在微信的哪个页面,再按聊天场景一步一验。
clawphone-phone-control
使用手机控制 MCP 完成手机界面感知与操作。适用于读取当前手机状态、打开 App、处理弹窗、点击控件、输入文本、排查手机自动化失败等场景。执行时优先读取界面状态,涉及坐标点击时必须基于当前截图临时判定,禁止把历史坐标当成通用规则。
phone-calls
Make and manage real phone calls through Twilio. Handles outbound calls with a stated objective, monitors call progress, and returns transcripts and summaries. Use when the user wants to call someone, check on a call, or review call history.
phone-call
Make autonomous phone calls with AI voice using Twilio, Deepgram, and ElevenLabs
calling-agent-squad
Activate a multi-agent team (the Squad) to manage complex projects, business tasks, or development workflows. The squad includes a Manager, Architect, Coder, Reviewer, and Observer. Use when the user wants to "call a squad", "start a project", or "deploy squad" with specialized roles and quality control loops.
Claw Use Android — Phone Control for AI Agents
Give your AI agent eyes, hands, and a voice on a real Android phone.
open-autoglm-phone-agent
Expert skill for Open-AutoGLM, an AI phone agent framework that controls Android/HarmonyOS/iOS devices via natural language using the AutoGLM vision-language model
---
name: article-factory-wechat
humanizer
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.