[{"data":1,"prerenderedAt":1203},["ShallowReactive",2],{"blog-index-en":3},[4,139,216,341],{"id":5,"title":6,"author":7,"body":8,"category":118,"date":119,"description":120,"extension":121,"image":122,"imageAlt":123,"meta":124,"navigation":125,"path":126,"readingTime":127,"seo":132,"sitemap":133,"stem":137,"__hash__":138},"blog_en\u002Fblog\u002Fblazelock-joins-ionos-cloud-startup-program.md","Blazelock Joins the IONOS CLOUD Startup Program","tobias-schnittger",{"type":9,"value":10,"toc":108},"minimark",[11,23,28,31,34,37,44,48,51,54,60,64,72,75,78,82,89,93,96],[12,13,14,15,22],"p",{},"Blazelock is now part of the ",[16,17,21],"a",{"href":18,"rel":19},"https:\u002F\u002Fcloud.ionos.de\u002Fstartup-programm\u002Fen",[20],"nofollow","IONOS CLOUD Startup Program",". This gives us the support of an experienced German cloud provider and more room to keep building our malware scanning platform.",[24,25,27],"h2",{"id":26},"more-room-to-focus-on-what-blazelock-does-best","More Room to Focus on What Blazelock Does Best",[12,29,30],{},"When files enter applications or storage systems, malware detection needs to work reliably. The infrastructure behind it should grow with demand without requiring development teams to build and continuously maintain a complete scanning environment themselves.",[12,32,33],{},"The IONOS CLOUD Startup Program supports us on several levels. Cloud credits reduce infrastructure costs during an important stage of growth. Access to the full public cloud portfolio and technical support helps us develop our architecture deliberately. Scalable compute, storage, and network resources also give us the flexibility to build new Blazelock products and integrations on a shared platform.",[12,35,36],{},"For our customers, the outcome is straightforward: we can put more energy into malware detection, clear scan results, and simple integrations while the underlying cloud infrastructure grows with us.",[12,38,39],{},[40,41],"img",{"alt":42,"src":43},"A technician inspects server racks inside an IONOS CLOUD data center","https:\u002F\u002Fcdn.blazelock.com\u002Fblog\u002Farticles-media\u002F2026\u002Fblazelock-joins-ionos-cloud-startup-program\u002Fionos-data-center-server-room.webp",[24,45,47],{"id":46},"european-infrastructure-by-choice","European Infrastructure by Choice",[12,49,50],{},"IONOS CLOUD is a German provider with proprietary technology infrastructure and data centers in Germany and other European markets. The company positions its cloud around scalability, data protection, and European data sovereignty.",[12,52,53],{},"That direction fits Blazelock. For a security platform, infrastructure is not an invisible detail. It is part of the trust customers place in the service. With IONOS, we are building on a European cloud provider while keeping our own focus on making malware protection straightforward and transparent.",[12,55,56],{},[40,57],{"alt":58,"src":59},"A technician checks server hard drives using a tablet","https:\u002F\u002Fcdn.blazelock.com\u002Fblog\u002Farticles-media\u002F2026\u002Fblazelock-joins-ionos-cloud-startup-program\u002Fionos-data-center-hardware-lookup.webp",[24,61,63],{"id":62},"who-is-ionos-cloud","Who Is IONOS CLOUD?",[12,65,66,71],{},[16,67,70],{"href":68,"rel":69},"https:\u002F\u002Fcloud.ionos.de",[20],"IONOS CLOUD"," is a sovereign European cloud infrastructure provider serving businesses of all sizes and the public sector.",[12,73,74],{},"As a specialist in efficient, scalable cloud services, IONOS CLOUD offers Infrastructure as a Service (IaaS), compute and storage services, backup solutions, and Platform as a Service (PaaS), plus a groupware solution and a multimodal AI hub with a wide range of powerful models. The proprietary cloud platform runs across 11 data centres in Europe.",[12,76,77],{},"IONOS CLOUD guarantees robust data protection and GDPR compliance, and is regularly audited and certified by government bodies. With headquarters in Germany, all services are operated under European jurisdiction, giving customers complete digital sovereignty and maximum legal certainty.",[24,79,81],{"id":80},"what-is-the-ionos-cloud-startup-program","What Is the IONOS CLOUD Startup Program?",[12,83,84,85,88],{},"The ",[16,86,21],{"href":18,"rel":87},[20]," supports technology-focused startups in their early and growth stages. Depending on a company's maturity, the Spark and Accelerate tracks offer between €5,000 and up to €100,000 in cloud credits. Participants also gain access to the IONOS CLOUD portfolio, round-the-clock technical support, and discounted infrastructure during the subsequent alumni phase.",[24,90,92],{"id":91},"what-is-blazelock","What Is Blazelock?",[12,94,95],{},"Blazelock is a malware scanning platform for developers and businesses. It brings managed malware detection to the points where files enter applications and storage workflows or already reside in storage. Teams can protect file workflows without building, monitoring, and continuously updating their own antivirus infrastructure.",[12,97,98],{},[99,100,101,102,107],"em",{},"Image credits: The data center photographs used in this article were provided by IONOS via the ",[16,103,106],{"href":104,"rel":105},"https:\u002F\u002Fwww.ionos.de\u002Fnewsroom\u002Fdownloads\u002Frechenzentren\u002F",[20],"IONOS Newsroom",".",{"title":109,"searchDepth":110,"depth":111,"links":112},"",2,3,[113,114,115,116,117],{"id":26,"depth":110,"text":27},{"id":46,"depth":110,"text":47},{"id":62,"depth":110,"text":63},{"id":80,"depth":110,"text":81},{"id":91,"depth":110,"text":92},"company","2026-08-27","Blazelock is now part of the IONOS CLOUD Startup Program, helping us grow our malware scanning platform on scalable European cloud infrastructure.","md","https:\u002F\u002Fcdn.blazelock.com\u002Fblog\u002Farticles-media\u002F2026\u002Fblazelock-joins-ionos-cloud-startup-program\u002Fheader.webp","Blazelock and IONOS CLOUD logos",{},true,"\u002Fblog\u002Fblazelock-joins-ionos-cloud-startup-program",{"text":128,"minutes":129,"time":130,"words":131},"3 min read",2.36,141600,472,{"title":6,"description":120},{"loc":126,"images":134},[135,136],{"loc":43},{"loc":59},"blog\u002Fblazelock-joins-ionos-cloud-startup-program","daEWtqveaKcjWiCsxQ9MpaQtwSLb5qoPZM7RNkfpCZQ",{"id":140,"title":141,"author":7,"body":142,"category":201,"date":202,"description":203,"extension":121,"image":204,"imageAlt":204,"meta":205,"navigation":125,"path":206,"readingTime":207,"seo":212,"sitemap":213,"stem":214,"__hash__":215},"blog_en\u002Fblog\u002Fblazelock-beta-is-now-open-to-everyone.md","Blazelock Beta Is Now Open to Everyone",{"type":9,"value":143,"toc":196},[144,147,156,160,163,166,169,173,176,179,183,186,189],[12,145,146],{},"Today, Blazelock enters the next stage of its beta: everyone can now create an account and start using our malware scanning API immediately.",[12,148,149,150,155],{},"There is no longer a waitlist and no invitation is required. If you want to protect file uploads in your application, you can ",[16,151,154],{"href":152,"rel":153},"https:\u002F\u002Fapp.blazelock.com\u002Fsignup",[20],"sign up for Blazelock",", create an API key, and start scanning files today.",[24,157,159],{"id":158},"from-selected-testers-to-an-open-beta","From Selected Testers to an Open Beta",[12,161,162],{},"We began the first phase of the beta with a small group of selected testers. This gave us the space to observe real integrations closely, collect focused feedback, and improve the experience before opening Blazelock to a wider audience.",[12,164,165],{},"Together with these early users, we refined the first steps in the dashboard, improved key workflows, and made the product clearer and more reliable. Their feedback helped us identify where Blazelock already worked well and where small changes could make a meaningful difference.",[12,167,168],{},"With those initial improvements in place, we are ready for the next phase.",[24,170,172],{"id":171},"free-and-unrestricted-during-the-beta","Free and Unrestricted During the Beta",[12,174,175],{},"The Blazelock beta remains completely free and unrestricted. Every user has access to the product without having to wait for approval.",[12,177,178],{},"You can create API integrations, generate API keys, scan files synchronously or asynchronously, use webhooks, and review your integration activity in the dashboard. Whether you are evaluating malware protection for a new product or adding it to an existing upload flow, you can now explore the complete beta at your own pace.",[24,180,182],{"id":181},"help-shape-what-comes-next","Help Shape What Comes Next",[12,184,185],{},"Opening the beta to everyone allows us to learn from a broader range of applications, teams, and file workflows. Your experience and feedback will help us continue improving the API, dashboard, documentation, and overall developer experience ahead of the public release.",[12,187,188],{},"The official Blazelock release is still planned for Q4 2026. Until then, the beta will remain the best way to try the product early and help shape its next steps.",[12,190,191,195],{},[16,192,194],{"href":152,"rel":193},[20],"Create your free Blazelock account"," and start securing your file uploads today.",{"title":109,"searchDepth":110,"depth":111,"links":197},[198,199,200],{"id":158,"depth":110,"text":159},{"id":171,"depth":110,"text":172},{"id":181,"depth":110,"text":182},"product","2026-07-21","The Blazelock beta is now open to everyone, with free and unrestricted access and no waitlist or invitation required.",null,{},"\u002Fblog\u002Fblazelock-beta-is-now-open-to-everyone",{"text":208,"minutes":209,"time":210,"words":211},"2 min read",1.58,94800,316,{"title":141,"description":203},{"loc":206},"blog\u002Fblazelock-beta-is-now-open-to-everyone","_siLPZAp2hTDNeogIVqgRF0Lq-2qkuhqR6GB2AoDZCA",{"id":217,"title":218,"author":7,"body":219,"category":201,"date":324,"description":325,"extension":121,"image":204,"imageAlt":204,"meta":326,"navigation":125,"path":327,"readingTime":328,"seo":332,"sitemap":333,"stem":339,"__hash__":340},"blog_en\u002Fblog\u002Fintroducing-user-timezones-and-integration-logs.md","Introducing User Timezones and Integration Logs",{"type":9,"value":220,"toc":317},[221,224,227,231,239,242,246,249,255,258,264,268,271,277,280,283,290,294,297,299,302],[12,222,223],{},"Building a secure file workflow is only one part of running it in production. You also need to understand what happened, when it happened, and where an integration needs attention.",[12,225,226],{},"This update makes that day-to-day work easier with three additions to the Blazelock Dashboard: personal timezone settings, API request logs, and webhook delivery logs.",[24,228,230],{"id":229},"your-dashboard-in-your-timezone","Your Dashboard, in Your Timezone",[12,232,233,234,238],{},"Blazelock now detects your timezone when you create an account and stores it as part of your personal profile. You can change it at any time under ",[235,236,237],"strong",{},"Account Settings → Profile"," using a searchable list of supported timezones.",[12,240,241],{},"Dates, times, and reporting throughout the dashboard follow your selected timezone. Because the setting belongs to your user account, every member of a workspace can view the same activity in their own local time.",[24,243,245],{"id":244},"see-every-api-request-at-a-glance","See Every API Request at a Glance",[12,247,248],{},"The new API Logs view gives you a 30-day overview of the requests made through an API integration. A daily chart shows total traffic and separates successful responses from client and server errors.",[12,250,251],{},[40,252],{"alt":253,"src":254},"API integration request statistics showing request volume and response outcomes over time","https:\u002F\u002Fcdn.blazelock.com\u002Fblog\u002Farticles-media\u002F2026\u002Fintroducing-user-timezones-and-integration-logs\u002Fapi-requests-overview.webp",[12,256,257],{},"Below the chart, the request log lists the time, HTTP method, endpoint, response status, and duration of each request. This makes it easier to spot error patterns, confirm that an integration is active, and investigate slow or unsuccessful calls without piecing the story together elsewhere.",[12,259,260],{},[40,261],{"alt":262,"src":263},"API request log with timestamps, methods, endpoints, response statuses, and durations","https:\u002F\u002Fcdn.blazelock.com\u002Fblog\u002Farticles-media\u002F2026\u002Fintroducing-user-timezones-and-integration-logs\u002Fapi-requests-table.webp",[24,265,267],{"id":266},"follow-webhook-deliveries-from-start-to-finish","Follow Webhook Deliveries from Start to Finish",[12,269,270],{},"Webhook delivery logs now live directly below the webhook settings for each API integration. The overview shows the event, current delivery status, and creation time for every recent delivery.",[12,272,273],{},[40,274],{"alt":275,"src":276},"Webhook delivery log showing recent events and their delivery status","https:\u002F\u002Fcdn.blazelock.com\u002Fblog\u002Farticles-media\u002F2026\u002Fintroducing-user-timezones-and-integration-logs\u002Fwebhook-logs-overview.webp",[12,278,279],{},"Open an entry to see the destination, response status, number of delivery attempts, and a timeline of its progress. You can also view and copy the exact JSON payload.",[12,281,282],{},"Each delivery keeps one continuous log across its retries, so you can quickly see whether it succeeded, another attempt is scheduled, or it ultimately failed.",[12,284,285],{},[40,286],{"alt":287,"src":288,"style":289},"Webhook delivery details with destination, status, timeline, and JSON payload","https:\u002F\u002Fcdn.blazelock.com\u002Fblog\u002Farticles-media\u002F2026\u002Fintroducing-user-timezones-and-integration-logs\u002Fwebhook-log-details.webp","display: block; max-width: 28rem; margin-inline: auto;",[24,291,293],{"id":292},"less-guesswork-faster-debugging","Less Guesswork, Faster Debugging",[12,295,296],{},"Together, these updates create a clearer operational trail. Your charts line up with your working day, incoming API activity is visible request by request, and outbound webhook deliveries can be traced through retries and responses. The information that matters stays close to the integration it belongs to.",[24,298,92],{"id":91},[12,300,301],{},"Blazelock is a malware scanning API for modern applications. It helps teams inspect file uploads before they are stored, processed, or shared - without operating their own scanning infrastructure. Integrate through a straightforward REST API, use synchronous or asynchronous scans, and connect webhooks to keep your product workflows moving with clear security signals.",[12,303,304,305,310,311,316],{},"The Blazelock beta is currently free. ",[16,306,309],{"href":307,"rel":308},"https:\u002F\u002Fapp.blazelock.com",[20],"Start scanning"," or explore the ",[16,312,315],{"href":313,"rel":314},"https:\u002F\u002Fblazelock.com\u002Fen\u002Fdocs",[20],"documentation"," to add malware protection to your next file upload.",{"title":109,"searchDepth":110,"depth":111,"links":318},[319,320,321,322,323],{"id":229,"depth":110,"text":230},{"id":244,"depth":110,"text":245},{"id":266,"depth":110,"text":267},{"id":292,"depth":110,"text":293},{"id":91,"depth":110,"text":92},"2026-07-16","Blazelock now offers timezone-aware dashboards, API request logs, and webhook delivery logs for a clearer view of every integration.",{},"\u002Fblog\u002Fintroducing-user-timezones-and-integration-logs",{"text":128,"minutes":329,"time":330,"words":331},2.09,125400,418,{"title":218,"description":325},{"loc":327,"images":334},[335,336,337,338],{"loc":254},{"loc":263},{"loc":276},{"loc":288},"blog\u002Fintroducing-user-timezones-and-integration-logs","XXZJ9no8UtodIvRA2nthaZ9DkEc40qAiVlnRen8WDh8",{"id":342,"title":343,"author":7,"body":344,"category":201,"date":1185,"description":1186,"extension":121,"image":1187,"imageAlt":1188,"meta":1189,"navigation":125,"path":1190,"readingTime":1191,"seo":1196,"sitemap":1197,"stem":1201,"__hash__":1202},"blog_en\u002Fblog\u002Fintroducing-blazelock-beta.md","Blazelock Beta Is Now Available",{"type":9,"value":345,"toc":1175},[346,349,352,355,359,362,365,368,384,391,395,403,406,409,420,424,427,433,439,443,446,449,454,457,925,932,936,939,1155,1158,1162,1165,1168,1171],[12,347,348],{},"Today we are opening beta access to Blazelock. Our malware scanning API for applications, file uploads, and secure product workflows.",[12,350,351],{},"Blazelock is built for teams that need to accept files without turning malware scanning into another infrastructure project. Instead of running and maintaining your own scanning layer, you send files to the Blazelock API, receive structured scan results, and keep your upload flow moving with clear security signals.",[12,353,354],{},"The beta is free until our public release, currently planned for Q4 2026. It is also the best time to try Blazelock early and help shape what we build next.",[24,356,358],{"id":357},"what-blazelock-does","What Blazelock Does",[12,360,361],{},"Modern products accept files everywhere: onboarding forms, support portals, document workflows, internal tools, customer uploads, and automated background jobs. Every one of those entry points can become a security risk if files are stored, processed, or shared before they are checked.",[12,363,364],{},"Blazelock adds malware scanning to those workflows through a simple REST API. You can submit files, retrieve scan results, connect webhooks, and build malware detection into your own systems without operating scan engines yourself.",[12,366,367],{},"Blazelock is designed around a few practical principles:",[369,370,371,375,378,381],"ul",{},[372,373,374],"li",{},"Fast integration through a clear API.",[372,376,377],{},"Flexible scan modes for both background workflows and request-response flows.",[372,379,380],{},"European infrastructure with servers located in Germany.",[372,382,383],{},"Scan engines from market-leading providers that we continuously evaluate for detection quality, false-positive behavior, and performance.",[12,385,386,387,107],{},"You can explore the API, endpoint reference, authentication model, and integration guides in the ",[16,388,390],{"href":313,"rel":389},[20],"Blazelock documentation",[24,392,394],{"id":393},"start-using-the-blazelock-beta","Start Using the Blazelock Beta",[12,396,397,398,402],{},"Create your account in the ",[16,399,401],{"href":152,"rel":400},[20],"Blazelock Dashboard"," and start using Blazelock immediately. Registration is open to everyone, with no invitation required.",[12,404,405],{},"During the beta, Blazelock is free to use. You can create your account, generate API keys, and start testing real file scan workflows.",[12,407,408],{},"Beta access means:",[369,410,411,414,417],{},[372,412,413],{},"You can use Blazelock without paying during the beta period.",[372,415,416],{},"Your feedback directly influences the product, documentation, and pricing model.",[372,418,419],{},"You get early access to new dashboard and API improvements as they become available.",[24,421,423],{"id":422},"a-first-look-at-the-dashboard","A First Look at the Dashboard",[12,425,426],{},"The Blazelock Dashboard is the control center for your account. It helps you manage integrations, configure API keys, review scan activity, and keep your setup understandable as your product grows.",[12,428,429],{},[40,430],{"alt":431,"src":432},"Blazelock Dashboard overview with scan activity, recent results, integration health, and key security statistics","https:\u002F\u002Fcdn.blazelock.com\u002Fblog\u002Farticles-media\u002F2026\u002Fintroducing-blazelock-beta\u002Fdashboard.webp",[12,434,435],{},[40,436],{"alt":437,"src":438},"Blazelock API integration details with API keys","https:\u002F\u002Fcdn.blazelock.com\u002Fblog\u002Farticles-media\u002F2026\u002Fintroducing-blazelock-beta\u002Fapi-keys.webp",[24,440,442],{"id":441},"using-the-api","Using the API",[12,444,445],{},"Blazelock supports two scan modes. In most production integrations, asynchronous scans are the better default because your application can continue working while the scan runs. For flows that need an immediate result inside the same request-response cycle, synchronous scans are available too.",[12,447,448],{},"Both JavaScript examples use an API key created in the Blazelock Dashboard. Keep API keys server-side and send them as bearer tokens.",[450,451,453],"h3",{"id":452},"asynchronous-scan-example","Asynchronous Scan Example",[12,455,456],{},"Use the asynchronous endpoint when your application can track the result later through webhooks or status polling.",[458,459,463],"pre",{"className":460,"code":461,"language":462,"meta":109,"style":109},"language-js shiki shiki-themes github-light github-light","import { readFile } from 'node:fs\u002Fpromises'\n\n\u002F\u002F Build the multipart upload payload.\nconst form = new FormData()\nconst attributes = { file_name: 'invoice.pdf' }\nform.append('attributes', new Blob([JSON.stringify(attributes)], { type: 'application\u002Fjson' }))\nform.append('file', new Blob([await readFile('.\u002Finvoice.pdf')]))\n\n\u002F\u002F Submit the file for asynchronous scanning.\nconst submitResponse = await fetch('https:\u002F\u002Fapi.blazelock.com\u002Fv1\u002Ffile-scans', {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${process.env.BLAZELOCK_API_KEY}`,\n  },\n  body: form,\n})\n\nlet scan = await submitResponse.json()\n\n\u002F\u002F Poll until Blazelock returns a terminal status.\nwhile (scan.status === 'processing') {\n  await new Promise(resolve => setTimeout(resolve, 2000))\n\n  const statusResponse = await fetch(`https:\u002F\u002Fapi.blazelock.com\u002Fv1\u002Ffile-scans\u002F${scan.id}`, {\n    headers: {\n      Authorization: `Bearer ${process.env.BLAZELOCK_API_KEY}`,\n    },\n  })\n\n  scan = await statusResponse.json()\n}\n\nconsole.log(scan.id, scan.status)\n","js",[464,465,466,486,491,497,520,539,583,617,622,628,652,664,670,697,703,709,715,720,742,747,753,771,803,808,840,846,868,874,880,885,902,908,913],"code",{"__ignoreMap":109},[467,468,471,475,479,482],"span",{"class":469,"line":470},"line",1,[467,472,474],{"class":473},"sCydW","import",[467,476,478],{"class":477},"sKWpL"," { readFile } ",[467,480,481],{"class":473},"from",[467,483,485],{"class":484},"sOTlB"," 'node:fs\u002Fpromises'\n",[467,487,488],{"class":469,"line":110},[467,489,490],{"emptyLinePlaceholder":125},"\n",[467,492,493],{"class":469,"line":111},[467,494,496],{"class":495},"sJ8bj","\u002F\u002F Build the multipart upload payload.\n",[467,498,500,503,507,510,513,517],{"class":469,"line":499},4,[467,501,502],{"class":473},"const",[467,504,506],{"class":505},"sMN4m"," form",[467,508,509],{"class":473}," =",[467,511,512],{"class":473}," new",[467,514,516],{"class":515},"se37E"," FormData",[467,518,519],{"class":477},"()\n",[467,521,523,525,528,530,533,536],{"class":469,"line":522},5,[467,524,502],{"class":473},[467,526,527],{"class":505}," attributes",[467,529,509],{"class":473},[467,531,532],{"class":477}," { file_name: ",[467,534,535],{"class":484},"'invoice.pdf'",[467,537,538],{"class":477}," }\n",[467,540,542,545,548,551,554,557,560,563,566,569,571,574,577,580],{"class":469,"line":541},6,[467,543,544],{"class":477},"form.",[467,546,547],{"class":515},"append",[467,549,550],{"class":477},"(",[467,552,553],{"class":484},"'attributes'",[467,555,556],{"class":477},", ",[467,558,559],{"class":473},"new",[467,561,562],{"class":515}," Blob",[467,564,565],{"class":477},"([",[467,567,568],{"class":505},"JSON",[467,570,107],{"class":477},[467,572,573],{"class":515},"stringify",[467,575,576],{"class":477},"(attributes)], { type: ",[467,578,579],{"class":484},"'application\u002Fjson'",[467,581,582],{"class":477}," }))\n",[467,584,586,588,590,592,595,597,599,601,603,606,609,611,614],{"class":469,"line":585},7,[467,587,544],{"class":477},[467,589,547],{"class":515},[467,591,550],{"class":477},[467,593,594],{"class":484},"'file'",[467,596,556],{"class":477},[467,598,559],{"class":473},[467,600,562],{"class":515},[467,602,565],{"class":477},[467,604,605],{"class":473},"await",[467,607,608],{"class":515}," readFile",[467,610,550],{"class":477},[467,612,613],{"class":484},"'.\u002Finvoice.pdf'",[467,615,616],{"class":477},")]))\n",[467,618,620],{"class":469,"line":619},8,[467,621,490],{"emptyLinePlaceholder":125},[467,623,625],{"class":469,"line":624},9,[467,626,627],{"class":495},"\u002F\u002F Submit the file for asynchronous scanning.\n",[467,629,631,633,636,638,641,644,646,649],{"class":469,"line":630},10,[467,632,502],{"class":473},[467,634,635],{"class":505}," submitResponse",[467,637,509],{"class":473},[467,639,640],{"class":473}," await",[467,642,643],{"class":515}," fetch",[467,645,550],{"class":477},[467,647,648],{"class":484},"'https:\u002F\u002Fapi.blazelock.com\u002Fv1\u002Ffile-scans'",[467,650,651],{"class":477},", {\n",[467,653,655,658,661],{"class":469,"line":654},11,[467,656,657],{"class":477},"  method: ",[467,659,660],{"class":484},"'POST'",[467,662,663],{"class":477},",\n",[467,665,667],{"class":469,"line":666},12,[467,668,669],{"class":477},"  headers: {\n",[467,671,673,676,679,682,684,687,689,692,695],{"class":469,"line":672},13,[467,674,675],{"class":477},"    Authorization: ",[467,677,678],{"class":484},"`Bearer ${",[467,680,681],{"class":477},"process",[467,683,107],{"class":484},[467,685,686],{"class":477},"env",[467,688,107],{"class":484},[467,690,691],{"class":505},"BLAZELOCK_API_KEY",[467,693,694],{"class":484},"}`",[467,696,663],{"class":477},[467,698,700],{"class":469,"line":699},14,[467,701,702],{"class":477},"  },\n",[467,704,706],{"class":469,"line":705},15,[467,707,708],{"class":477},"  body: form,\n",[467,710,712],{"class":469,"line":711},16,[467,713,714],{"class":477},"})\n",[467,716,718],{"class":469,"line":717},17,[467,719,490],{"emptyLinePlaceholder":125},[467,721,723,726,729,732,734,737,740],{"class":469,"line":722},18,[467,724,725],{"class":473},"let",[467,727,728],{"class":477}," scan ",[467,730,731],{"class":473},"=",[467,733,640],{"class":473},[467,735,736],{"class":477}," submitResponse.",[467,738,739],{"class":515},"json",[467,741,519],{"class":477},[467,743,745],{"class":469,"line":744},19,[467,746,490],{"emptyLinePlaceholder":125},[467,748,750],{"class":469,"line":749},20,[467,751,752],{"class":495},"\u002F\u002F Poll until Blazelock returns a terminal status.\n",[467,754,756,759,762,765,768],{"class":469,"line":755},21,[467,757,758],{"class":473},"while",[467,760,761],{"class":477}," (scan.status ",[467,763,764],{"class":473},"===",[467,766,767],{"class":484}," 'processing'",[467,769,770],{"class":477},") {\n",[467,772,774,777,779,782,784,788,791,794,797,800],{"class":469,"line":773},22,[467,775,776],{"class":473},"  await",[467,778,512],{"class":473},[467,780,781],{"class":505}," Promise",[467,783,550],{"class":477},[467,785,787],{"class":786},"sj_tP","resolve",[467,789,790],{"class":473}," =>",[467,792,793],{"class":515}," setTimeout",[467,795,796],{"class":477},"(resolve, ",[467,798,799],{"class":505},"2000",[467,801,802],{"class":477},"))\n",[467,804,806],{"class":469,"line":805},23,[467,807,490],{"emptyLinePlaceholder":125},[467,809,811,814,817,819,821,823,825,828,831,833,836,838],{"class":469,"line":810},24,[467,812,813],{"class":473},"  const",[467,815,816],{"class":505}," statusResponse",[467,818,509],{"class":473},[467,820,640],{"class":473},[467,822,643],{"class":515},[467,824,550],{"class":477},[467,826,827],{"class":484},"`https:\u002F\u002Fapi.blazelock.com\u002Fv1\u002Ffile-scans\u002F${",[467,829,830],{"class":477},"scan",[467,832,107],{"class":484},[467,834,835],{"class":477},"id",[467,837,694],{"class":484},[467,839,651],{"class":477},[467,841,843],{"class":469,"line":842},25,[467,844,845],{"class":477},"    headers: {\n",[467,847,849,852,854,856,858,860,862,864,866],{"class":469,"line":848},26,[467,850,851],{"class":477},"      Authorization: ",[467,853,678],{"class":484},[467,855,681],{"class":477},[467,857,107],{"class":484},[467,859,686],{"class":477},[467,861,107],{"class":484},[467,863,691],{"class":505},[467,865,694],{"class":484},[467,867,663],{"class":477},[467,869,871],{"class":469,"line":870},27,[467,872,873],{"class":477},"    },\n",[467,875,877],{"class":469,"line":876},28,[467,878,879],{"class":477},"  })\n",[467,881,883],{"class":469,"line":882},29,[467,884,490],{"emptyLinePlaceholder":125},[467,886,888,891,893,895,898,900],{"class":469,"line":887},30,[467,889,890],{"class":477},"  scan ",[467,892,731],{"class":473},[467,894,640],{"class":473},[467,896,897],{"class":477}," statusResponse.",[467,899,739],{"class":515},[467,901,519],{"class":477},[467,903,905],{"class":469,"line":904},31,[467,906,907],{"class":477},"}\n",[467,909,911],{"class":469,"line":910},32,[467,912,490],{"emptyLinePlaceholder":125},[467,914,916,919,922],{"class":469,"line":915},33,[467,917,918],{"class":477},"console.",[467,920,921],{"class":515},"log",[467,923,924],{"class":477},"(scan.id, scan.status)\n",[12,926,927,928,931],{},"The response returns the created scan in ",[464,929,930],{},"processing"," state together with its scan ID. Your application can continue immediately and react when Blazelock sends a webhook event or when your backend checks the scan status.",[450,933,935],{"id":934},"synchronous-scan-example","Synchronous Scan Example",[12,937,938],{},"Use the synchronous endpoint when the caller needs a terminal result during the same request.",[458,940,942],{"className":460,"code":941,"language":462,"meta":109,"style":109},"import { readFile } from 'node:fs\u002Fpromises'\n\n\u002F\u002F Build the multipart upload payload.\nconst form = new FormData()\nconst attributes = { file_name: 'invoice.pdf' }\nform.append('attributes', new Blob([JSON.stringify(attributes)], { type: 'application\u002Fjson' }))\nform.append('file', new Blob([await readFile('.\u002Finvoice.pdf')]))\n\n\u002F\u002F Submit the file and wait for a terminal scan result.\nconst response = await fetch('https:\u002F\u002Fapi.blazelock.com\u002Fv1\u002Ffile-scans\u002Fsync', {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${process.env.BLAZELOCK_API_KEY}`,\n  },\n  body: form,\n})\n\nconst scan = await response.json()\n\nconsole.log(scan.id, scan.status)\n",[464,943,944,954,958,962,976,990,1020,1048,1052,1057,1077,1085,1089,1109,1113,1117,1121,1125,1143,1147],{"__ignoreMap":109},[467,945,946,948,950,952],{"class":469,"line":470},[467,947,474],{"class":473},[467,949,478],{"class":477},[467,951,481],{"class":473},[467,953,485],{"class":484},[467,955,956],{"class":469,"line":110},[467,957,490],{"emptyLinePlaceholder":125},[467,959,960],{"class":469,"line":111},[467,961,496],{"class":495},[467,963,964,966,968,970,972,974],{"class":469,"line":499},[467,965,502],{"class":473},[467,967,506],{"class":505},[467,969,509],{"class":473},[467,971,512],{"class":473},[467,973,516],{"class":515},[467,975,519],{"class":477},[467,977,978,980,982,984,986,988],{"class":469,"line":522},[467,979,502],{"class":473},[467,981,527],{"class":505},[467,983,509],{"class":473},[467,985,532],{"class":477},[467,987,535],{"class":484},[467,989,538],{"class":477},[467,991,992,994,996,998,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018],{"class":469,"line":541},[467,993,544],{"class":477},[467,995,547],{"class":515},[467,997,550],{"class":477},[467,999,553],{"class":484},[467,1001,556],{"class":477},[467,1003,559],{"class":473},[467,1005,562],{"class":515},[467,1007,565],{"class":477},[467,1009,568],{"class":505},[467,1011,107],{"class":477},[467,1013,573],{"class":515},[467,1015,576],{"class":477},[467,1017,579],{"class":484},[467,1019,582],{"class":477},[467,1021,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046],{"class":469,"line":585},[467,1023,544],{"class":477},[467,1025,547],{"class":515},[467,1027,550],{"class":477},[467,1029,594],{"class":484},[467,1031,556],{"class":477},[467,1033,559],{"class":473},[467,1035,562],{"class":515},[467,1037,565],{"class":477},[467,1039,605],{"class":473},[467,1041,608],{"class":515},[467,1043,550],{"class":477},[467,1045,613],{"class":484},[467,1047,616],{"class":477},[467,1049,1050],{"class":469,"line":619},[467,1051,490],{"emptyLinePlaceholder":125},[467,1053,1054],{"class":469,"line":624},[467,1055,1056],{"class":495},"\u002F\u002F Submit the file and wait for a terminal scan result.\n",[467,1058,1059,1061,1064,1066,1068,1070,1072,1075],{"class":469,"line":630},[467,1060,502],{"class":473},[467,1062,1063],{"class":505}," response",[467,1065,509],{"class":473},[467,1067,640],{"class":473},[467,1069,643],{"class":515},[467,1071,550],{"class":477},[467,1073,1074],{"class":484},"'https:\u002F\u002Fapi.blazelock.com\u002Fv1\u002Ffile-scans\u002Fsync'",[467,1076,651],{"class":477},[467,1078,1079,1081,1083],{"class":469,"line":654},[467,1080,657],{"class":477},[467,1082,660],{"class":484},[467,1084,663],{"class":477},[467,1086,1087],{"class":469,"line":666},[467,1088,669],{"class":477},[467,1090,1091,1093,1095,1097,1099,1101,1103,1105,1107],{"class":469,"line":672},[467,1092,675],{"class":477},[467,1094,678],{"class":484},[467,1096,681],{"class":477},[467,1098,107],{"class":484},[467,1100,686],{"class":477},[467,1102,107],{"class":484},[467,1104,691],{"class":505},[467,1106,694],{"class":484},[467,1108,663],{"class":477},[467,1110,1111],{"class":469,"line":699},[467,1112,702],{"class":477},[467,1114,1115],{"class":469,"line":705},[467,1116,708],{"class":477},[467,1118,1119],{"class":469,"line":711},[467,1120,714],{"class":477},[467,1122,1123],{"class":469,"line":717},[467,1124,490],{"emptyLinePlaceholder":125},[467,1126,1127,1129,1132,1134,1136,1139,1141],{"class":469,"line":722},[467,1128,502],{"class":473},[467,1130,1131],{"class":505}," scan",[467,1133,509],{"class":473},[467,1135,640],{"class":473},[467,1137,1138],{"class":477}," response.",[467,1140,739],{"class":515},[467,1142,519],{"class":477},[467,1144,1145],{"class":469,"line":744},[467,1146,490],{"emptyLinePlaceholder":125},[467,1148,1149,1151,1153],{"class":469,"line":749},[467,1150,918],{"class":477},[467,1152,921],{"class":515},[467,1154,924],{"class":477},[12,1156,1157],{},"Synchronous scans are useful when the user experience depends on an immediate answer. The endpoint waits for the scan result and returns it in the same request when available.",[24,1159,1161],{"id":1160},"what-comes-next","What Comes Next",[12,1163,1164],{},"The beta is where we validate Blazelock with real teams and real workflows. Over the coming months, we will keep improving the dashboard, expanding integration guidance, and tuning the product around practical developer feedback.",[12,1166,1167],{},"Our public release is currently scheduled for Q4 2026. Beta users will receive a special discount at public release as a thank-you for their early trust and feedback.",[12,1169,1170],{},"If malware scanning is part of your upload flow, product security roadmap, or internal operations work, now is the right time to try Blazelock. Join the beta, connect your first integration, and help us build a faster, cleaner way to keep harmful files out of applications.",[1172,1173,1174],"style",{},"html pre.shiki code .sCydW, html code.shiki .sCydW{--shiki-default:#D73A49;--shiki-dark:#D73A49}html pre.shiki code .sKWpL, html code.shiki .sKWpL{--shiki-default:#24292E;--shiki-dark:#24292E}html pre.shiki code .sOTlB, html code.shiki .sOTlB{--shiki-default:#032F62;--shiki-dark:#032F62}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sMN4m, html code.shiki .sMN4m{--shiki-default:#005CC5;--shiki-dark:#005CC5}html pre.shiki code .se37E, html code.shiki .se37E{--shiki-default:#6F42C1;--shiki-dark:#6F42C1}html pre.shiki code .sj_tP, html code.shiki .sj_tP{--shiki-default:#E36209;--shiki-dark:#E36209}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":109,"searchDepth":110,"depth":111,"links":1176},[1177,1178,1179,1180,1184],{"id":357,"depth":110,"text":358},{"id":393,"depth":110,"text":394},{"id":422,"depth":110,"text":423},{"id":441,"depth":110,"text":442,"children":1181},[1182,1183],{"id":452,"depth":111,"text":453},{"id":934,"depth":111,"text":935},{"id":1160,"depth":110,"text":1161},"2026-06-01","Announcing the Blazelock beta, a free early-access release of our malware scanning API for secure file uploads and product workflows.","https:\u002F\u002Fcdn.blazelock.com\u002Fblog\u002Farticles-media\u002F2026\u002Fintroducing-blazelock-beta\u002Fheader.webp","Blazelock beta launch visual",{},"\u002Fblog\u002Fintroducing-blazelock-beta",{"text":1192,"minutes":1193,"time":1194,"words":1195},"4 min read",3.89,233400,778,{"title":343,"description":1186},{"loc":1190,"images":1198},[1199,1200],{"loc":432},{"loc":438},"blog\u002Fintroducing-blazelock-beta","YUVkMWYdU4Ub3L7njMTN79prUhm0Nklpp4X9mhd1_24",1793570061537]