{"id":2436,"date":"2025-07-19T01:03:33","date_gmt":"2025-07-18T18:03:33","guid":{"rendered":"https:\/\/gemlogin.vn\/?p=2436"},"modified":"2025-07-19T01:03:34","modified_gmt":"2025-07-18T18:03:34","slug":"huong-dan-toan-dien-su-dung-gemlogin-api-cho-tu-dong-hoa-trinh-duyet","status":"publish","type":"post","link":"https:\/\/gemlogin.vn\/en\/comprehensive-guide-to-using-gemlogin-api-for-browser-automation\/","title":{"rendered":"A Comprehensive Guide to Using Gemlogin API for Browser Automation"},"content":{"rendered":"<p><strong>Gemlogin API<\/strong> is a powerful application programming interface that allows you to control and integrate Gemlogin&#039;s Antidetect Browser platform entirely through source code. With the Gemlogin API, browser profiles are instantaneously created, configured, launched, monitored, and closed via HTTP endpoints, without the need for GUI manipulation. This opens up the opportunity to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Automation<\/strong>: Build workflow, run multiple profiles in parallel.<\/li>\n\n\n\n<li><strong>Flexible integration<\/strong>: Connect to CRM, ERP, Google Sheets, or any third-party system.<\/li>\n\n\n\n<li><strong>Scaling Up<\/strong>: Easily manage thousands of profiles with different fingerprints.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Authentication &amp; General Configuration<\/h2>\n\n\n\n<p>Every request to the Gemlogin API requires an authentication header:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">httpCopyEdit<code>Authorization: Bearer<br>Content-Type: application\/json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Bearer Token<\/strong>: Get it from Gemlogin Dashboard page.<\/li>\n\n\n\n<li><strong>Timeout<\/strong>: Default 60s, can be customized according to application needs.<\/li>\n\n\n\n<li><strong>Data format<\/strong>: JSON for both request and response.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Main endpoints<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1518\" height=\"882\" src=\"https:\/\/gemlogin.vn\/wp-content\/uploads\/2025\/07\/image-6.png\" alt=\"\" class=\"wp-image-2437\" style=\"width:787px;height:auto\" srcset=\"https:\/\/gemlogin.vn\/wp-content\/uploads\/2025\/07\/image-6.png 1518w, https:\/\/gemlogin.vn\/wp-content\/uploads\/2025\/07\/image-6-300x174.png 300w, https:\/\/gemlogin.vn\/wp-content\/uploads\/2025\/07\/image-6-1024x595.png 1024w, https:\/\/gemlogin.vn\/wp-content\/uploads\/2025\/07\/image-6-768x446.png 768w, https:\/\/gemlogin.vn\/wp-content\/uploads\/2025\/07\/image-6-18x10.png 18w\" sizes=\"(max-width: 1518px) 100vw, 1518px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">2.1. Browser Versions<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>GET \/api\/browser_versions<\/code><br>Get the list of supported browser versions (Chrome, Firefox\u2026). jsonCopyEdit<code>[ { &quot;id&quot;: &quot;chrome_100&quot;, &quot;name&quot;: &quot;Chrome&quot;, &quot;version&quot;: &quot;100.0.4896.127&quot; }, { &quot;id&quot;: &quot;firefox_98&quot;, &quot;name&quot;: &quot;Firefox&quot;, &quot;version&quot;: &quot;98.0&quot; } \/\/ \u2026 ]<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.2. Groups<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>GET \/api\/groups<\/code><br>List query <strong>Group<\/strong> profile, convenient for classifying and assigning common configurations. jsonCopyEdit<code>[ { &quot;id&quot;: &quot;grp1&quot;, &quot;name&quot;: &quot;US Customers&quot; }, { &quot;id&quot;: &quot;grp2&quot;, &quot;name&quot;: &quot;Testers&quot; } ]<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.3. Profiles<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>List &amp; Details<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>GET \/api\/profiles<\/code><br>Get all created profiles.<\/li>\n\n\n\n<li><code>GET \/api\/profile\/{id}<\/code><br>Get profile details by <code>{id}<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Create &amp; Update<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>POST \/api\/profiles\/create<\/code><br>Create new profile with payload example: jsonCopyEdit<code>{ &quot;name&quot;: &quot;FB-Account-1&quot;, &quot;browserVersion&quot;: &quot;chrome_100&quot;, &quot;proxy&quot;: { &quot;host&quot;: &quot;1.2.3.4&quot;, &quot;port&quot;: 8000, &quot;username&quot;: &quot;&quot;, &quot;password&quot;: &quot;&quot; }, &quot;fingerprint&quot;: &quot;default&quot;, &quot;timezone&quot;: &quot;America\/New_York&quot; }<\/code><\/li>\n\n\n\n<li><code>POST \/api\/profiles\/update\/{profile_id}<\/code><br>Update existing profile configuration (proxy, fingerprint, timezone,\u2026).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Delete &amp; Change fingerprint<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>GET \/api\/profiles\/delete\/{id}<\/code><br>Delete profile by ID.<\/li>\n\n\n\n<li><code>GET \/api\/profiles\/changeFingerprint<\/code><br>Refresh fingerprints for one or more profiles, helping to avoid long-term tracking.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Launch &amp; Close browser instance<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>GET \/api\/profiles\/start\/{id}<\/code><br>Spawn a browser instance from a profile.\n<ul class=\"wp-block-list\">\n<li><strong>Response<\/strong>: WebSocket URL to control (Puppeteer, Playwright\u2026).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>GET \/api\/profiles\/close\/{id}<\/code><br>Close (kill) the running browser instance of the profile.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. How to use API in practice<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Example 1: Create &amp; Run Profile<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">bashCopyEdit<code># 1. Create new profile curl -X POST https:\/\/api.gemlogin.io\/api\/profiles\/create \\ -H &quot;Authorization: Bearer $TOKEN&quot; \\ -H &quot;Content-Type: application\/json&quot; \\ -d &#039;{ &quot;name&quot;:&quot;MyProfile01&quot;, &quot;browserVersion&quot;:&quot;chrome_100&quot;, &quot;proxy&quot;:{&quot;host&quot;:&quot;proxy.my.com&quot;,&quot;port&quot;:3128}, &quot;fingerprint&quot;:&quot;random&quot; }&#039; # 2. Launch the newly created profile curl -X GET https:\/\/api.gemlogin.io\/api\/profiles\/start\/{PROFILE_ID} \\ -H &quot;Authorization: Bearer $TOKEN&quot;\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Example 2: Batch Run with Node.js Script<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">javascriptCopyEdit<code>const axios = require(&#039;axios&#039;); const API = &#039;https:\/\/api.gemlogin.io\/api&#039;; const token = process.env.GEMLOGIN_TOKEN; async function runProfile(profileId) { const { data } = await axios.get(`${API}\/profiles\/start\/${profileId}`, { headers: { Authorization: `Bearer ${token}` } }); console.log(&#039;WebSocket URL:&#039;, data.wsUrl); \/\/ Continue to control the browser via Puppeteer\/Playwright... } (async () =&gt; { \/\/ Get a list of profiles const { data: profiles } = await axios.get(`${API}\/profiles`, { headers: { Authorization: `Bearer ${token}` } }); for (let p of profiles) { await runProfile(p.id); } })();\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Management &amp; Monitoring<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Logs<\/strong>: Use the same endpoint <code>GET \/api\/logs\/{run_id}<\/code> (if available) or via SDK to get debug details.<\/li>\n\n\n\n<li><strong>Resource Status<\/strong>: Update profile status (\u201cActive\u201d, \u201cInactive\u201d, \u201cInvalid\u201d) to synchronize with the business system.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Tips &amp; Best Practices<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Rate Limit<\/strong>: Default ~100 requests\/minute, if you need higher, please contact support.<\/li>\n\n\n\n<li><strong>Retry Logic<\/strong>: Handling 5xx errors with retry\/backoff mechanism.<\/li>\n\n\n\n<li><strong>Fingerprint Rotation<\/strong>: Combine <code>changeFingerprint<\/code> periodically to increase randomness.<\/li>\n\n\n\n<li><strong>Group-based Config<\/strong>: Create multiple groups by region or use-case for easy management.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Conclude<\/h2>\n\n\n\n<p>With <strong>Gemlogin API<\/strong>, you are completely proactive in <strong>integration<\/strong>, <strong>extend<\/strong> and <strong>optimal<\/strong> Antidetect browser automation workflow. From profile manipulation, fingerprint management, to launching and closing browser instances\u2014everything can be done via command line or code. Let&#039;s get started <strong>Gemlogin API<\/strong> today to improve performance, reduce operational effort and optimize costs for your project!<\/p>\n\n\n\n<p>Document: <a href=\"https:\/\/manual-gemlogin-vn.gitbook.io\/gemlogin\/tai-lieu-api\/api\" target=\"_blank\" rel=\"noopener\">https:\/\/manual-gemlogin-vn.gitbook.io\/gemlogin\/tai-lieu-api\/api<\/a><\/p>\n\n\n\n<p>Website: <a href=\"https:\/\/gemlogin.vn\/en\/\" data-type=\"link\" data-id=\"https:\/\/gemlogin.vn\/\">gemlogin.vn<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;2436&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;5&quot;,&quot;greet&quot;:&quot;H\u00e3y cho t\u00f4i bi\u1ebft c\u1ea3m nh\u1eadn c\u1ee7a b\u1ea1n&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;H\u01b0\u1edbng D\u1eabn To\u00e0n Di\u1ec7n S\u1eed D\u1ee5ng Gemlogin API Cho T\u1ef1 \u0110\u1ed9ng H\u00f3a Tr\u00ecnh Duy\u1ec7t&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\">Let me know what you think<\/span>\n    <\/div>\n    <\/div>","protected":false},"excerpt":{"rendered":"<p>The Gemlogin API is a powerful application programming interface that allows you to control and integrate Gemlogin&#039;s Antidetect Browser platform entirely through source code. With the Gemlogin API, browser profiles are instantaneously created, configured, launched, monitored, and closed via\u2026<\/p>","protected":false},"author":1,"featured_media":2438,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[9,8,10],"tags":[14,12,212],"class_list":["post-2436","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tools","category-blog","category-new","tag-antidetect-browser","tag-gemlogin","tag-gemlogin-api"],"_links":{"self":[{"href":"https:\/\/gemlogin.vn\/en\/wp-json\/wp\/v2\/posts\/2436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gemlogin.vn\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gemlogin.vn\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gemlogin.vn\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gemlogin.vn\/en\/wp-json\/wp\/v2\/comments?post=2436"}],"version-history":[{"count":1,"href":"https:\/\/gemlogin.vn\/en\/wp-json\/wp\/v2\/posts\/2436\/revisions"}],"predecessor-version":[{"id":2439,"href":"https:\/\/gemlogin.vn\/en\/wp-json\/wp\/v2\/posts\/2436\/revisions\/2439"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gemlogin.vn\/en\/wp-json\/wp\/v2\/media\/2438"}],"wp:attachment":[{"href":"https:\/\/gemlogin.vn\/en\/wp-json\/wp\/v2\/media?parent=2436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gemlogin.vn\/en\/wp-json\/wp\/v2\/categories?post=2436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gemlogin.vn\/en\/wp-json\/wp\/v2\/tags?post=2436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}