[{"data":1,"prerenderedAt":841},["ShallowReactive",2],{"navigation_docs":3,"-services-api-developer-utilities":134,"-services-api-developer-utilities-surround":836},[4,36,61,87,113],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":35},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-sparkles",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart","i-lucide-zap",{"title":21,"path":22,"stem":23,"icon":24},"Authentication","\u002Fgetting-started\u002Fauthentication","1.getting-started\u002F3.authentication","i-lucide-key",{"title":26,"path":27,"stem":28,"icon":29},"Rate Limits & Quotas","\u002Fgetting-started\u002Frate-limits-quotas","1.getting-started\u002F4.rate-limits-quotas","i-lucide-gauge",{"title":31,"path":32,"stem":33,"icon":34},"SDKs & Tools","\u002Fgetting-started\u002Fsdks-tools","1.getting-started\u002F5.sdks-tools","i-lucide-box",false,{"title":37,"icon":38,"path":39,"stem":40,"children":41,"page":35},"Cloud Infrastructure","i-lucide-server","\u002Finfrastructure","2.infrastructure",[42,46,51,56],{"title":43,"path":44,"stem":45,"icon":38},"Cloud VPS Compute","\u002Finfrastructure\u002Fvps-compute","2.infrastructure\u002F1.vps-compute",{"title":47,"path":48,"stem":49,"icon":50},"Managed Databases","\u002Finfrastructure\u002Fmanaged-databases","2.infrastructure\u002F2.managed-databases","i-lucide-database",{"title":52,"path":53,"stem":54,"icon":55},"Networking & Cloud Firewall","\u002Finfrastructure\u002Fnetworking-firewall","2.infrastructure\u002F3.networking-firewall","i-lucide-shield",{"title":57,"path":58,"stem":59,"icon":60},"Block Storage & Volumes","\u002Finfrastructure\u002Fblock-storage","2.infrastructure\u002F4.block-storage","i-lucide-hard-drive",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":35},"Services & APIs","i-lucide-cpu","\u002Fservices-api","3.services-api",[67,72,77,82],{"title":68,"path":69,"stem":70,"icon":71},"REST API Reference","\u002Fservices-api\u002Fapi-reference","3.services-api\u002F1.api-reference","i-lucide-terminal",{"title":73,"path":74,"stem":75,"icon":76},"URL Shortener API","\u002Fservices-api\u002Furl-shortener","3.services-api\u002F2.url-shortener","i-lucide-link",{"title":78,"path":79,"stem":80,"icon":81},"Temp Mail API","\u002Fservices-api\u002Ftemp-mail","3.services-api\u002F3.temp-mail","i-lucide-mail",{"title":83,"path":84,"stem":85,"icon":86},"Developer Utility APIs","\u002Fservices-api\u002Fdeveloper-utilities","3.services-api\u002F4.developer-utilities","i-lucide-wrench",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":35},"Guides & Tutorials","i-lucide-book-open","\u002Fguides","4.guides",[93,98,103,108],{"title":94,"path":95,"stem":96,"icon":97},"Deploy a Full-Stack App with VPS & PostgreSQL","\u002Fguides\u002Fdeploy-fullstack-app","4.guides\u002F1.deploy-fullstack-app","i-lucide-layers",{"title":99,"path":100,"stem":101,"icon":102},"Automated Backups & Webhook Alerts","\u002Fguides\u002Fautomated-backups-webhook","4.guides\u002F2.automated-backups-webhook","i-lucide-bell",{"title":104,"path":105,"stem":106,"icon":107},"E2E Auth Testing with Temp Mail in CI\u002FCD","\u002Fguides\u002Fci-cd-temp-mail-testing","4.guides\u002F3.ci-cd-temp-mail-testing","i-lucide-check-circle-2",{"title":109,"path":110,"stem":111,"icon":112},"Custom Domain & SSL Configuration","\u002Fguides\u002Fcustom-domain-setup","4.guides\u002F4.custom-domain-setup","i-lucide-globe",{"title":114,"icon":115,"path":116,"stem":117,"children":118,"page":35},"Account & Billing","i-lucide-credit-card","\u002Faccount-billing","5.account-billing",[119,124,129],{"title":120,"path":121,"stem":122,"icon":123},"Pricing & Hourly Billing","\u002Faccount-billing\u002Fpricing-billing","5.account-billing\u002F1.pricing-billing","i-lucide-receipt",{"title":125,"path":126,"stem":127,"icon":128},"Team Management & RBAC","\u002Faccount-billing\u002Fteam-rbac","5.account-billing\u002F2.team-rbac","i-lucide-users",{"title":130,"path":131,"stem":132,"icon":133},"Resource Quotas & Service Limits","\u002Faccount-billing\u002Fservice-limits","5.account-billing\u002F3.service-limits","i-lucide-sliders",{"id":135,"title":83,"body":136,"description":827,"extension":828,"links":829,"meta":830,"navigation":831,"path":84,"seo":832,"stem":85,"__hash__":835},"docs\u002F3.services-api\u002F4.developer-utilities.md",{"type":137,"value":138,"toc":820},"minimark",[139,143,147,150,155,158,164,169,493,495,499,502,507,693,695,699,702,707,816],[140,141,83],"h1",{"id":142},"developer-utility-apis",[144,145,146],"p",{},"1st Services provides a suite of microservices designed to handle common operational and networking tasks inside your applications.",[148,149],"hr",{},[151,152,154],"h2",{"id":153},"_1-ip-geolocation-asn-lookup","1. IP Geolocation & ASN Lookup",[144,156,157],{},"Inspect client IP addresses to determine country, city, coordinates, ISP, and Autonomous System (ASN):",[144,159,160],{},[161,162,163],"code",{},"GET https:\u002F\u002Fapi.1st-services.com\u002Fv1\u002Futils\u002Fip\u002F:ip_address",[165,166,168],"h3",{"id":167},"example-response","Example Response",[170,171,176],"pre",{"className":172,"code":173,"language":174,"meta":175,"style":175},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"status\": \"success\",\n  \"data\": {\n    \"ip\": \"194.163.140.22\",\n    \"type\": \"ipv4\",\n    \"country_code\": \"DE\",\n    \"country_name\": \"Germany\",\n    \"city\": \"Frankfurt\",\n    \"postal_code\": \"60311\",\n    \"latitude\": 50.1109,\n    \"longitude\": 8.6821,\n    \"asn\": {\n      \"number\": 51167,\n      \"org\": \"Contabo GmbH\"\n    },\n    \"is_vpn\": false,\n    \"is_datacenter\": true\n  }\n}\n","json","",[161,177,178,187,215,230,253,274,295,316,337,358,376,393,407,425,445,451,466,481,487],{"__ignoreMap":175},[179,180,183],"span",{"class":181,"line":182},"line",1,[179,184,186],{"class":185},"sMK4o","{\n",[179,188,190,193,197,200,203,206,210,212],{"class":181,"line":189},2,[179,191,192],{"class":185},"  \"",[179,194,196],{"class":195},"spNyl","status",[179,198,199],{"class":185},"\"",[179,201,202],{"class":185},":",[179,204,205],{"class":185}," \"",[179,207,209],{"class":208},"sfazB","success",[179,211,199],{"class":185},[179,213,214],{"class":185},",\n",[179,216,218,220,223,225,227],{"class":181,"line":217},3,[179,219,192],{"class":185},[179,221,222],{"class":195},"data",[179,224,199],{"class":185},[179,226,202],{"class":185},[179,228,229],{"class":185}," {\n",[179,231,233,236,240,242,244,246,249,251],{"class":181,"line":232},4,[179,234,235],{"class":185},"    \"",[179,237,239],{"class":238},"sBMFI","ip",[179,241,199],{"class":185},[179,243,202],{"class":185},[179,245,205],{"class":185},[179,247,248],{"class":208},"194.163.140.22",[179,250,199],{"class":185},[179,252,214],{"class":185},[179,254,256,258,261,263,265,267,270,272],{"class":181,"line":255},5,[179,257,235],{"class":185},[179,259,260],{"class":238},"type",[179,262,199],{"class":185},[179,264,202],{"class":185},[179,266,205],{"class":185},[179,268,269],{"class":208},"ipv4",[179,271,199],{"class":185},[179,273,214],{"class":185},[179,275,277,279,282,284,286,288,291,293],{"class":181,"line":276},6,[179,278,235],{"class":185},[179,280,281],{"class":238},"country_code",[179,283,199],{"class":185},[179,285,202],{"class":185},[179,287,205],{"class":185},[179,289,290],{"class":208},"DE",[179,292,199],{"class":185},[179,294,214],{"class":185},[179,296,298,300,303,305,307,309,312,314],{"class":181,"line":297},7,[179,299,235],{"class":185},[179,301,302],{"class":238},"country_name",[179,304,199],{"class":185},[179,306,202],{"class":185},[179,308,205],{"class":185},[179,310,311],{"class":208},"Germany",[179,313,199],{"class":185},[179,315,214],{"class":185},[179,317,319,321,324,326,328,330,333,335],{"class":181,"line":318},8,[179,320,235],{"class":185},[179,322,323],{"class":238},"city",[179,325,199],{"class":185},[179,327,202],{"class":185},[179,329,205],{"class":185},[179,331,332],{"class":208},"Frankfurt",[179,334,199],{"class":185},[179,336,214],{"class":185},[179,338,340,342,345,347,349,351,354,356],{"class":181,"line":339},9,[179,341,235],{"class":185},[179,343,344],{"class":238},"postal_code",[179,346,199],{"class":185},[179,348,202],{"class":185},[179,350,205],{"class":185},[179,352,353],{"class":208},"60311",[179,355,199],{"class":185},[179,357,214],{"class":185},[179,359,361,363,366,368,370,374],{"class":181,"line":360},10,[179,362,235],{"class":185},[179,364,365],{"class":238},"latitude",[179,367,199],{"class":185},[179,369,202],{"class":185},[179,371,373],{"class":372},"sbssI"," 50.1109",[179,375,214],{"class":185},[179,377,379,381,384,386,388,391],{"class":181,"line":378},11,[179,380,235],{"class":185},[179,382,383],{"class":238},"longitude",[179,385,199],{"class":185},[179,387,202],{"class":185},[179,389,390],{"class":372}," 8.6821",[179,392,214],{"class":185},[179,394,396,398,401,403,405],{"class":181,"line":395},12,[179,397,235],{"class":185},[179,399,400],{"class":238},"asn",[179,402,199],{"class":185},[179,404,202],{"class":185},[179,406,229],{"class":185},[179,408,410,413,416,418,420,423],{"class":181,"line":409},13,[179,411,412],{"class":185},"      \"",[179,414,415],{"class":372},"number",[179,417,199],{"class":185},[179,419,202],{"class":185},[179,421,422],{"class":372}," 51167",[179,424,214],{"class":185},[179,426,428,430,433,435,437,439,442],{"class":181,"line":427},14,[179,429,412],{"class":185},[179,431,432],{"class":372},"org",[179,434,199],{"class":185},[179,436,202],{"class":185},[179,438,205],{"class":185},[179,440,441],{"class":208},"Contabo GmbH",[179,443,444],{"class":185},"\"\n",[179,446,448],{"class":181,"line":447},15,[179,449,450],{"class":185},"    },\n",[179,452,454,456,459,461,463],{"class":181,"line":453},16,[179,455,235],{"class":185},[179,457,458],{"class":238},"is_vpn",[179,460,199],{"class":185},[179,462,202],{"class":185},[179,464,465],{"class":185}," false,\n",[179,467,469,471,474,476,478],{"class":181,"line":468},17,[179,470,235],{"class":185},[179,472,473],{"class":238},"is_datacenter",[179,475,199],{"class":185},[179,477,202],{"class":185},[179,479,480],{"class":185}," true\n",[179,482,484],{"class":181,"line":483},18,[179,485,486],{"class":185},"  }\n",[179,488,490],{"class":181,"line":489},19,[179,491,492],{"class":185},"}\n",[148,494],{},[151,496,498],{"id":497},"_2-dns-over-https-doh-api","2. DNS over HTTPS (DoH) API",[144,500,501],{},"Perform ultra-fast DNS lookups programmatically:",[144,503,504],{},[161,505,506],{},"GET https:\u002F\u002Fapi.1st-services.com\u002Fv1\u002Futils\u002Fdns?name=example.com&type=A",[170,508,510],{"className":172,"code":509,"language":174,"meta":175,"style":175},"{\n  \"status\": \"success\",\n  \"data\": {\n    \"question\": { \"name\": \"example.com\", \"type\": \"A\" },\n    \"answers\": [\n      { \"name\": \"example.com\", \"type\": \"A\", \"TTL\": 300, \"data\": \"93.184.216.34\" }\n    ]\n  }\n}\n",[161,511,512,516,534,546,597,611,680,685,689],{"__ignoreMap":175},[179,513,514],{"class":181,"line":182},[179,515,186],{"class":185},[179,517,518,520,522,524,526,528,530,532],{"class":181,"line":189},[179,519,192],{"class":185},[179,521,196],{"class":195},[179,523,199],{"class":185},[179,525,202],{"class":185},[179,527,205],{"class":185},[179,529,209],{"class":208},[179,531,199],{"class":185},[179,533,214],{"class":185},[179,535,536,538,540,542,544],{"class":181,"line":217},[179,537,192],{"class":185},[179,539,222],{"class":195},[179,541,199],{"class":185},[179,543,202],{"class":185},[179,545,229],{"class":185},[179,547,548,550,553,555,557,560,562,565,567,569,571,574,576,579,581,583,585,587,589,592,594],{"class":181,"line":232},[179,549,235],{"class":185},[179,551,552],{"class":238},"question",[179,554,199],{"class":185},[179,556,202],{"class":185},[179,558,559],{"class":185}," {",[179,561,205],{"class":185},[179,563,564],{"class":372},"name",[179,566,199],{"class":185},[179,568,202],{"class":185},[179,570,205],{"class":185},[179,572,573],{"class":208},"example.com",[179,575,199],{"class":185},[179,577,578],{"class":185},",",[179,580,205],{"class":185},[179,582,260],{"class":372},[179,584,199],{"class":185},[179,586,202],{"class":185},[179,588,205],{"class":185},[179,590,591],{"class":208},"A",[179,593,199],{"class":185},[179,595,596],{"class":185}," },\n",[179,598,599,601,604,606,608],{"class":181,"line":255},[179,600,235],{"class":185},[179,602,603],{"class":238},"answers",[179,605,199],{"class":185},[179,607,202],{"class":185},[179,609,610],{"class":185}," [\n",[179,612,613,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,653,655,657,660,662,664,666,668,670,672,675,677],{"class":181,"line":276},[179,614,615],{"class":185},"      {",[179,617,205],{"class":185},[179,619,564],{"class":372},[179,621,199],{"class":185},[179,623,202],{"class":185},[179,625,205],{"class":185},[179,627,573],{"class":208},[179,629,199],{"class":185},[179,631,578],{"class":185},[179,633,205],{"class":185},[179,635,260],{"class":372},[179,637,199],{"class":185},[179,639,202],{"class":185},[179,641,205],{"class":185},[179,643,591],{"class":208},[179,645,199],{"class":185},[179,647,578],{"class":185},[179,649,205],{"class":185},[179,651,652],{"class":372},"TTL",[179,654,199],{"class":185},[179,656,202],{"class":185},[179,658,659],{"class":372}," 300",[179,661,578],{"class":185},[179,663,205],{"class":185},[179,665,222],{"class":372},[179,667,199],{"class":185},[179,669,202],{"class":185},[179,671,205],{"class":185},[179,673,674],{"class":208},"93.184.216.34",[179,676,199],{"class":185},[179,678,679],{"class":185}," }\n",[179,681,682],{"class":181,"line":297},[179,683,684],{"class":185},"    ]\n",[179,686,687],{"class":181,"line":318},[179,688,486],{"class":185},[179,690,691],{"class":181,"line":339},[179,692,492],{"class":185},[148,694],{},[151,696,698],{"id":697},"_3-real-time-webhook-relay-tester","3. Real-Time Webhook Relay & Tester",[144,700,701],{},"Test and relay webhooks to local dev environments or third-party endpoints:",[144,703,704],{},[161,705,706],{},"POST https:\u002F\u002Fapi.1st-services.com\u002Fv1\u002Futils\u002Fwebhooks\u002Frelay",[170,708,710],{"className":172,"code":709,"language":174,"meta":175,"style":175},"{\n  \"target_url\": \"https:\u002F\u002Fwebhook.site\u002Fmy-uuid\",\n  \"payload\": { \"event\": \"order.created\", \"amount\": 99.00 },\n  \"headers\": { \"X-Custom-Auth\": \"secret123\" }\n}\n",[161,711,712,716,736,781,812],{"__ignoreMap":175},[179,713,714],{"class":181,"line":182},[179,715,186],{"class":185},[179,717,718,720,723,725,727,729,732,734],{"class":181,"line":189},[179,719,192],{"class":185},[179,721,722],{"class":195},"target_url",[179,724,199],{"class":185},[179,726,202],{"class":185},[179,728,205],{"class":185},[179,730,731],{"class":208},"https:\u002F\u002Fwebhook.site\u002Fmy-uuid",[179,733,199],{"class":185},[179,735,214],{"class":185},[179,737,738,740,743,745,747,749,751,754,756,758,760,763,765,767,769,772,774,776,779],{"class":181,"line":217},[179,739,192],{"class":185},[179,741,742],{"class":195},"payload",[179,744,199],{"class":185},[179,746,202],{"class":185},[179,748,559],{"class":185},[179,750,205],{"class":185},[179,752,753],{"class":238},"event",[179,755,199],{"class":185},[179,757,202],{"class":185},[179,759,205],{"class":185},[179,761,762],{"class":208},"order.created",[179,764,199],{"class":185},[179,766,578],{"class":185},[179,768,205],{"class":185},[179,770,771],{"class":238},"amount",[179,773,199],{"class":185},[179,775,202],{"class":185},[179,777,778],{"class":372}," 99.00",[179,780,596],{"class":185},[179,782,783,785,788,790,792,794,796,799,801,803,805,808,810],{"class":181,"line":232},[179,784,192],{"class":185},[179,786,787],{"class":195},"headers",[179,789,199],{"class":185},[179,791,202],{"class":185},[179,793,559],{"class":185},[179,795,205],{"class":185},[179,797,798],{"class":238},"X-Custom-Auth",[179,800,199],{"class":185},[179,802,202],{"class":185},[179,804,205],{"class":185},[179,806,807],{"class":208},"secret123",[179,809,199],{"class":185},[179,811,679],{"class":185},[179,813,814],{"class":181,"line":255},[179,815,492],{"class":185},[817,818,819],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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":175,"searchDepth":189,"depth":189,"links":821},[822,825,826],{"id":153,"depth":189,"text":154,"children":823},[824],{"id":167,"depth":217,"text":168},{"id":497,"depth":189,"text":498},{"id":697,"depth":189,"text":698},"High-speed developer micro-APIs for IP geolocation, DNS resolution, and webhook relaying.","md",null,{},{"icon":86},{"title":833,"description":834},"Developer Utilities API - 1st Services","Micro-APIs including IP Geolocation, ASN lookup, DNS over HTTPS, and Webhook relaying.","WyUswI99H4p2JLk548mVNX4GRp4lkD76pI2iuL3IZCI",[837,839],{"title":78,"path":79,"stem":80,"description":838,"icon":81,"children":-1},"Disposable temporary email inbox API for CI\u002FCD automation, QA testing, and spam prevention.",{"title":94,"path":95,"stem":96,"description":840,"icon":97,"children":-1},"End-to-end tutorial on launching a high-performance VPS, configuring Nginx, and connecting to 1st Managed PostgreSQL.",1787579790712]