{"id":"sms","slug":"sms","name":"Programmable SMS","shortName":"Programmable SMS","problemStatement":"Send/receive SMS for agents and auth.","whenNotTopPick":"Email-only notifications — Resend. Multi-channel orchestration — Courier on top of Twilio.","categoryIds":["cat-comms"],"depotPickProviderId":"twilio","depotPickRationale":"capability coverage + maturity.","runnersUpIds":["courier","bird","onesignal","telnyx","plivo"],"weights":{"capabilityFit":0.25,"pricePerformance":0.18,"latencyReliability":0.15,"developerDx":0.15,"privacyPosture":0.1,"lockInRisk":0.07,"maturity":0.1},"methodologyNotes":"capability coverage + maturity.","tags":["sms"],"depth":{"whenNotToUse":{"text":"Email-only notifications — Resend. Multi-channel orchestration — Courier on top of Twilio.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"courier","name":"Courier","overallForJob":8.09,"pickOverallForJob":8.26,"beatsPickOn":["pricePerformance","developerDx","lockInRisk"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":5.5,"runnerUpLockInRisk":5,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":[],"pickNotes":[],"selfHostFallback":[],"migration":"Runner-up Courier has lower stored lock-in risk (5 vs 5.5, 0–10, higher = more lock-in).","migrationReason":null,"derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"freshness":{"pick":{"score":{"asOf":"2026-10-19","ageDays":8,"stale":false,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-10-19","ageDays":8,"stale":false,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":1,"sourcesReachable":1,"pricingRows":2,"pricingRowsReconfirmed":0,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}}},"depotPick":{"id":"twilio","slug":"twilio","name":"Twilio","tagline":"Default when agents need SMS/voice globally. For email-only, don't drag Twilio in.","overall":8.26},"runnersUp":[{"id":"courier","slug":"courier","name":"Courier","tagline":"Use when your agent/product notifies across many channels with preferences. Skip if you only send email.","overall":8.09},{"id":"bird","slug":"bird","name":"Bird (ex-MessageBird)","tagline":"WhatsApp/SMS peer especially for EU (ex-MessageBird). Twilio remains default SMS/voice toolkit; Bird when…","overall":7.88},{"id":"onesignal","slug":"onesignal","name":"OneSignal","tagline":"Push-first notify peer with pinned Free/$19 Growth card (Round 9 high). Prefer Knock/Courier when agents…","overall":8.09},{"id":"telnyx","slug":"telnyx","name":"Telnyx","tagline":"SMS/voice peer when $/part and published carrier fees matter. Twilio remains default toolkit gravity; Bird…","overall":8.42},{"id":"plivo","slug":"plivo","name":"Plivo","tagline":"CPaaS peer especially when Voice AI Agents + SIP streaming matter. Depot voice-agent platform pick stays…","overall":8.1}]}