{"id":"pg_tszkzi61dese","property_id":"prp_pfcr5h8cztsp","domain_id":"dom_gkgeprhezjg4wq","root_domain":"smashsend.com","locale":"en","url":"https://smashsend.com/docs/api/api-keys","url_hash":"2556f6377a75782c9d6b6c7f6e93684a7efea4c8adfc7557e28b4a28ee2b55a4","path":"/docs/api/api-keys","depth":1,"canonical_url":"https://smashsend.com/docs/api/api-keys","canonical_page_id":null,"page_type":"docs","page_type_guess":"docs","state":"indexed","skip_reason":null,"priority":"1.4","discovered_via":"sitemap","first_seen_at":"2026-08-28T03:07:01.092Z","last_seen_at":"2026-09-27T04:10:47.779Z","http_status":200,"content_hash":"9f6ee7c69f4860e69d74abcd583221c4e7082b4bd0ab29640c7c2459dc2270a5","title":"SMASHSEND API Keys Reference","description":"Reference documentation for managing SMASHSEND API keys - create, validate, update, and delete API keys for secure authentication.","author":null,"published_at":null,"modified_at":null,"word_count":725,"reading_time_sec":198,"lang_detected":"en","images":[],"links_out":null,"markdown_source":"readability","refresh_interval":"monthly","last_fetched_at":"2026-09-27T04:09:20.008Z","next_refresh_at":"2026-10-27T04:09:20.008Z","runs_count":2,"changes_count":0,"last_changed_at":null,"fail_count":0,"last_error":null,"created_at":"2026-08-28T03:07:01.092Z","updated_at":"2026-08-28T03:07:01.092Z","inlinks":14,"inlinks_body":0,"outlinks":40,"outlinks_external":3,"anchor_terms":[],"template_score":"0.09859154929577464789","cash":"0.297521935690536121","cash_total":"0.6840363331400929262","pagerank":"0.0174076836404105","is_orphan":false,"link_confirmed":true,"discovered_wave":0,"embedded_hash":null,"embedded_at":null,"domain_name":null,"brand_color":null,"domain_rank":null,"spam_score":null,"markdown":"1.  [\n    \n    Home\n    \n    ](https://smashsend.com/)\n\n/\n\n3.  [\n    \n    Docs\n    \n    ](https://smashsend.com/docs)\n\n/\n\n5.  [\n    \n    API Reference\n    \n    ](https://smashsend.com/docs/api)\n\n/\n\n7.  [\n    \n    API Keys\n    \n    ](https://smashsend.com/docs/api/api-keys)\n\nAPI Keys provide secure authentication for accessing the SMASHSEND API. This endpoint is commonly used by Zapier and other integration platforms to validate connections, manage authentication, and perform automated operations securely.\n\n## Overview\n\nAPI keys are workspace-specific tokens that allow programmatic access to your SMASHSEND account. Each API key has a specific role and can be managed through these endpoints.\n\n**API Key Roles:** API\\_USER (standard access for most operations)\n\n**Base URL:** `https://api.smashsend.com`\n\n## API Key Endpoints\n\n### GET/v1/api-keys/check\n\nValidates an API key and returns key information. This endpoint is used by Zapier and other platforms to test connections and verify that API keys are working correctly.\n\nAuthentication\n\nRequires the API key to be validated in the Authorization header.\n\nRequest\n\n```\ncurl \"https://api.smashsend.com/v1/api-keys/check\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\"\n```\n\nResponse\n\n```\n{\n  \"status\": \"SUCCEED\",\n  \"displayName\": \"sdfasdf\",\n  \"role\": \"EDITOR\"\n}\n```\n\nError Responses\n\n**401 Unauthorized:** Invalid API key\n\n**403 Forbidden:** API key lacks required permissions\n\n**429 Too Many Requests:** Rate limit exceeded\n\n### GET/v1/workspaces/{workspaceId}/api-keys\n\nLists all API keys for a workspace. Useful for managing multiple API keys and their permissions.\n\nRequest\n\n```\ncurl \"https://api.smashsend.com/v1/workspaces/wrk_ENGTK86JEXXckyDVJthKkPer/api-keys\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\"\n```\n\nResponse\n\n```\n{\n  \"apiKeys\": {\n    \"items\": [\n      {\n        \"id\": \"aki_abc123def456\",\n        \"displayName\": \"Zapier Integration\",\n        \"role\": \"API_USER\",\n        \"status\": \"ACTIVE\",\n        \"secretKey\": \"sk_live_abc123...\",\n        \"createdAt\": \"2024-03-15T10:00:00Z\",\n        \"updatedAt\": \"2024-03-15T10:00:00Z\"\n      },\n      {\n        \"id\": \"aki_xyz789ghi012\",\n        \"displayName\": \"CRM Sync\",\n        \"role\": \"API_USER\",\n        \"status\": \"ACTIVE\",\n        \"secretKey\": \"sk_live_xyz789...\",\n        \"createdAt\": \"2024-03-10T14:30:00Z\",\n        \"updatedAt\": \"2024-03-10T14:30:00Z\"\n      }\n    ],\n    \"hasMore\": false,\n    \"startAt\": null\n  }\n}\n```\n\n### POST/v1/workspaces/{workspaceId}/api-keys\n\nCreates a new API key for the workspace. Essential for setting up new integrations and automations.\n\nRequest\n\n```\ncurl -X POST \"https://api.smashsend.com/v1/workspaces/wrk_ENGTK86JEXXckyDVJthKkPer/api-keys\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"displayName\": \"New Integration API Key\",\n    \"role\": \"API_USER\"\n  }'\n```\n\nResponse\n\n```\n{\n  \"apiKey\": {\n    \"id\": \"aki_new123def456\",\n    \"displayName\": \"New Integration API Key\",\n    \"role\": \"API_USER\",\n    \"status\": \"ACTIVE\",\n    \"secretKey\": \"sk_live_new123abc456def...\",\n    \"createdAt\": \"2024-03-21T15:30:00Z\",\n    \"updatedAt\": \"2024-03-21T15:30:00Z\"\n  }\n}\n```\n\nImportant Security Note\n\nThe `secretKey` is only returned once when the API key is created. Store it securely as it cannot be retrieved again. If lost, you will need to create a new API key.\n\n### POST/v1/workspaces/{workspaceId}/api-keys/{apiKeyId}\n\nUpdates an existing API key. You can modify the display name and role, but not the secret key itself.\n\nRequest\n\n```\ncurl -X POST \"https://api.smashsend.com/v1/workspaces/wrk_ENGTK86JEXXckyDVJthKkPer/api-keys/aki_abc123def456\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"displayName\": \"Updated Zapier Integration Key\"\n  }'\n```\n\nResponse\n\n```\n{\n  \"apiKey\": {\n    \"id\": \"aki_abc123def456\",\n    \"displayName\": \"Updated Zapier Integration Key\",\n    \"role\": \"API_USER\",\n    \"status\": \"ACTIVE\",\n    \"secretKey\": \"sk_live_abc123...\",\n    \"createdAt\": \"2024-03-15T10:00:00Z\",\n    \"updatedAt\": \"2024-03-21T16:45:00Z\"\n  }\n}\n```\n\n### DELETE/v1/workspaces/{workspaceId}/api-keys/{apiKeyId}\n\nPermanently deletes an API key. This action cannot be undone and will immediately invalidate the API key for all integrations using it.\n\nRequest\n\n```\ncurl -X DELETE \"https://api.smashsend.com/v1/workspaces/wrk_ENGTK86JEXXckyDVJthKkPer/api-keys/aki_abc123def456\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\"\n```\n\nResponse\n\n```\n{\n  \"apiKey\": {\n    \"id\": \"aki_abc123def456\",\n    \"displayName\": \"Deleted API Key\",\n    \"role\": \"API_USER\",\n    \"status\": \"ACTIVE\",\n    \"secretKey\": \"sk_live_abc123...\",\n    \"createdAt\": \"2024-03-15T10:00:00Z\",\n    \"updatedAt\": \"2024-03-15T10:00:00Z\"\n  },\n  \"isDeleted\": true\n}\n```\n\n## Integration Best Practices\n\n1\\. Test Connection First\n\nAlways use the `/v1/api-keys/check` endpoint to validate API keys before performing other operations. This is exactly what Zapier does during connection setup.\n\n2\\. Use Descriptive Names\n\nGive your API keys clear, descriptive names like “Zapier CRM Integration” or “E-commerce Sync” to easily identify their purpose.\n\n3\\. Secure Storage\n\nStore API keys securely and never expose them in client-side code or public repositories. The secret key is only shown once during creation.\n\n4\\. Regular Rotation\n\nFor security best practices, consider rotating API keys periodically by creating new ones and deleting old ones.\n\n5\\. Monitor Usage\n\nKeep track of which integrations are using which API keys, so you can safely delete unused keys and troubleshoot connection issues.\n\n## Zapier Integration Example\n\nHere’s how Zapier uses the API key validation endpoint to test connections:\n\n```\n// Zapier authentication test\nconst testAuth = async (z, bundle) => {\n  const response = await z.request({\n    url: 'https://api.smashsend.com/v1/api-keys/check',\n    method: 'GET',\n    headers: {\n      'Authorization': `Bearer ${bundle.authData.api_key}`\n    }\n  });\n\n  if (response.status !== 200) {\n    throw new Error('Invalid API key');\n  }\n\n  const data = response.json;\n  return {\n    displayName: `🔐 API Key: ${data.displayName}`\n  };\n};\n```\n\nThis pattern ensures that API keys are validated before any integration workflows begin, providing immediate feedback to users about authentication issues.\n\n## Error Handling\n\n401 - Unauthorized\n\n```\n{\n  \"statusCode\": 401,\n  \"error\": \"Unauthorized\",\n  \"message\": \"Invalid API key. Please double-check and try again.\"\n}\n```\n\n403 - Forbidden\n\n```\n{\n  \"statusCode\": 403,\n  \"error\": \"Forbidden\",\n  \"message\": \"API key does not have sufficient permissions.\"\n}\n```\n\n429 - Rate Limited\n\n```\n{\n  \"statusCode\": 429,\n  \"error\": \"Too Many Requests\", \n  \"message\": \"Rate limit exceeded. Please wait a moment and try again.\"\n}\n```","storage":{"htmlKey":"stealpage/html/smashsend.com/pg_tszkzi61dese/run_vftwmnyqnfw5.html.gz","markdownKey":"stealpage/md/smashsend.com/pg_tszkzi61dese/run_vftwmnyqnfw5.md.gz"},"facets":null,"assets":[{"kind":"image","src_url":"https://smashsend.com/ogs/api-docs.jpg","r2_key":null,"alt":null,"caption":null,"width":null,"height":null,"is_hero":true,"zone":"main"},{"kind":"image","src_url":"https://smashsend.com/_next/static/media/smashsend_dark.da05b6ec.svg","r2_key":null,"alt":"SMASHSEND email marketing - The #1 Email Marketing Tool that turns emails into revenue","caption":null,"width":135,"height":30,"is_hero":false,"zone":"unknown"},{"kind":"image","src_url":"https://smashsend.com/dashboard/integrations/zapier_icon_filled.png","r2_key":null,"alt":"Zapier","caption":null,"width":20,"height":20,"is_hero":false,"zone":"nav"},{"kind":"image","src_url":"https://smashsend.com/dashboard/integrations/mailchimp_icon.png","r2_key":null,"alt":"Mailchimp","caption":null,"width":20,"height":20,"is_hero":false,"zone":"nav"},{"kind":"image","src_url":"https://smashsend.com/dashboard/integrations/webhooks_icon_gradient.png","r2_key":null,"alt":"Webhooks","caption":null,"width":20,"height":20,"is_hero":false,"zone":"nav"},{"kind":"image","src_url":"https://smashsend.com/dashboard/integrations/events.png","r2_key":null,"alt":"Events API","caption":null,"width":20,"height":20,"is_hero":false,"zone":"nav"},{"kind":"image","src_url":"https://smashsend.com/_next/image?q=75&url=%2Favatar-profile.png&w=3840","r2_key":null,"alt":"Jorge Ferreiro","caption":null,"width":null,"height":null,"is_hero":false,"zone":"nav"},{"kind":"image","src_url":"https://smashsend.com/_next/image?url=%2Favatar-profile.png&w=3840&q=75","r2_key":null,"alt":"Jorge Ferreiro","caption":null,"width":null,"height":null,"is_hero":false,"zone":"nav"},{"kind":"image","src_url":"https://smashsend.com/_next/static/media/smashsend_light.be8a3849.svg","r2_key":null,"alt":"SMASHSEND email marketing - The #1 Email Marketing Tool that turns emails into revenue","caption":null,"width":171,"height":38,"is_hero":false,"zone":"footer"},{"kind":"image","src_url":"https://smashsend.com/marketing/legal/gdpr_compliance.png","r2_key":null,"alt":"SOC2","caption":null,"width":null,"height":50,"is_hero":false,"zone":"footer"}],"shots":[{"viewport":"mobile","width":390,"height":844,"r2_key":"stealpage/shots/smashsend.com/pg_tszkzi61dese/run_vftwmnyqnfw5-mobile.png","phash":"26e0a8c088c0a086","visual_delta":0,"captured_at":"2026-09-27T04:09:24.228Z"},{"viewport":"desktop","width":1440,"height":900,"r2_key":"stealpage/shots/smashsend.com/pg_tszkzi61dese/run_vftwmnyqnfw5-desktop.png","phash":"8642684040604061","visual_delta":0,"captured_at":"2026-09-27T04:09:24.009Z"},{"viewport":"mobile","width":390,"height":844,"r2_key":"stealpage/shots/smashsend.com/pg_tszkzi61dese/run_ep7zo9cctv2q-mobile.png","phash":"26e0a8c088c0a086","visual_delta":null,"captured_at":"2026-08-28T03:12:59.876Z"},{"viewport":"desktop","width":1440,"height":900,"r2_key":"stealpage/shots/smashsend.com/pg_tszkzi61dese/run_ep7zo9cctv2q-desktop.png","phash":"8642684040604061","visual_delta":null,"captured_at":"2026-08-28T03:12:59.184Z"}],"history":[{"id":"run_vftwmnyqnfw5","started_at":"2026-09-27T04:09:20.003Z","http_status":200,"fetcher":"direct","changed":false,"diff":{"added":0,"removed":52,"similarity":null},"word_count":725},{"id":"run_ep7zo9cctv2q","started_at":"2026-08-28T03:12:52.349Z","http_status":200,"fetcher":"direct","changed":false,"diff":null,"word_count":777}],"citedBy":[]}