[{"data":1,"prerenderedAt":99},["ShallowReactive",2],{"blog-post-en-the-api-now-belongs-to-your-account":3},{"post":4,"related":81,"locales":97},{"id":5,"title":6,"author":7,"body":8,"date":65,"description":66,"draft":67,"extension":68,"image":69,"meta":70,"navigation":71,"path":72,"readingMinutes":73,"seo":74,"stem":75,"tags":76,"updated":79,"__hash__":80},"blog_en\u002Fblog\u002Fthe-api-now-belongs-to-your-account.md","Before you connect an email verification API","MailOK",{"type":9,"value":10,"toc":60},"minimark",[11,15,18,31,34,43,48,51,54,57],[12,13,14],"p",{},"Getting a successful API response is the easy part. Decide what your application should do when it doesn't get one.",[12,16,17],{},"Keep these cases separate:",[19,20,21,25,28],"ul",{},[22,23,24],"li",{},"The address was checked and a usable result came back.",[22,26,27],{},"The check finished without a conclusion.",[22,29,30],{},"The request failed, so you don't know whether the check ran.",[12,32,33],{},"An authentication error is a problem with your integration. A timeout is a problem with the request completing. Neither means the user's email address is invalid.",[12,35,36,37,42],{},"Keep API keys on the server. Use the ",[38,39,41],"a",{"href":40},"\u002Fdocs","current documentation"," for authentication, request formats, rate limits and any retry rules. Don't build around an example copied from an old announcement.",[44,45,47],"h2",{"id":46},"save-enough-to-use-the-result-correctly","Save enough to use the result correctly",[12,49,50],{},"Store the checked address, the outcome, the relevant reason and when the check happened. Keep subscription preferences in separate fields.",[12,52,53],{},"If a user changes their address while a background check is running, make sure the old response cannot mark the new address as verified. Match the result to the exact version of the address you submitted.",[12,55,56],{},"Choose a timeout that fits the workflow. A signup page needs to respond promptly; a background import can wait longer. Decide how unresolved checks will be reviewed, and cap retries so an outage doesn't become a stream of repeated requests.",[12,58,59],{},"For a recurring import, test the whole round trip on a small file: submission, result handling, exclusions and writeback. Include an inconclusive result and a failed request. Those cases tell you more about whether the integration is ready than another successful check.",{"title":61,"searchDepth":62,"depth":62,"links":63},"",2,[64],{"id":46,"depth":62,"text":47},"2026-06-23","Plan for unresolved checks, failed requests and changing addresses before putting verification into production.",false,"md","\u002Fog\u002Fblog\u002Fen\u002Fthe-api-now-belongs-to-your-account.png",{},true,"\u002Fblog\u002Fthe-api-now-belongs-to-your-account",1,{"title":6,"description":66},"blog\u002Fthe-api-now-belongs-to-your-account",[77,78],"API","Guides",null,"gewwfKPlpOyiT381Ym5v6Gm3CX50cz9zJzSy5WAbErQ",[82,89],{"path":83,"title":84,"description":85,"date":86,"tags":87,"readingMinutes":73},"\u002Fblog\u002Fspreadsheet-in-spreadsheet-out","Keep a contact ID in your verification file","A simple export makes it easier to return each result to the right contact without exposing your whole CRM.","2026-07-29",[78,88],"List hygiene",{"path":90,"title":91,"description":92,"date":93,"tags":94,"readingMinutes":73},"\u002Fblog\u002Frebuilding-the-batch-engine","Why the last few addresses can take longer","A verification job can slow down near the end because some receiving servers need more time or give no clear answer.","2026-05-22",[95,96],"Verification","Technical",[98],"en",1790300926658]