{"_id":"@apifreaks/sdk","_rev":"7-0592781736d566edfc5cafd1f05e81ad","name":"@apifreaks/sdk","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"@apifreaks/sdk","version":"1.0.0","keywords":["apifreaks","api","sdk","typescript","javascript","geolocation","whois","dns","ssl","currency","domain","screenshot","timezone","user-agent"],"author":{"url":"mailto:afraz@jfreaks.com","name":"Afraz Ahmed [afraz@jfreaks.com]"},"license":"ISC","_id":"@apifreaks/sdk@1.0.0","maintainers":[{"name":"afraz-33","email":"afraz@jfreaks.com"},{"name":"umar-asad","email":"umar@jfreaks.com"}],"homepage":"https://github.com/api-freaks/af-typescript-sdk#readme","bugs":{"url":"https://github.com/api-freaks/af-typescript-sdk/issues"},"dist":{"shasum":"8e1289fcc104cf564bacb4b90abc0167e9ba0f25","tarball":"https://registry.npmjs.org/@apifreaks/sdk/-/sdk-1.0.0.tgz","fileCount":892,"integrity":"sha512-hTxuh1TtaJ4Ixpx8eI39wksNFEtVnpmy1qhrwmz/o0jnrHZYrKT+1mGMS5p7uXI9zt1GlyfdCQ9mM+lbKAMlLg==","signatures":[{"sig":"MEQCIEMKE4hqAf4StZntawkvYaC87GnGCfmVp/ypisS0qAaKAiBHGur2Uc0zNjtGOEGi3jqsJ7NhOWKjOHgPQSUHEIyueg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apifreaks%2fsdk@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1361247},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ebd49795e36e25cd15147a5ff103c895357c0cd1","scripts":{"test":"npm run build","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"afraz-33","email":"afraz@jfreaks.com"},"repository":{"url":"git+https://github.com/api-freaks/af-typescript-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Official TypeScript SDK for APIFreaks APIs.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"undici-types":"^7.24.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.9.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0_1781274087111_0.7778703699353628","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@apifreaks/sdk","version":"1.0.1","keywords":["apifreaks","api","sdk","typescript","javascript","geolocation","whois","dns","ssl","currency","domain","screenshot","timezone","user-agent"],"author":{"url":"mailto:afraz@jfreaks.com","name":"Afraz Ahmed [afraz@jfreaks.com]"},"license":"ISC","_id":"@apifreaks/sdk@1.0.1","maintainers":[{"name":"afraz-33","email":"afraz@jfreaks.com"}],"homepage":"https://github.com/api-freaks/af-typescript-sdk#readme","bugs":{"url":"https://github.com/api-freaks/af-typescript-sdk/issues"},"dist":{"shasum":"31a66c9adce8bbe88fd74cffa6b18db1f7893c14","tarball":"https://registry.npmjs.org/@apifreaks/sdk/-/sdk-1.0.1.tgz","fileCount":892,"integrity":"sha512-U/OCGBIuIfaHsE19gAQvDjnudLbnlu0+M0GfB2YTsnU8VHw9bRlaVRxkITRm8PitKbVLe8riY0kYX3UeZtlXcA==","signatures":[{"sig":"MEQCIHZbhEw3PCyRty3aOLS+zV2cLyekkv6tF6SCkGL09obFAiBRdvGiYkSnQJk72xKca5Xq/bqEQ/B6kWb3Tr+vz97Jhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apifreaks%2fsdk@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1361720},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"689e73d6e259225d466af21c72b3d94029c31e9c","scripts":{"test":"npm run build","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"afraz-33","email":"afraz@jfreaks.com"},"repository":{"url":"git+https://github.com/api-freaks/af-typescript-sdk.git","type":"git"},"_npmVersion":"11.13.0","description":"Official TypeScript SDK for APIFreaks APIs.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"undici-types":"^7.24.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.9.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.1_1782126013206_0.23052804807974403","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@apifreaks/sdk","version":"1.0.2","keywords":["apifreaks","api","sdk","typescript","javascript","geolocation","whois","dns","ssl","currency","domain","screenshot","timezone","user-agent"],"author":{"url":"mailto:afraz@jfreaks.com","name":"Afraz Ahmed [afraz@jfreaks.com]"},"license":"ISC","_id":"@apifreaks/sdk@1.0.2","maintainers":[{"name":"afraz-33","email":"afraz@jfreaks.com"}],"homepage":"https://github.com/api-freaks/af-typescript-sdk#readme","bugs":{"url":"https://github.com/api-freaks/af-typescript-sdk/issues"},"dist":{"shasum":"51ae6cffdc56ee4142d0380414656511cae14b3b","tarball":"https://registry.npmjs.org/@apifreaks/sdk/-/sdk-1.0.2.tgz","fileCount":932,"integrity":"sha512-yu2gpaPG1mD+lbJ6ssGhntkkd42nnfAj9H5RIw2os3IViG99i0+tMmzaVPmYAqAMhxPo5T3sLIx6SnXCRgWxDQ==","signatures":[{"sig":"MEUCIQDNYkqtHM5l8YUu+Djs3Pn0T5+s+/7xHS/+i6vLoq/nnAIgNUNtqiOuIXDNN1KR2oz5MV7fMpri5UkSg96XopQBuUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apifreaks%2fsdk@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1447761},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ec6044f4cd2ef34549e86287e9b719f7a22d3a88","scripts":{"test":"npm run build","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"afraz-33","email":"afraz@jfreaks.com"},"repository":{"url":"git+https://github.com/api-freaks/af-typescript-sdk.git","type":"git"},"_npmVersion":"11.16.0","description":"Official TypeScript SDK for APIFreaks APIs.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"undici-types":"^7.24.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.9.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.2_1783597645889_0.8220393712101504","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@apifreaks/sdk","version":"1.1.0","keywords":["apifreaks","api","sdk","typescript","javascript","geolocation","whois","dns","ssl","currency","domain","screenshot","timezone","user-agent"],"author":{"url":"mailto:afraz@jfreaks.com","name":"Afraz Ahmed [afraz@jfreaks.com]"},"license":"ISC","_id":"@apifreaks/sdk@1.1.0","maintainers":[{"name":"umar-asad","email":"umar@jfreaks.com"}],"homepage":"https://github.com/api-freaks/af-typescript-sdk#readme","bugs":{"url":"https://github.com/api-freaks/af-typescript-sdk/issues"},"dist":{"shasum":"15b4391504efb23246eacfcfa765c2bcc096c0e3","tarball":"https://registry.npmjs.org/@apifreaks/sdk/-/sdk-1.1.0.tgz","fileCount":978,"integrity":"sha512-URNdFr1OuUAfcDcp6R5QPnpgKz79NSONkHwex5alIOyWs4fVJrC4vxfQ7nTW8yuC80Rj3AENRCwpRL40hSzVfw==","signatures":[{"sig":"MEQCIHySu0+HuhV94xiLOY6gpdRtp+NWUBVBRBpuA6B4EYK9AiAWwUILF8pVJ79TNVZ2cx0HZbxOJ7sTTvXfcCOhYnX6NA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apifreaks%2fsdk@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1572543},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"91513ad706c5ec95e005fb5499de8c91b9cda7b8","scripts":{"test":"npm run build","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"umar-asad","email":"umar@jfreaks.com"},"repository":{"url":"git+https://github.com/api-freaks/af-typescript-sdk.git","type":"git"},"_npmVersion":"11.19.0","description":"Official TypeScript SDK for APIFreaks APIs.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"undici-types":"^7.24.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^25.9.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.1.0_1789396984736_0.08563070662596073","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@apifreaks/sdk","version":"1.1.1","description":"Official TypeScript SDK for APIFreaks APIs.","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","test":"npm run build","prepublishOnly":"npm run build"},"dependencies":{"undici-types":"^7.24.6"},"devDependencies":{"@types/node":"^25.9.2","typescript":"^5.0.0"},"keywords":["apifreaks","api","sdk","typescript","javascript","geolocation","whois","dns","ssl","currency","domain","screenshot","timezone","user-agent"],"author":{"name":"Afraz Ahmed [afraz@jfreaks.com]","url":"mailto:afraz@jfreaks.com"},"license":"ISC","homepage":"https://github.com/api-freaks/af-typescript-sdk#readme","repository":{"type":"git","url":"git+https://github.com/api-freaks/af-typescript-sdk.git"},"bugs":{"url":"https://github.com/api-freaks/af-typescript-sdk/issues"},"publishConfig":{"access":"public"},"gitHead":"0d40c30f8b1034f6533a3d363c25f40feceddb28","_id":"@apifreaks/sdk@1.1.1","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-MSbDtfWjBr5U6USmeTDulg1s6yh/UNH/1gRiwTDCszDf06H7n5xHMqcmD748X+uqwZIRFYCc0DjRSATI9HGsEw==","shasum":"e2ca27f2c747af2a0dbe4bccaf94a8643a10fd5b","tarball":"https://registry.npmjs.org/@apifreaks/sdk/-/sdk-1.1.1.tgz","fileCount":978,"unpackedSize":1577318,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apifreaks%2fsdk@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCUodm1Lq4rfR8c4r/bhP33sunb+/BJx6dMe4ftQbOHowIgLjhtanPWucp8z/Mf9/OKeM36aD+QMM8TpPZ/EOdOqkk="}]},"_npmUser":{"name":"umar-asad","email":"umar@jfreaks.com"},"directories":{},"maintainers":[{"name":"umar-asad","email":"umar@jfreaks.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_1.1.1_1789660923376_0.026591429887454332"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-12T14:21:26.912Z","modified":"2026-09-17T16:02:03.940Z","1.0.0":"2026-06-12T14:21:27.293Z","1.0.1":"2026-06-22T11:00:13.352Z","1.0.2":"2026-07-09T11:47:26.104Z","1.1.0":"2026-09-14T14:43:04.884Z","1.1.1":"2026-09-17T16:02:03.536Z"},"bugs":{"url":"https://github.com/api-freaks/af-typescript-sdk/issues"},"author":{"name":"Afraz Ahmed [afraz@jfreaks.com]","url":"mailto:afraz@jfreaks.com"},"license":"ISC","homepage":"https://github.com/api-freaks/af-typescript-sdk#readme","keywords":["apifreaks","api","sdk","typescript","javascript","geolocation","whois","dns","ssl","currency","domain","screenshot","timezone","user-agent"],"repository":{"type":"git","url":"git+https://github.com/api-freaks/af-typescript-sdk.git"},"description":"Official TypeScript SDK for APIFreaks APIs.","maintainers":[{"name":"umar-asad","email":"umar@jfreaks.com"}],"readme":"# Apifreaks TypeScript SDK\n\n[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=Apifreaks%2FTypescript)\n[![npm shield](https://img.shields.io/npm/v/@api-freaks/sdk)](https://www.npmjs.com/package/@api-freaks/sdk)\n\nThe Apifreaks TypeScript library provides convenient access to the Apifreaks APIs from JavaScript and TypeScript.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Reference](#reference)\n- [Usage](#usage)\n- [Environments](#environments)\n- [Errors](#errors)\n- [Request Types](#request-types)\n- [Advanced](#advanced)\n  - [Retries](#retries)\n  - [Timeouts](#timeouts)\n  - [Additional Headers](#additional-headers)\n  - [Additional Query String Parameters](#additional-query-string-parameters)\n  - [Raw Responses](#raw-responses)\n  - [Custom Fetch](#custom-fetch)\n- [Contributing](#contributing)\n\n## Installation\n\nInstall the package with npm:\n\n```sh\nnpm install @api-freaks/sdk\n```\n\nOr with yarn:\n\n```sh\nyarn add @api-freaks/sdk\n```\n\nOr with pnpm:\n\n```sh\npnpm add @api-freaks/sdk\n```\n\n## Reference\n\nA full reference for this library is available [here](./reference.md).\n\n## Usage\n\nInstantiate and use the client with the following:\n\n```typescript\nimport { ApifreaksApiClient } from \"@api-freaks/sdk\";\n\nconst client = new ApifreaksApiClient();\n\nasync function main() {\n    const response = await client.geolocationLookup({\n        apiKey: \"your_api_key\",\n        ip: \"8.8.8.8\",\n    });\n\n    console.log(response);\n}\n\nmain().catch(console.error);\n```\n\nCommonJS usage is also supported after publishing:\n\n```javascript\nconst { ApifreaksApiClient } = require(\"@api-freaks/sdk\");\n\nconst client = new ApifreaksApiClient();\n```\n\n## Environments\n\nThis SDK allows you to configure the base URL for API requests.\n\n```typescript\nimport { ApifreaksApiClient, ApifreaksApiEnvironment } from \"@api-freaks/sdk\";\n\nconst client = new ApifreaksApiClient({\n    environment: ApifreaksApiEnvironment.Default,\n});\n```\n\nYou can also set a custom base URL:\n\n```typescript\nconst client = new ApifreaksApiClient({\n    baseUrl: \"https://api.apifreaks.com\",\n});\n```\n\n## Errors\n\nWhen the API returns a non-success status code, the SDK throws an error. You can catch the base `ApifreaksApiError` or one of the exported status-specific errors.\n\n```typescript\nimport { ApifreaksApiClient, ApifreaksApiError } from \"@api-freaks/sdk\";\n\nconst client = new ApifreaksApiClient();\n\ntry {\n    const response = await client.geolocationLookup({\n        apiKey: \"your_api_key\",\n        ip: \"8.8.8.8\",\n    });\n\n    console.log(response);\n} catch (error) {\n    if (error instanceof ApifreaksApiError) {\n        console.log(error.statusCode);\n        console.log(error.body);\n    } else {\n        throw error;\n    }\n}\n```\n\n## Request Types\n\nThe SDK exports request and response types through the `ApifreaksApi` namespace.\n\n```typescript\nimport { ApifreaksApiClient, type ApifreaksApi } from \"@api-freaks/sdk\";\n\nconst client = new ApifreaksApiClient();\n\nconst request: ApifreaksApi.GeolocationLookupRequest = {\n    apiKey: \"your_api_key\",\n    ip: \"8.8.8.8\",\n};\n\nconst response = await client.geolocationLookup(request);\n```\n\n## Advanced\n\n### Retries\n\nThe SDK supports automatic retries. Configure the maximum retry count globally on the client or per request.\n\n```typescript\nconst client = new ApifreaksApiClient({\n    maxRetries: 3,\n});\n\nconst response = await client.geolocationLookup(\n    {\n        apiKey: \"your_api_key\",\n        ip: \"8.8.8.8\",\n    },\n    {\n        maxRetries: 3,\n    },\n);\n```\n\n### Timeouts\n\nThe SDK defaults to a 60 second timeout. Configure the timeout globally on the client or per request.\n\n```typescript\nconst client = new ApifreaksApiClient({\n    timeoutInSeconds: 30,\n});\n\nconst response = await client.geolocationLookup(\n    {\n        apiKey: \"your_api_key\",\n        ip: \"8.8.8.8\",\n    },\n    {\n        timeoutInSeconds: 30,\n    },\n);\n```\n\n### Additional Headers\n\nYou can add custom headers globally on the client or per request.\n\n```typescript\nconst client = new ApifreaksApiClient({\n    headers: {\n        \"X-Custom-Header\": \"custom-value\",\n    },\n});\n\nconst response = await client.geolocationLookup(\n    {\n        apiKey: \"your_api_key\",\n        ip: \"8.8.8.8\",\n    },\n    {\n        headers: {\n            \"X-Request-Header\": \"request-value\",\n        },\n    },\n);\n```\n\n### Additional Query String Parameters\n\nYou can add custom query parameters per request.\n\n```typescript\nconst response = await client.geolocationLookup(\n    {\n        apiKey: \"your_api_key\",\n        ip: \"8.8.8.8\",\n    },\n    {\n        queryParams: {\n            fields: \"country,city\",\n        },\n    },\n);\n```\n\n### Raw Responses\n\nEvery SDK method returns an awaitable response object. Use `.withRawResponse()` when you also need the raw HTTP response metadata.\n\n```typescript\nconst { data, rawResponse } = await client\n    .geolocationLookup({\n        apiKey: \"your_api_key\",\n        ip: \"8.8.8.8\",\n    })\n    .withRawResponse();\n\nconsole.log(data);\nconsole.log(rawResponse.statusCode);\n```\n\n### Custom Fetch\n\nYou can provide a custom `fetch` implementation for runtimes or environments that need it.\n\n```typescript\nconst client = new ApifreaksApiClient({\n    fetch: customFetch,\n});\n```\n\n## Contributing\n\nWhile we value open-source contributions to this SDK, this library is generated programmatically.\nAdditions made directly to this library would have to be moved over to our generation code,\notherwise they would be overwritten upon the next generated release. Feel free to open a PR as\na proof of concept, but know that we will not be able to merge it as-is. We suggest opening\nan issue first to discuss with us!\n\nOn the other hand, contributions to the README are always very welcome!\n","readmeFilename":"README.md"}