Search code examples
c#twiliotwilio-api

Twilio C# api usage records always show 0


I need to show daily sms sent count using Twilio C# api. I am referring to: https://www.twilio.com/docs/usage/api/usage-record Here is my code:

 public int sentToday()
    {

        int sTotalTodaysRecord = 0;
        string AccountId = ConfigurationManager.AppSettings["AccountId"];
        string AuthToken = ConfigurationManager.AppSettings["AuthToken"];

       

        TwilioClient.Init(AccountId, AuthToken);
        //var records = TodayResource.Read();

        var records = LastMonthResource.Read();
        foreach (var record in records)
        {
            sTotalTodaysRecord = record.Count;
            break;
        }
        return sTotalTodaysRecord;
    }

whether I use TodayResource or LastMonthResource count is always 0. I can check the sms logs and I know messages have been sent last month or even on particular day. What am I missing here ? Or do I have to count it from sms logs ?


Solution

  • In your foreach loop you put a break statement which immediately halts the loop at the end of your first iteration. Most likely, the first record in your records has Count of 0 and thus the sTotalTodaysRecord will also be 0.

    This Usage Records API returns usage for many categories, including for products that you aren't using which would be 0.

    Here I have a console app that groups the usage by the AsOf date and then goes through each record to print their Count, CountUnit, and Category. After adding all the counts I get 305.

    using Twilio;
    using Twilio.Rest.Api.V2010.Account.Usage.Record;
    
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
    string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");
    
    TwilioClient.Init(accountSid, authToken);
    
    var records = LastMonthResource.Read();
    var groupedByAsOf = records
        .GroupBy(r => r.AsOf)
        .OrderBy(r => r.Key);
    
    int totalCount = 0;
    
    foreach (var group in groupedByAsOf)
    {
        Console.WriteLine($"As Of {group.Key}");
        foreach(var record in group)
        {
            Console.WriteLine($"{record.Count} {record.CountUnit} ({record.Category})");
    
            if(record.Count != null)
                totalCount += int.Parse(record.Count);
        }
    
        Console.WriteLine();
    }
    
    Console.WriteLine($"Total count: {totalCount}");
    

    The output looks like this:

    As Of 2022-09-21T12:23:41-04:00
    0 units (wireless-usage)
    0  (pv-basic-rooms)
    0 media (ip-messaging-data-storage)
    0 units (marketplace-bot-msg.ai-deliveryaware)
    0 commands (wireless-usage-commands)
    0 participant-events (conversations-participant-events)
    0 GB (group-rooms-media-recorded)
    0 units (marketplace-algorithmia-named-entity-recognition)
    0 units (wireless-usage-data-northamerica)
    0 units (marketplace-cadence-transcription)
    0 SMS Commands (wireless-super-sim-smscommands-europe)
    0 peak connections (conversations-endpoint-connectivity)
    0  (experiment-india-sms)
    0 minutes (voice-insights-sip-trunking-insights-on-demand-minute)
    32 calls (calls-inbound)
    9 messages (sms-inbound-longcode)
    0 SMS Commands (wireless-super-sim-smscommands-africa)
    1 numbers (phonenumbers-tollfree)
    0 queries (autopilot-other)
    10 messages (sms-outbound-longcode)
    0 units (marketplace-wolfarm-spoken-results)
    0 minutes (media-composer-minutes)
    0 participants (pv-room-participants-us2)
    0 participants (pv-room-participants-us1)
    0 units (marketplace-google-speech-to-text)
    2 minutes (rooms-group-minutes)
    0 registrations.hr (pv-sip-endpoint-registrations)
    0 minutes (peer-to-peer-rooms-participant-minutes)
    11 recordings (calls-recordings)
    0  (sync)
    0 api-requests (conversations-api-requests)
    19 100 characters (amazon-polly)
    0 messages (wireless-usage-sms)
    0 calls (trunking-origination-tollfree)
    0 messages (channels-whatsapp-inbound)
    0 calls (programmablevoiceconn-sip-outbound)
    0 commands (wireless-usage-commands-africa)
    0 months (twilio-interconnect)
    0 messages (sms-inbound-tollfree)
    0 emails (authy-outbound-email)
    0 minutes (rooms-peer-to-peer-minutes)
    0 messages (channels-messaging)
    0 SIMs (wireless-super-sim-hardware-bulk)
    0 units (marketplace-infogroup-dataaxle-bizinfo)
    0 units (wireless-usage-commands-roaming)
    0 participants (pv-room-participants-ie1)
    0 calls (programmablevoiceconn-onnet-inbound)
    0  (pv-rooms)
    0 events (conversations-events)
    0 units (wireless-super-sim-subscription-payg)
    
    As Of 2022-09-21T12:23:42-04:00
    0 units (wireless-usage-data-centralandsouthamerica)
    0 recognitions (answering-machine-detection)
    0 calls (calls-transfers)
    0 calls (trunking-origination-mobile)
    0  (experiment-uk-sms)
    0 units (sms-mps)
    0 tasks (taskrouter-tasks)
    0 units (sms-mps-tollfree-setup)
    0 SIMs (wireless-usage-mrc-custom)
    0 participants (conversations-participants)
    0 units (wireless-usage-data-asia)
    0 units (wireless-data-quota10-africa)
    3  (group-rooms)
    4 calls (speech-recognition)
    0 minutes (wireless-usage-voice)
    0 units (wireless-usage-data-pooled-downlink)
    0  (sms-messages-features)
    0 megabytes (turnmegabytes-useast)
    0 messages (mms-outbound-longcode)
    0 participants (pv-room-participants-au1)
    0 units (wireless-usage-data-pooled)
    0 messages (mms-inbound-longcode)
    0 participants (pv-room-participants-jp1)
    0 calls (calls-inbound-mobile)
    0 units (wireless-orders-starter)
    0 K reads (pchat-reads)
    0 units (wireless-data-payg)
    0 minutes (agent-conference)
    0 calls (calls-sip-outbound)
    0  (video-recordings)
    0 minutes (autopilot-voice)
    0 units (wireless-usage-data-custom-additionalmb)
    0 numbers (phonenumbers-emergency)
    0 units (wireless-data-payg-centralandsouthamerica)
    0  (premiumsupport-percentage-spend)
    0 units (wireless-data-payg-africa)
    0 units (sms-messages-features-senderid)
    0 units (wireless-usage-data-africa)
    0 units (marketplace-whitepages-pro-caller-identification)
    0 units (marketplace-ibm-watson-tone-analyzer)
    0 units (marketplace-convriza-ababa)
    0 hundred-events-stored-days (monitor-storage)
    0 minutes (pv-composition-media-encrypted)
    0 calls (programmablevoiceconn-clientsdk)
    2 minutes (group-rooms-participant-minutes)
    0 number-setups (phonenumbers-setups)
    0 SMS Commands (wireless-super-sim-smscommands-cent-and-south-america)
    0 calls (programmablevoiceconn-clientsdk-inbound)
    0 writes (monitor-writes)
    0 calls (programmablevoiceconn-sip-inbound)
    0 K Actions & Delivery Attempts (notify-actions-attempts)
    0 megabytes (turnmegabytes-australia)
    0 units (wireless-usage-data-domestic-roaming)
    0 peak connections (ip-messaging-endpoint-connectivity)
    0 units (wireless-sms-oceania)
    0 megabytes (turnmegabytes-brasil)
    0 media-streams (calls-media-stream-minutes)
    0 units (wireless-data-quota50-northamerica)
    0 count (conversations)
    0 units (marketplace-whitepages-pro-phone-intelligence)
    0 events (call-progess-events)
    0 units (wireless-usage-data-europe)
    0 units (wireless-data-quota1)
    10 messages (bundle-sms-bucket)
    0 calls (calls-client)
    0 units (marketplace-marchex-sentiment-analysis-for-sms)
    0 secured-calls (sip-secure-media)
    0 units (wireless-orders)
    0 messages (sms-outbound-shortcode)
    0 minutes (pv-composition-minutes)
    0 messages (sms-outbound-tollfree)
    0 units (marketplace-msg.ai-deliveryaware)
    0 shortcodes (shortcodes-customerowned)
    0 K Delivery Attempts (notify-channels)
    0 units (marketplace-facebook-offline-conversions)
    0 licenses (proxy-licenses)
    0 SMS Commands (wireless-super-sim-smscommands-asia)
    10 numbers (phonenumbers-local)
    0 lookups (category)
    0 units (marketplace-voicebase-transcription-custom-vocabulary)
    0 messages (channels-whatsapp)
    0 commands (wireless-usage-commands-centralandsouthamerica)
    19 messages (sms)
    0 SIMs (wireless-orders-esim)
    0 NA (autopilot)
    0 SIMs (wireless-mrc-quotacustom)
    0 utterances (autopilot-home-assistants)
    0 units (wireless-sms-northamerica)
    0 messages (mms)
    11 recordings (recordings)
    0 units (proxy)
    0 verifications (verify-push)
    0 commands (wireless-usage-commands-oceania)
    0 minutes (audience-minutes-audio)
    0 commands (ip-messaging-commands)
    0 lookups (calleridlookups)
    0 units (pfax)
    0 SIMs (wireless-mrc-payg)
    0 minutes (basic-peer-to-peer-rooms-participant-minutes)
    0 units (wireless-sms-europe)
    0 calls (trunking-origination-local)
    0 SMS Commands (wireless-super-sim-smscommands-oceania)
    0 K actions (pchat-actions)
    38  (channels)
    0 messages (mms-outbound-shortcode)
    0 conversation-events (conversations-conversation-events)
    0  (notify)
    0 calls (programmablevoiceconn-onnet)
    0 units (marketplace-wolfram-short-answer)
    0 messages (autopilot-messaging)
    0 units (marketplace-digital-segment-business-info)
    0 messages (pchat-messages)
    0 megabytes (video-rooms-turn-megabytes)
    0 minutes (voice-insights-client-insights-on-demand-minute)
    1 recordings (recordingstorage)
    0 units (wireless-data-quota1-asia)
    30 calls (calls-inbound-local)
    0 units (wireless-super-sim-subscription)
    0 emails (authy-verify-outbound-email)
    0 lookups (carrier-lookups)
    0 units (marketplace-tcpa-defense-solutions-blacklist-feed)
    0 SMS Commands (wireless-super-sim-smscommands-north-america)
    0 k actions (sync-actions)
    0 units (flex-usage)
    0 minutes (voice-insights)
    0 megabytes (turnmegabytes-germany)
    0 units (marketplace-deepgram-phrase-detector)
    0 MBs (wireless-super-sim-data)
    0 count (ip-messaging)
    7 transcriptions (transcriptions)
    0 lookups (fraud-lookups)
    0 units (marketplace-twilio-caller-name-lookup-us)
    0 sessions (proxy-active-sessions)
    0 calls (programmablevoiceconn-sip)
    0 units (marketplace-nexiwave-voicemail-to-text)
    0 SIMs (wireless-usage-mrc)
    0 cps (phonenumbers-cps)
    0 commands (wireless-usage-commands-northamerica)
    0 GB (group-rooms-media-downloaded)
    0 units (wireless-data-quota10-asia)
    0 recordings (trunking-recordings)
    0 units (wireless-usage-data)
    0 units (wireless-sms-africa)
    0 units (wireless-sms-asia)
    0  (experiment-france-sms)
    0 months (premiumsupport)
    0 units (wireless-data-quota50-africa)
    0 files (mediastorage)
    0 messages (verify-whatsapp-conversations-business-initiated)
    0 cps (trunking-cps)
    0 units (wireless-data-quota10-centralandsouthamerica)
    0 messages (channels-whatsapp-outbound)
    10 messages (sms-outbound)
    0 lookups (sim-swap-lookups)
    0 units (wireless-data-quotacustom-centralandsouthamerica)
    0 100 Characters (calls-text-to-speech)
    0 units (marketplace-ibm-watson-recording-analysis)
    0 units (wireless-data-payg-northamerica)
    0 calls (calls-sip-inbound)
    0 engagements (studio-engagements)
    9 messages (sms-inbound)
    0 units (marketplace-voicebase-pci)
    0 units (marketplace-cadence-translation)
    0 GB (group-rooms-media-routed)
    0 minutes (small-group-rooms-participant-minutes)
    0 messages (channels-messaging-outbound)
    0 MBs (wireless-super-sim-data-payg-north-america)
    0 messages (mms-outbound)
    0 Number of users (flex-agents)
    0 numbers (phonenumbers-mobile)
    0 messages (sms-outbound-content-inspection)
    0 messages (mms-inbound)
    0 calls (programmablevoiceconn-onnet-outbound)
    0 SIMs (wireless-mrc-quota1)
    0 units (wireless-data-quotacustom-asia)
    0 calls (programmablevoiceconnectivity)
    0 units (wireless-orders-artwork)
    0 units (wireless-usage-data-individual-firstgb)
    0 units (wireless-data-quota1-oceania)
    0 calls (calls-inbound-tollfree-mobile)
    0 shortcodes (shortcodes-uk)
    0 units (marketplace-capio-speech-to-text)
      (totalprice)
    0 aps (pchat-aps)
    0 units (wireless-data-payg-oceania)
    2 calls (calls-inbound-tollfree)
    0 megabytes (turnmegabytes-japan)
    0 GB (pv-composition-media-downloaded)
    0 pages (pfax-pages)
    0 lookups (call-forwarding-lookups)
    0 units (wireless-usage-data-oceania)
    0 units (wireless-usage-data-international-roaming-india)
    0 messages (mms-inbound-shortcode)
    0 MBs (wireless-super-sim-data-payg)
    0 minutes (pfax-minutes-outbound)
    0 calls (calls-globalconference)
    0 commands (wireless-usage-commands-europe)
    0 calls (calls-inbound-tollfree-local)
    0 calls (trunking-origination)
    0 units (wireless-quotas)
    0 megabytes (turnmegabytes-singapore)
    0 units (wireless-data-quotacustom-northamerica)
    0 units (marketplace-twilio-carrier-information-lookup)
    0 units (wireless-usage-commands-home)
    3 units (pv)
    0 messages (authy-sms-outbound)
    0 commands (wireless-usage-commands-asia)
    0 units (marketplace-marketplace-nextcaller-social-id)
    0 units (wireless-data-quota50-oceania)
    0 SIMs (wireless-usage-mrc-individual)
    0 units (wireless-data-quota50-centralandsouthamerica)
    0 units (wireless-usage-data-individual-additionalgb)
    0 calls (programmablevoiceconn-clientsdk-outbound)
    0 shortcodes (shortcodes-vanity)
    0 verifications (authy-verify-email-verifications)
    0 units (wireless-data-quotacustom-oceania)
    0 units (wireless-data-quota1-africa)
    0 units (marketplace-payfone-tcpa-compliance)
    0 units (wireless-data-quota1-northamerica)
    0 SMS Commands (wireless-super-sim-smscommands)
    0 MBs (wireless-super-sim-data-payg-europe)
    0 participants (pv-room-participants-sg1)
    0 units (wireless-super-sim)
    0 units (wireless-usage-data-international-roaming-mexico)
    0 SIMs (wireless-mrc-quota10)
    0 units (marketplace-voicebase-transcription)
    0 units (wireless-data-quotacustom)
    0 units (wireless-data-quota10-northamerica)
    0 units (wireless-data-quota50)
    0 SIMs (wireless-usage-mrc-pooled)
    0 events (events)
    0 units (marketplace-ytica-contact-center-reporting-analytics)
    0 calls (trunking-emergency-calls)
    0  (small-group-rooms)
    0 transfers (ip-messaging-data-transfer)
    0 event (a2p-registration-fees)
    0 minutes (pfax-minutes)
    0 lookups (live-activity-lookups)
    0 shortcodes (shortcodes-random)
    0 units (wireless-data-quota50-asia)
    0  (pv-recording-compositions)
    0 minutes (group-rooms-recorded-minutes)
    0 units (marketplace-whitepages-pro-phone-reputation)
    0 GB day (pv-composition-media-stored)
    0 units (wireless-data-payg-europe)
    0 GB days (group-rooms-media-stored)
    0 minutes (voice-insights-sip-interface-insights-on-demand-minute)
    0 users (frontline-users)
    0 messages (channels-messaging-inbound)
    0 K notifications (pchat-notifications)
    0 units (wireless-usage-data-international-roaming-canada)
    0 hours (flex-active-user-hours)
    0 MBs (wireless-super-sim-data-north-america-usa)
    0 calls (programmablevoice-platform)
    0 megabytes (turnmegabytes)
    0 calls (trunking-termination)
    0 units (marketplace-truecnam-true-spam)
    11 numbers (phonenumbers)
    0 hours (sync-endpoint-hours-above-daily-cap)
    0 verifications (verify-sna)
    0 units (marketplace-ibm-watson-message-sentiment)
    0 messages (sms-inbound-shortcode)
    0 units (wireless-data-quota1-centralandsouthamerica)
    0 SIMs (wireless-mrc-quota50)
    0 messages (mms-messages-carrierfees)
    0 users (flex-users)
    0 shortcodes (shortcodes-mms-enablement)
    0 shortcodes (shortcodes)
    0 SIMs (wireless-orders-bulk)
    0 SIMs (wireless-usage-mrc-suspended)
    0 mps (shortcodes-mps)
    0 verifications (authy-phone-verifications)
    0 thousands of messages (small-group-rooms-data-track)
    0 units (wireless-data-quota10)
    0 minutes (pfax-minutes-inbound)
    0 units (marketplace-icehook-systems-scout)
    0 hours (sync-endpoint-hours)
    0 calls (calls-sip)
    0 GB (group-rooms-encrypted-media-recorded)
    0 Transactions (calls-pay-verb-transactions)
    0 secured-calls (trunking-secure)
    0 authentications (authy-email-authentications)
    0 units (marketplace-marchex-cleancall)
    0 lookups (enhanced-line-type-lookups)
    0 units (wireless-super-sim-hardware)
    0 chats (pchat)
    0 calls (pstnconnectivity)
    0 authentications (authy-authentications)
    0 units (sms-mps-tollfree)
    0 messages (flex-messaging-usage)
    0 units (marketplace-ibm-watson-message-insights)
    0 use (pchat-users)
    0 months (authy-monthly-fees)
    0 units (wireless-data-quota10-oceania)
    0 megabytes (turnmegabytes-ireland)
    0 thousands of messages (group-rooms-data-track)
    0 reads (monitor-reads)
    0 units (wireless)
    0 megabytes (turnmegabytes-uswest)
    0 units (wireless-data-quota50-europe)
    
    As Of 2022-09-21T12:23:43-04:00
    0 megabytes (turnmegabytes-india)
    0 calls (pstnconnectivity-outbound)
    0 units (marketplace-mobile-commons-opt-out-classifier)
    0 minutes (voice-insights-ptsn-insights-on-demand-minute)
    0 lookups (number-format-lookups)
    0 calls (calls-outbound)
    0 units (marketplace-telo-opencnam)
    0 units (marketplace-nextcaller-advanced-caller-identification)
    0 units (marketplace-nomorobo-spam-score)
    0 units (wireless-data)
    0 participants (pv-room-participants-br1)
    0 units (wireless-data-quota1-europe)
    0 minutes (audience-minutes)
    0 units (marketplace)
    0 units (marketplace-keen-io-contact-center-analytics)
    0 units (wireless-data-quota10-europe)
    0 units (wireless-sms-centralandsouthamerica)
    0 units (credit-transfer)
    0 verifications (verify-totp)
    0 units (wireless-data-quotacustom-europe)
    0 GB (pchat-conv-med-storage)
    0 GB (rooms-group-bandwidth)
    0 units (wireless-usage-data-pooled-uplink)
    0 requests (authy-phone-intelligence)
    0 units (wireless-usage-data-custom-first5mb)
    19 messages (sms-messages-carrierfees)
    0 lookups (lookups)
    0 calls (pstnconnectivity-inbound)
    32 calls (calls)
    0 units (wireless-data-quotacustom-africa)
    0 units (wireless-data-payg-asia)
    0 participants (pv-room-participants)
    0 calls (authy-calls-outbound)
    0 units (marketplace-remeeting-automatic-speech-recognition)
    0 cps (cps)
    
    Total count: 305
    

    Since you're interested in SMS you can filter to that category:

    
    // Sms is outbound and inbound, see more categories: 
    // https://www.twilio.com/docs/usage/api/usage-record#usage-sms-mms
    // Alternatively, you can use SmsInbound or SmsOutbound category
    
    var records = LastMonthResource.Read(new ReadLastMonthOptions{
        Category = LastMonthResource.CategoryEnum.Sms
    });
    
    var count = int.Parse(records.First().Count);
    
    Console.WriteLine($"Total SMS: {count}");