bing-webmaster-tools
Skill0 starsChanged 11 months agoApache-2.0View on GitHub
Query and analyze Bing Webmaster Tools data for SEO insights. Use when users want to analyze Bing search performance, submit URLs for indexing, manage sitemaps, analyze backlinks, or get crawl statistics. Complements Google Search Console for comprehensive search engine coverage.
- Reads credentials
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 80
Use quota command to check remaining submissions
- Very specific: line 299
Use the bing-webmaster-tools package (handles rate limiting automatically)
- Distinctive: line 302
Check quota before large submission batches
- Distinctive: line 327
"Invalid API key": Verify API key in Bing Webmaster Tools > Settings > API Access.
- Distinctive: line 329
"Site not verified": Ensure site is verified in your Bing Webmaster account.
- Very specific: line 331
"Quota exceeded": Check daily submission quota with url_submission.py quota.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Bing Webmaster Tools
Query Bing Webmaster Tools API for search performance data, URL submission, sitemap management, backlink analysis, and crawl statistics.
Quick Start
Prerequisites
- Bing Webmaster Tools account with verified site
- API key from Bing Webmaster Tools > Settings > API Access
- Site URL verified in Bing Webmaster Tools
First Query
# Using the bing-webmaster-tools package
import asyncio
from bing_webmaster_tools import BingWebmasterClient
async def main():
async with BingWebmasterClient(api_key="YOUR_API_KEY") as client:
# List all verified sites
sites = await client.sites.get_sites()
for site in sites:
print(site.url)
# Get traffic data
traffic = await client.traffic.get_rank_and_traffic_stats("https://example.com")
print(f"Clicks: {traffic.clicks}, Impressions: {traffic.impressions}")
asyncio.run(main())Authentication Setup
See references/setup_guide.md for step-by-step API key creation.
API Capabilities Overview
This skill provides full access to all Bing Webmaster API endpoints:
| API | Capabilities | Scripts |
| Traffic Stats | Clicks, impressions, CTR, position by date/keyword | search_analytics.py, top_pages.py |
| URL Submission | Submit single/batch URLs, check quota | url_submission.py |
| Sitemaps | List, submit, delete, monitor status | sitemaps.py |
| Crawl Stats | Crawl activity, errors, pages per day | crawl_stats.py |
| Backlinks | Inbound links, anchor text, linking domains | backlinks.py |
| Content Blocks | Blocked resources affecting crawl | crawl_stats.py |
Unique Bing Features (Not in GSC)
- URL Submission - Submit URLs directly for immediate crawling
- Backlink Data - Full inbound link analysis
- Crawl Statistics - Detailed crawl activity and errors
Core Workflows
1. Submit URLs for Indexing
Submit new or updated URLs for immediate crawling:
# Submit a single URL
uv run python scripts/url_submission.py \
--site "https://example.com" submit "https://example.com/new-page"
# Submit multiple URLs from file
uv run python scripts/url_submission.py \
--site "https://example.com" batch urls.txt
# Check remaining quota
uv run python scripts/url_submission.py \
--site "https://example.com" quotaQuota limits:
- Daily quota per site (varies by site age/size)
- Use
quotacommand to check remaining submissions
2. Search Traffic Analysis
Analyze Bing search performance:
# Get traffic stats for last 30 days
uv run python scripts/search_analytics.py \
--site "https://example.com" --days 30
# Get keyword performance
uv run python scripts/search_analytics.py \
--site "https://example.com" --days 30 --breakdown keyword
# Export to CSV
uv run python scripts/search_analytics.py \
--site "https://example.com" --days 30 --output traffic.csv3. Best Performing Pages
Comprehensive top pages analysis with scoring:
# Full top pages report
uv run python scripts/top_pages.py \
--site "https://example.com" --sort-by performance_score
# Compare to previous period
uv run python scripts/top_pages.py \
--site "https://example.com" --compare-periodFeatures:
- Performance scoring (0-100) based on clicks, impressions, CTR, position
- Tier categorization (Star Performers, Solid Performers, Developing, Low Traffic)
- Period-over-period comparison with change tracking
4. Sitemap Management
Full sitemap lifecycle management:
# List all sitemaps
uv run python scripts/sitemaps.py --site "https://example.com" list
# Submit a new sitemap
uv run python scripts/sitemaps.py --site "https://example.com" \
submit "https://example.com/sitemap.xml"
# Check sitemap health
uv run python scripts/sitemaps.py --site "https://example.com" health
# Delete a sitemap
uv run python scripts/sitemaps.py --site "https://example.com" \
delete "https://example.com/old-sitemap.xml"5. Backlink Analysis (Bing-Specific)
Analyze inbound links to your site:
# Get all backlinks
uv run python scripts/backlinks.py --site "https://example.com" list
# Get backlinks to specific page
uv run python scripts/backlinks.py --site "https://example.com" \
page "https://example.com/popular-page"
# Export backlink data
uv run python scripts/backlinks.py --site "https://example.com" \
--output backlinks.csvData includes:
- Source URL and domain
- Anchor text
- Link discovery date
- Follow/nofollow status
6. Crawl Statistics (Bing-Specific)
Monitor Bingbot crawling activity:
# Get crawl stats overview
uv run python scripts/crawl_stats.py --site "https://example.com"
# Get crawl errors
uv run python scripts/crawl_stats.py --site "https://example.com" errors
# Get pages crawled per day
uv run python scripts/crawl_stats.py --site "https://example.com" daily7. Content Optimization Opportunities
Find pages with improvement potential:
# Generate optimization report
uv run python scripts/analyze_opportunities.py \
--site "https://example.com" --output opportunities.csvIdentifies:
- High impressions, low CTR pages (title/description issues)
- Ranking positions 11-20 (quick win potential)
- Declining traffic pages
8. Comprehensive Report
Generate all-in-one SEO report:
# Full comprehensive report
uv run python scripts/comprehensive_report.py --site "https://example.com"
# Export to directory
uv run python scripts/comprehensive_report.py \
--site "https://example.com" --output-dir ./bing_report/Report includes:
- Traffic summary with trends
- Top pages and keywords
- Sitemap health status
- Crawl statistics
- Backlink summary
- Optimization opportunities
- URL submission quota status
API Endpoints Reference
| Endpoint | Use Case | Rate Limit |
| GetRankAndTrafficStats | Traffic data (clicks, impressions, CTR) | 10/sec |
| GetQueryStats | Keyword-level performance | 10/sec |
| GetPageStats | Page-level performance | 10/sec |
| SubmitUrl | Submit single URL for indexing | Daily quota |
| SubmitUrlBatch | Submit multiple URLs | Daily quota |
| GetUrlSubmissionQuota | Check remaining submissions | 10/sec |
| GetSites | List verified sites | 10/sec |
| AddSite | Add new site | 10/sec |
| GetSitemaps | List sitemaps | 10/sec |
| SubmitSitemap | Submit new sitemap | 10/sec |
| DeleteSitemap | Remove sitemap | 10/sec |
| GetCrawlStats | Crawl activity data | 10/sec |
| GetLinkCounts | Backlink counts | 10/sec |
| GetUrlInfo | URL-specific data | 10/sec |
See references/api_endpoints.md for complete API documentation.
Bundled Scripts
scripts/auth.py
Authentication utilities with API key support:
uv run python scripts/auth.py testscripts/search_analytics.py
Query search performance data:
uv run python scripts/search_analytics.py --site "https://example.com/" --days 28scripts/top_pages.py
Comprehensive top pages analysis with scoring:
uv run python scripts/top_pages.py --site "https://example.com/"scripts/url_submission.py
Submit URLs for indexing:
uv run python scripts/url_submission.py --site "https://example.com/" submit "https://example.com/new"scripts/sitemaps.py
Full sitemap management:
uv run python scripts/sitemaps.py --site "https://example.com/" listscripts/crawl_stats.py
Crawl activity and errors:
uv run python scripts/crawl_stats.py --site "https://example.com/"scripts/backlinks.py
Backlink analysis:
uv run python scripts/backlinks.py --site "https://example.com/"scripts/analyze_opportunities.py
Generate content optimization report:
uv run python scripts/analyze_opportunities.py --site "https://example.com/"scripts/comprehensive_report.py
All-in-one SEO report:
uv run python scripts/comprehensive_report.py --site "https://example.com/"Rate Limits & Best Practices
Quotas:
- 10 API calls per second (default)
- URL submission has daily quota per site
- Data typically has 2-3 day delay
Optimization tips:
- Use the
bing-webmaster-toolspackage (handles rate limiting automatically) - Cache API responses where possible
- Batch URL submissions when possible
- Check quota before large submission batches
Environment Variables
# Required
BING_WEBMASTER_API_KEY=your_api_key_here
# Optional (for convenience)
BING_SITE_URL=https://your-site.comComparison with Google Search Console
| Feature | GSC | Bing |
| Auth method | OAuth 2.0 / Service Account | API Key (simpler) |
| URL Inspection | Rich results, mobile, AMP | Limited crawl data |
| Backlinks | Not available | Full backlink data ✓ |
| URL Submission | Not available (use IndexNow) | Built-in batch submission ✓ |
| Data freshness | 2-3 day delay | Similar delay |
| Rate limits | 200 QPM | 10 QPS |
Common Issues
"Invalid API key": Verify API key in Bing Webmaster Tools > Settings > API Access.
"Site not verified": Ensure site is verified in your Bing Webmaster account.
"Quota exceeded": Check daily submission quota with url_submission.py quota.
Empty results: Data has 2-3 day delay. Query older dates.
Rate limited: Package handles this automatically with retry. If using raw API, implement exponential backoff.
See references/setup_guide.md for troubleshooting guide.
In this repository2 other files it gives its agents.
- google-search-consoleSkill
- md-tunerSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

