RedPlanetHQ / RedPlanetHQ/core
New Integration: Semrush
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2k
- Forks
- 194
- Avg merge
- 12m
- Merged PRs (30d)
- 2
Description
Description
Add Semrush integration to sync SEO analytics, keyword research, domain data, and traffic insights into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/github/- API-based data integrationintegrations/linear/- Project management integrationintegrations/slack/- For reference
Required Files Structure
integrations/semrush/
├── src/
│ ├── index.ts # Main entry, API key spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # Semrush API utilities
│ ├── account-create.ts # API key setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
Semrush API Integration
Authentication Setup
- Use API Key authentication
- API key generated from Account tab > Subscription info > API Units
- Requires Semrush Business subscription for Standard API access
- Base URL:
https://api.semrush.com
Key Endpoints
GET /analytics/v1/?type=domain_ranks- Domain overview and rankingsGET /analytics/v1/?type=domain_organic- Organic search positionsGET /analytics/v1/?type=domain_adwords- Paid search dataGET /analytics/v1/?type=phrase_all- Keyword overviewGET /analytics/v1/?type=phrase_organic- Organic results for a keywordGET /analytics/ta/api/v3/- Traffic Analytics endpointsGET /analytics/v1/?type=backlinks_overview- Backlink dataGET /analytics/v1/?type=domain_rank_history- Historical ranking data
Events to Track
- Domain Analytics - Domain ranking changes, organic/paid position shifts
- Keyword Research - Keyword performance, search volume changes
- Traffic Analytics - Website traffic trends and visitor metrics
- Backlinks - New/lost backlink events
- Position Tracking - SERP position changes over time
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement API key authentication flow in
account-create.ts - Create API utilities in
utils.tsfor domain analytics, keyword, and traffic endpoints - Implement sync logic in
schedule.tsfor periodic SEO data pulls - Convert SEO metrics and ranking changes to CORE activity format
- Add error handling and rate limiting (API unit consumption tracking)
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- Standard API package requires Business subscription plan
- API usage is measured in "API units" - track consumption carefully
- Traffic Analytics API (v3) is a separate endpoint from the standard analytics API
- Data can be filtered by database (country), display date, and export columns
- Response format is typically semicolon-separated values, not JSON - needs parsing
Resources
Labels
enhancement, integration, new-feature
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading integrations/github/src/index.ts and the corresponding integration structure in integrations/linear/ and integrations/slack/. Then review the Semrush API documentation and determine how the listed endpoints, authentication, response parsing, rate limits, and activity mapping fit the required files. Done means the integration is registered, documented, syncs the requested SEO data, and handles API errors and unit consumption.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend, data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100