Back to Blog
Developer ResourcesFebruary 25, 20265 min read

Build a Phone-Enabled MVP in 5 Minutes with AgentCall

Go from zero to a working phone-enabled app in 5 minutes. Free tier, no credit card, and a complete code walkthrough with the AgentCall SDK.

From Zero to Phone Number in 5 Minutes

You have an idea for an app that needs SMS, voice, or phone verification. You don't want to spend a week configuring Twilio, setting up webhooks, and figuring out carrier quirks. You want a phone number, an API, and working code — now.

AgentCall's free tier gives you everything you need to prototype: 1 phone number, 50 SMS, and 10 voice minutes. No credit card required. Here's the complete walkthrough.

Step 1: Sign Up (30 seconds)

Create an account at agentcall.co/sign-up. Email and password, or sign in with Google. No credit card, no enterprise sales call, no “contact us for pricing.”

Once signed in, grab your API key from the dashboard. It looks like ac_live_xxxxxxxxxxxxxxxx.

Step 2: Install the SDK (10 seconds)

npm install agentcall

The SDK is a lightweight TypeScript/JavaScript client. It works in Node.js, Deno, Bun, and any runtime that supports fetch.

Step 3: Provision a Phone Number (1 API call)

import AgentCall from 'agentcall';

const client = new AgentCall({ apiKey: 'ac_live_...' });

const number = await client.numbers.provision({
  country: 'US',
  type: 'local',
  label: 'my-mvp',
});

console.log(`Your number: ${number.number}`);
// Your number: +15551234567

That's it. You now have a real phone number. It can send SMS, receive SMS, make calls, and receive calls. On the free tier, you get one number at no cost.

Step 4: Send an SMS (1 API call)

const message = await client.sms.send({
  from: number.id,
  to: '+14155559999',
  body: 'Hello from my MVP! Built with AgentCall.',
});

console.log(`Message sent: ${message.id}`);

Step 5: Receive SMS via Webhook

// Set up a webhook to receive incoming messages
await client.webhooks.create({
  url: 'https://my-mvp.com/webhook',
  events: ['sms.received'],
});

// In your Express/Fastify server:
app.post('/webhook', (req, res) => {
  const { event, data } = req.body;

  if (event === 'sms.received') {
    console.log(`New SMS from ${data.from}: ${data.body}`);

    // If it contains an OTP, it's already extracted:
    if (data.otp) {
      console.log(`OTP code: ${data.otp}`);
    }
  }

  res.json({ received: true });
});

Step 6: Make a Voice Call (Bonus)

const call = await client.calls.initiate({
  from: number.id,
  to: '+14155559999',
});

console.log(`Call initiated: ${call.id}`);
// Free tier includes 10 voice minutes

The Complete MVP Script

Here's everything in one file — provision a number, send an SMS, set up a webhook, and wait for a reply:

import AgentCall from 'agentcall';
import express from 'express';

const client = new AgentCall({ apiKey: process.env.AGENTCALL_API_KEY });
const app = express();
app.use(express.json());

async function main() {
  // Provision a number
  const number = await client.numbers.provision({
    country: 'US',
    type: 'local',
    label: 'my-mvp',
  });
  console.log(`Number: ${number.number}`);

  // Set up webhook for incoming messages
  await client.webhooks.create({
    url: 'https://my-mvp.com/webhook',
    events: ['sms.received', 'sms.otp'],
  });

  // Send a test SMS
  await client.sms.send({
    from: number.id,
    to: '+14155559999',
    body: 'Hello! Reply to test two-way SMS.',
  });

  console.log('SMS sent. Waiting for replies...');
}

// Handle incoming messages
app.post('/webhook', (req, res) => {
  const { event, data } = req.body;
  console.log(`Event: ${event}`, data);
  res.json({ received: true });
});

app.listen(3000, () => {
  console.log('Webhook server running on :3000');
  main();
});

Free Tier Limits

The free tier is designed for prototyping and testing. Here's what you get at $0/month:

  • 1 phone number (local, included free)
  • 50 SMS per month (send + receive combined)
  • 10 voice minutes per month
  • OTP extraction included on all incoming SMS
  • Webhook delivery for all events

When you're ready to scale, the Pro plan ($19.99/month) removes all limits: unlimited numbers at $2/month each, SMS at $0.015/message, voice at $0.035/minute, and SIM numbers at $8/month.

Why AgentCall Over Twilio for MVPs?

Twilio is the industry standard, but it's built for enterprise applications. For MVPs, the difference matters:

  • Setup time: Twilio requires account verification, regulatory bundles, and phone number configuration. AgentCall: sign up, get API key, provision number — 2 minutes.
  • Free tier: Twilio's trial gives you $15 credit with restrictions (verified numbers only). AgentCall's free tier has no restrictions — send to any number.
  • OTP extraction: Twilio delivers raw SMS. You parse codes yourself. AgentCall extracts OTP codes automatically and includes them in webhook payloads.
  • Agent-native: If you're building AI agents, AgentCall's per-agent model means less glue code. Twilio is general-purpose; AgentCall is purpose-built.

FAQ

Do I need a credit card to start?

No. The free tier requires no credit card and no payment method. Sign up with email and start building immediately.

Can I upgrade later without losing my number?

Yes. Upgrading to Pro keeps all your existing numbers, webhooks, and configuration. You just get higher limits and access to SIM numbers, call recording, and additional numbers.

What languages does the SDK support?

The official SDK is TypeScript/JavaScript (npm install agentcall). The REST API works with any language that can make HTTP requests — Python, Go, Ruby, PHP, or curl.

Ready to get started?

Give your AI agents their own phone numbers in minutes.

Start Building