{
  "markdown": "# Social Media API Best Practices\n\n[![skills.sh](https://img.shields.io/badge/skills.sh-social--media--api-blue)](https://skills.sh)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nBattle-tested patterns for integrating social media APIs, from scheduling 1M+ posts across **13 platforms**.\n\n## Installation\n\n```bash\nnpx skills add mikipalet/skills/social-media-api-best-practices\n```\n\n## All 13 Platforms Covered\n\n| Platform | Auth | Unique Feature |\n|----------|------|----------------|\n| Instagram | OAuth 2-step | Error 2207051 edge case |\n| TikTok | OAuth + UX compliance | Privacy/duet/stitch toggles |\n| Twitter/X | PKCE required | 3-tier rate limits |\n| LinkedIn | OAuth + API version | Text escaping rules |\n| YouTube | Google OAuth | Resumable uploads |\n| Facebook | Page tokens | Multi-image posts |\n| Threads | OAuth 2-step | Aggressive rate limiting |\n| Pinterest | Basic auth | Presigned S3 uploads |\n| **Bluesky** | **AT Protocol** | DIDs, PDS, rich text facets |\n| **Snapchat** | Basic (allowlist) | **AES-256-CBC encryption** |\n| **Google Business** | Google OAuth | Location hierarchy, reviews |\n| **Reddit** | OAuth | Strict user-agent, flair system |\n| **Telegram** | Bot token only | HTML subset, no OAuth |\n\n## What's Included\n\n- **OAuth & Authentication** - All flows including AT Protocol for Bluesky\n- **Rate Limiting** - Multi-tier handling, exponential backoff\n- **Media Uploads** - Streaming, chunked uploads, format requirements\n- **Error Handling** - Complete error code mappings for all platforms\n- **Platform Quirks** - Large integer IDs, character counting, encryption\n- **Code Snippets** - Copy-paste ready TypeScript examples\n\n## Usage\n\nOnce installed, Claude Code will automatically apply these best practices when working on social media integrations:\n\n```\n/social-media-api-best-practices\n```\n\n## Example Prompts\n\n- \"Help me implement Twitter OAuth with PKCE\"\n- \"Why is my Instagram post returning error 2207052?\"\n- \"How do I post to Bluesky using AT Protocol?\"\n- \"What's the rate limit for TikTok uploads?\"\n- \"How do I encrypt media for Snapchat?\"\n\n## Key Insights\n\n### Instagram 2207051 Edge Case\nInstagram's anti-spam sometimes returns \"blocked\" but actually publishes the post. Always verify by checking recent media before treating as failure.\n\n### Twitter's Three-Tier Rate Limits\nTwitter has app-level, user-level, AND endpoint-specific limits. Check all three headers to avoid unexpected blocks.\n\n### Bluesky AT Protocol\nBluesky doesn't use OAuth. It uses DIDs (Decentralized Identifiers) and PDS (Personal Data Servers). Rich text requires byte-offset facets.\n\n### Snapchat Encryption\nSnapchat requires AES-256-CBC encryption of media before upload. You must generate random key/IV and include them in the upload request.\n\n### Reddit User-Agent\nReddit strictly enforces descriptive user agents. Generic agents like \"axios/1.0\" will be blocked.\n\n## Contributing\n\nFound a new platform quirk? PRs welcome!\n\n## License\n\nMIT\n\n---\n\nMaintained by [Zernio](https://zernio.com) - Social Media Scheduling API for Developers\n",
  "bytes": 3121,
  "sha": "c34256e7d3eb8d827be632644595f8e8d12d62657352db9a28e4b1d9f00bd3f9",
  "repo_slug": "zernio-dev/social-media-api-best-practices",
  "fonte": "repo",
  "truncated": false,
  "api": "https://api.agentalog.com/api/listings/skl_zernio_dev_social_media_api_best_practic_c4c4c9af/readme"
}