{"_id":"autosendjs","_rev":"8-7e133c569ff0a79e0845b795403c3b9b","name":"autosendjs","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"autosendjs","version":"1.0.0","keywords":["email","autosend","resend","transactional","sdk"],"author":"","license":"MIT","_id":"autosendjs@1.0.0","maintainers":[{"name":"yognibende","email":"yogini@peerlist.io"}],"dist":{"shasum":"0d3b2c38f1a922ac827fad9bef81281a57c9169b","tarball":"https://registry.npmjs.org/autosendjs/-/autosendjs-1.0.0.tgz","fileCount":12,"integrity":"sha512-fz7qevM5wMHiKBfOAbdCVVLf3CAVAZ/XUuUXj9mNwV9k8VnfHNUdO0vyTW+aLC9EGndDuvnsTD/eRKhL/7Uc1A==","signatures":[{"sig":"MEYCIQDBQrzhZ3ezFgTppB0+WlKojMJkRPi7CeHHO+YuTx0LhAIhAO4/PEaKTVPKlX5y+sqID7VIBlQwaEDT8phShVNVURtb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59316},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/esm/index.d.mts","default":"./dist/esm/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./resend":{"import":{"types":"./dist/esm/adapters/resend/index.d.mts","default":"./dist/esm/adapters/resend/index.mjs"},"require":{"types":"./dist/cjs/adapters/resend/index.d.ts","default":"./dist/cjs/adapters/resend/index.js"}}},"gitHead":"056e5e875b88d4ec03f37ba8fe7b0478d32ccdc1","scripts":{"test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"yognibende","email":"yogini@peerlist.io"},"_npmVersion":"10.8.2","description":"Node.js SDK for Autosend with Resend-compatible adapter","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","typesVersions":{"*":{"resend":["./dist/cjs/adapters/resend/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.17","typescript":"^5.6.0","@types/node":"^25.0.8","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/autosendjs_1.0.0_1768905066577_0.17843992740848158","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"autosendjs","version":"1.0.1","keywords":["email","autosend","resend","transactional","sdk"],"author":"","license":"MIT","_id":"autosendjs@1.0.1","maintainers":[{"name":"yognibende","email":"yogini@peerlist.io"}],"dist":{"shasum":"67afe9604f94e38ac1a33e81273593be90786b71","tarball":"https://registry.npmjs.org/autosendjs/-/autosendjs-1.0.1.tgz","fileCount":12,"integrity":"sha512-Aah7pOw/G9/5ejbXzlSKzcqi8sN8TcmllEHeEPWst1G7T5q7Y/fLfqF1am4kKg54L/GstBo4hdNBQo7RugSS6w==","signatures":[{"sig":"MEUCIQDN6LxUNBUljiHA2EgJYeC5M06vuzVd9RF9vOKksJf/eAIgQVBLaxCNJ8MfWV2Zfo0nWKF4mBfBtn1CIGPF57bnRrI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59866},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/esm/index.d.mts","default":"./dist/esm/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./resend":{"import":{"types":"./dist/esm/adapters/resend/index.d.mts","default":"./dist/esm/adapters/resend/index.mjs"},"require":{"types":"./dist/cjs/adapters/resend/index.d.ts","default":"./dist/cjs/adapters/resend/index.js"}}},"gitHead":"a294b75e44f918910b22ae306bc6f7054dfcfdb5","scripts":{"test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"yognibende","email":"yogini@peerlist.io"},"_npmVersion":"10.8.2","description":"Node.js SDK for Autosend with Resend-compatible adapter","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","typesVersions":{"*":{"resend":["./dist/cjs/adapters/resend/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.17","typescript":"^5.6.0","@types/node":"^25.0.8","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/autosendjs_1.0.1_1768912384240_0.5201723916857084","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"autosendjs","version":"1.0.3","keywords":["email","autosend","resend","transactional","sdk"],"author":"","license":"MIT","_id":"autosendjs@1.0.3","maintainers":[{"name":"yognibende","email":"yogini@peerlist.io"}],"dist":{"shasum":"47072a278a5a7dc4a7a492e8c6c232aa5531f85b","tarball":"https://registry.npmjs.org/autosendjs/-/autosendjs-1.0.3.tgz","fileCount":12,"integrity":"sha512-UFbM6YZqhvG1IN9gGta6QatpAJ6gsVWdpwkIK8s/9NvBq3o/XaRPJdcAavhpatrn2XAopVMoVx8i8jUnfjmdYg==","signatures":[{"sig":"MEUCIQCbkW++Va52YIMeI7qANOjYR7j/p+CEQPKkPYW9YFs7BgIgKrp3DmbDhCesV0wdO3h0DNXkP4pezusKARs8dUq4/y0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62846},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/esm/index.d.mts","default":"./dist/esm/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./resend":{"import":{"types":"./dist/esm/adapters/resend/index.d.mts","default":"./dist/esm/adapters/resend/index.mjs"},"require":{"types":"./dist/cjs/adapters/resend/index.d.ts","default":"./dist/cjs/adapters/resend/index.js"}}},"gitHead":"121cd71a735c461aa32539738d4c857cd8044c4f","scripts":{"test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"yognibende","email":"yogini@peerlist.io"},"_npmVersion":"10.8.2","description":"Node.js SDK for Autosend with Resend-compatible adapter","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","typesVersions":{"*":{"resend":["./dist/cjs/adapters/resend/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.17","typescript":"^5.6.0","@types/node":"^25.0.8","@vitest/coverage-v8":"^4.0.17"},"_npmOperationalInternal":{"tmp":"tmp/autosendjs_1.0.3_1770725387424_0.9284881961970091","host":"s3://npm-registry-packages-npm-production"}},"1.0.4-beta.0":{"name":"autosendjs","version":"1.0.4-beta.0","keywords":["email","autosend","resend","transactional","sdk"],"author":"","license":"MIT","_id":"autosendjs@1.0.4-beta.0","maintainers":[{"name":"yognibende","email":"yogini@peerlist.io"}],"dist":{"shasum":"d125d097edf0f975ffcce401f3447ad75b03dd62","tarball":"https://registry.npmjs.org/autosendjs/-/autosendjs-1.0.4-beta.0.tgz","fileCount":12,"integrity":"sha512-tqu1lxTzj2g5uY5gD5XHajLDmSXbxwA3giccNzbXkwubZpO4Aa8rrLzUcWHOkwGqOHO32itoEoTAj5XZBk0EaQ==","signatures":[{"sig":"MEUCIQCFdyocozELtsZYJc7qhQ0iRGS/cumqLf/CwmTUpURiYQIgLZQn2oqI6cmcRDBKrkBi9KWX/TDHCYxHT4lLN7VCiPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74588},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/esm/index.d.mts","default":"./dist/esm/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./resend":{"import":{"types":"./dist/esm/adapters/resend/index.d.mts","default":"./dist/esm/adapters/resend/index.mjs"},"require":{"types":"./dist/cjs/adapters/resend/index.d.ts","default":"./dist/cjs/adapters/resend/index.js"}}},"gitHead":"30f2779fc3d4bdd511de1269aee5b10fd093d5f9","scripts":{"test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"yognibende","email":"yogini@peerlist.io"},"_npmVersion":"10.8.2","description":"Node.js SDK for Autosend with Resend-compatible adapter","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","typesVersions":{"*":{"resend":["./dist/cjs/adapters/resend/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.17","typescript":"^5.6.0","@types/node":"^25.0.8","@vitest/coverage-v8":"^4.0.17"},"peerDependencies":{"@react-email/render":"*"},"peerDependenciesMeta":{"@react-email/render":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/autosendjs_1.0.4-beta.0_1782817968040_0.8132794107494541","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"autosendjs","version":"1.0.4","keywords":["email","autosend","resend","transactional","sdk"],"author":"","license":"MIT","_id":"autosendjs@1.0.4","maintainers":[{"name":"yognibende","email":"yogini@peerlist.io"}],"dist":{"shasum":"40f20decf8a23528b25dea296c0698619f2b6a30","tarball":"https://registry.npmjs.org/autosendjs/-/autosendjs-1.0.4.tgz","fileCount":12,"integrity":"sha512-92cx0dPUvN6162NhtMi1vXyLlo94uxbyuAsidzQzLQdDkrLE4xBHbCSjJ+ytUkYoELUWLANjIOhsaVizt1hjHQ==","signatures":[{"sig":"MEUCIAG5HNmu2KG8LdYbGalz5GVYhr9wItiabfsPAFctTLnRAiEAs45+4JEKFLZ6qmODDAyIRjENx8YM5yuiCsRhzJF5qgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74581},"main":"./dist/cjs/index.js","type":"commonjs","types":"./dist/cjs/index.d.ts","module":"./dist/esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/esm/index.d.mts","default":"./dist/esm/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./resend":{"import":{"types":"./dist/esm/adapters/resend/index.d.mts","default":"./dist/esm/adapters/resend/index.mjs"},"require":{"types":"./dist/cjs/adapters/resend/index.d.ts","default":"./dist/cjs/adapters/resend/index.js"}}},"gitHead":"c1c14c6d6198a2193168e55e645ad6bd8b257ba9","scripts":{"test":"vitest run --coverage","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"yognibende","email":"yogini@peerlist.io"},"_npmVersion":"10.8.2","description":"Node.js SDK for Autosend with Resend-compatible adapter","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","typesVersions":{"*":{"resend":["./dist/cjs/adapters/resend/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.17","typescript":"^5.6.0","@types/node":"^25.0.8","@vitest/coverage-v8":"^4.0.17"},"peerDependencies":{"@react-email/render":"*"},"peerDependenciesMeta":{"@react-email/render":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/autosendjs_1.0.4_1782819909864_0.1415327489810494","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"autosendjs","version":"1.0.5","description":"Node.js SDK for Autosend with Resend-compatible adapter","type":"commonjs","main":"./dist/cjs/index.js","module":"./dist/esm/index.mjs","types":"./dist/cjs/index.d.ts","typesVersions":{"*":{"resend":["./dist/cjs/adapters/resend/index.d.ts"]}},"exports":{".":{"import":{"types":"./dist/esm/index.d.mts","default":"./dist/esm/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./resend":{"import":{"types":"./dist/esm/adapters/resend/index.d.mts","default":"./dist/esm/adapters/resend/index.mjs"},"require":{"types":"./dist/cjs/adapters/resend/index.d.ts","default":"./dist/cjs/adapters/resend/index.js"}}},"scripts":{"build":"tsup","test":"vitest run --coverage","test:watch":"vitest","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build && npm test"},"keywords":["email","autosend","resend","transactional","sdk"],"author":"","license":"MIT","devDependencies":{"@types/node":"^25.0.8","@vitest/coverage-v8":"^4.0.17","tsup":"^8.5.1","typescript":"^5.6.0","vitest":"^4.0.17"},"peerDependencies":{"@react-email/render":"*"},"peerDependenciesMeta":{"@react-email/render":{"optional":true}},"engines":{"node":">=18"},"sideEffects":false,"_id":"autosendjs@1.0.5","gitHead":"cffefd4740920100dbefede76273d4924295c7a5","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-LXrFw1PDIh+Qc4gh/tEnnhGggDt76WqgoFbW3LBTHOmTNhUyTnd7x4jwMQThY8FmF53qVuNPiAHXkdNe05dWdg==","shasum":"429890fc64d38b26e65132c8cbe1f6a818899ed2","tarball":"https://registry.npmjs.org/autosendjs/-/autosendjs-1.0.5.tgz","fileCount":12,"unpackedSize":91688,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBZSOaznK2dWpaFlITPlXnP/457p8/eCyKQOFdEyCKo4AiB8s/2BW80V9XqHYQ/F0tsWnd4PjXiaX09j+d0nRmsulg=="}]},"_npmUser":{"name":"shindebhau","email":"codeajinkya@gmail.com"},"directories":{},"maintainers":[{"name":"yognibende","email":"yogini@peerlist.io"},{"name":"shindebhau","email":"codeajinkya@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/autosendjs_1.0.5_1784027660286_0.004197542396765064"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-20T10:31:06.576Z","modified":"2026-07-14T11:14:20.502Z","1.0.0":"2026-01-20T10:31:06.704Z","1.0.1":"2026-01-20T12:33:04.390Z","1.0.3":"2026-02-10T12:09:47.572Z","1.0.4-beta.0":"2026-06-30T11:12:48.192Z","1.0.4":"2026-06-30T11:45:10.047Z","1.0.5":"2026-07-14T11:14:20.409Z"},"license":"MIT","keywords":["email","autosend","resend","transactional","sdk"],"description":"Node.js SDK for Autosend with Resend-compatible adapter","maintainers":[{"name":"yognibende","email":"yogini@peerlist.io"},{"name":"shindebhau","email":"codeajinkya@gmail.com"}],"readme":"# AutoSend Node.js SDK\n\n![nodejs-og](https://github.com/user-attachments/assets/1b66c98a-e5ce-48b8-9a05-0ed701f7e7e4)\n\n[![npm version](https://img.shields.io/npm/v/autosendjs.svg)](https://www.npmjs.com/package/autosendjs)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\nThe official Node.js SDK for the [AutoSend](https://autosend.com) API.\n\n## Installation\n\n```bash\nnpm install autosendjs\n```\n\nor\n\n```bash\nyarn add autosendjs\n```\n\n## Setup\n\nFirst, get your API key from the [AutoSend Dashboard](https://autosend.com/dashboard).\n\n```typescript\nimport { Autosend } from \"autosendjs\";\n\nconst autosend = new Autosend(\"as_xxxxxxxxxxxx\");\n```\n\n## Usage\n\n### Send an email with plain text\n\n```typescript\nimport { Autosend } from \"autosendjs\";\n\nconst autosend = new Autosend(\"as_xxxxxxxxxxxx\");\n\nawait autosend.emails.send({\n  from: { email: \"you@example.com\" },\n  to: { email: \"user@gmail.com\" },\n  subject: \"Hello World\",\n  text: \"Welcome to Autosend!\",\n});\n```\n\n### Send an email with HTML\n\n```typescript\nimport { Autosend } from \"autosendjs\";\n\nconst autosend = new Autosend(\"as_xxxxxxxxxxxx\");\n\nawait autosend.emails.send({\n  from: { email: \"you@example.com\" },\n  to: { email: \"user@gmail.com\" },\n  subject: \"Hello World\",\n  html: \"<strong>Welcome to Autosend!</strong>\",\n});\n```\n\n### Send bulk emails\n\n```typescript\nimport { Autosend } from \"autosendjs\";\n\nconst autosend = new Autosend(\"as_xxxxxxxxxxxx\");\n\nawait autosend.emails.bulk({\n  from: { email: \"you@example.com\" },\n  subject: \"Hello\",\n  html: \"<p>Welcome!</p>\",\n  recipients: [\n    { email: \"user1@gmail.com\" },\n    { email: \"user2@gmail.com\" },\n  ],\n});\n```\n\n### Personalize with dynamic data\n\nUse `{{variable}}` placeholders in your email body and provide a `dynamicData`\nobject to fill them in. Placeholders work in a raw `html` body, in `templateId`\ntemplates, and inside HTML attributes such as `href=\"{{unsubscribeURL}}\"`. They\nare supported by both `emails.send` and `emails.bulk`.\n\nWith `emails.bulk`, pass a `dynamicData` object per recipient to personalize a\nsingle body for each one:\n\n```typescript\nawait autosend.emails.bulk({\n  from: { email: \"you@example.com\" },\n  subject: \"Your weekly report\",\n  html: '<p>Hi {{name}}!</p><a href=\"{{unsubscribeURL}}\">Unsubscribe</a>',\n  recipients: [\n    {\n      email: \"user1@gmail.com\",\n      dynamicData: { name: \"Ada\", unsubscribeURL: \"https://app.example.com/u/abc\" },\n    },\n    {\n      email: \"user2@gmail.com\",\n      dynamicData: { name: \"Linus\", unsubscribeURL: \"https://app.example.com/u/def\" },\n    },\n  ],\n});\n```\n\n### Send a React email\n\nPass a [React Email](https://react.email) element as `react` and the SDK renders\nit to HTML for you. This requires the optional `@react-email/render` dependency:\n\n```bash\nnpm install @react-email/render\n```\n\n```tsx\nimport { Autosend } from \"autosendjs\";\nimport { WelcomeEmail } from \"./emails/welcome\";\n\nconst autosend = new Autosend(\"as_xxxxxxxxxxxx\");\n\nawait autosend.emails.send({\n  from: { email: \"you@example.com\" },\n  to: { email: \"user@gmail.com\" },\n  subject: \"Welcome\",\n  react: <WelcomeEmail name=\"Ada\" />,\n});\n```\n\nThe `react` field is also supported on `emails.bulk`. The element is rendered\nonce, while per-recipient values are still applied from each recipient's\n`dynamicData` — keep `{{...}}` placeholders in your component for those. If both\n`html` and `react` are set, `html` takes precedence.\n\n### Manage contacts\n\n```typescript\nimport { Autosend } from \"autosendjs\";\n\nconst autosend = new Autosend(\"as_xxxxxxxxxxxx\");\n\n// Create a contact\nawait autosend.contacts.create({\n  email: \"user@gmail.com\",\n  firstName: \"John\",\n  lastName: \"Doe\",\n  listIds: [\"list_abc123\"],\n  customFields: { company: \"Acme\", plan: \"pro\" },\n});\n\n// Get a contact\nawait autosend.contacts.get(\"contact_id\");\n\n// Update or create a contact\nawait autosend.contacts.upsert({\n  email: \"user@gmail.com\",\n  firstName: \"Jane\",\n});\n\n// Delete a contact\nawait autosend.contacts.delete(\"contact_id\");\n```\n\n## Configuration Options\n\n```typescript\nconst autosend = new Autosend(\"as_xxxxxxxxxxxx\", {\n  baseUrl: \"https://api.autosend.com/v1\", // Custom API endpoint\n  timeout: 30000, // Request timeout in ms\n  maxRetries: 3, // Number of retry attempts\n  debug: false, // Enable debug logging\n});\n```\n\nRetryable errors (HTTP `429` and `5xx`) are retried up to `maxRetries` times with\nexponential backoff. Set `maxRetries: 1` to disable retries — for example, a cron\njob that should halt on throttling rather than wait it out. When a request fails,\nthe `emails.send` and `emails.bulk` responses include the HTTP `statusCode` (such\nas `429`) so you can handle it accordingly.\n\n## Resend Adapter\n\nAutoSend provides a drop-in replacement adapter for the Resend API:\n\n```typescript\nimport { Resend } from \"autosendjs/resend\";\n\nconst resend = new Resend(\"as_xxxxxxxxxxxx\");\n\nawait resend.emails.send({\n  from: \"you@example.com\",\n  to: \"user@gmail.com\",\n  subject: \"Hello World\",\n  html: \"<strong>It works!</strong>\",\n});\n\n// Render a React Email element (requires @react-email/render):\nawait resend.emails.send({\n  from: \"you@example.com\",\n  to: \"user@gmail.com\",\n  subject: \"Welcome\",\n  react: <WelcomeEmail name=\"Ada\" />,\n});\n\n// Rate-limited responses surface as error.name === \"rate_limit_exceeded\":\nconst { data, error } = await resend.emails.send({ /* ... */ });\nif (error?.name === \"rate_limit_exceeded\") {\n  // back off and retry later\n}\n\n// Create a contact\nawait resend.contacts.create({\n  email: \"user@gmail.com\",\n  firstName: \"John\",\n  properties: { company: \"Acme\" },\n});\n\n// Get a contact\nawait resend.contacts.get(\"contact_id\");\n\n// Update a contact (by email)\nawait resend.contacts.update({\n  email: \"user@gmail.com\",\n  firstName: \"Jane\",\n});\n\n// Remove a contact\nawait resend.contacts.remove(\"contact_id\");\n```\n\nYou can also use the `RESEND_API_KEY` environment variable:\n\n```typescript\nimport { Resend } from \"autosendjs/resend\";\n\nconst resend = new Resend(); // Uses RESEND_API_KEY env var\n```\n\n## License\n\nMIT License\n","readmeFilename":"README.md"}