SDKs & Libraries
Official, production-ready packages designed to integrate Sitemap.xml into your stack seamlessly. Type-safe, async-first, and updated automatically.
Choose Your Language
First-class support for modern frameworks and runtimes. All SDKs share the same core architecture and guarantee consistent behavior.
JavaScript / Node.js
Full TypeScript support, ESM & CommonJS compatible. Optimized for serverless environments.
Python
Asyncio-ready with rich type hints. Works flawlessly with FastAPI, Django, and Flask.
Go
Concurrency-first design with automatic retry logic. Ideal for high-throughput indexing pipelines.
Ruby / Rails
Rails 7+ compatible with ActiveJob integration. Automatic background submission support.
Java / Spring
Spring Boot auto-configuration. Reactive & blocking clients for enterprise deployments.
Quick Start Examples
Initialize the client and submit your first sitemap in under 3 minutes.
import { SitemapClient } from '@sitemap/client'; // Initialize with your API key from the dashboard const client = new SitemapClient({ apiKey: process.env.SITEMAP_API_KEY, retries: 3, timeout: 5000 }); async function main() { // Generate & submit dynamically const result = await client.submit({ urls: [ 'https://example.com/blog/post-1', 'https://example.com/products/widget' ], priority: 0.8 }); console.log(`Indexing status: ${result.status}`); } main();
from sitemap_sdk import SitemapClient import os # Initialize client with auto-retry client = SitemapClient( api_key=os.environ["SITEMAP_API_KEY"], max_retries=3 ) async def push_urls(): # Submit a batch of new pages response = await client.submit( urls=[ "https://example.com/docs/guide", "https://example.com/api/v2" ], priority=0.9 ) print(f"Batch {response.batch_id} submitted") asyncio.run(push_urls())
package main import ( "context" "fmt" "log" sitemap "github.com/sitemap/xml-go/v2" ) func main() { client := sitemap.NewClient( "YOUR_API_KEY", sitemap.WithRetry(3), ) ctx := context.Background() res, err := client.Submit(ctx, sitemap.Submission{ URLs: []string{ "https://example.com/new-feature", }, Priority: 0.85, }) if err != nil { log.Fatal(err) } fmt.Printf("Status: %s\n", res.Status) }
# Gemfile # gem 'sitemap-xml', '~> 1.9' require 'sitemap-xml' client = SitemapXml::Client.new( api_key: ENV['SITEMAP_API_KEY'] ) # Submit via ActiveJob or sync result = client.submit( urls: [ 'https://example.com/dashboard', 'https://example.com/reports' ], priority: 0.7 ) puts "Batch #{result.id} queued for crawling"
Version Compatibility Matrix
We maintain strict backward compatibility. SDKs are updated automatically via semantic versioning.
| Language | Current Version | API Compatibility | Runtime Requirements | Status |
|---|---|---|---|---|
| JavaScript / TypeScript | v4.2.1 | API v2.x | Node 18+, Deno 1.30+ | Stable |
| Python | v3.8.0 | API v2.x | Python 3.9+ | Stable |
| Go | v2.5.4 | API v2.x | Go 1.20+ | Stable |
| Ruby | v1.9.2 | API v2.x | Ruby 2.7+, Rails 6+ | Stable |
| Java | v5.1.0 | API v2.x | Java 17+, Spring Boot 3+ | Stable |
| Rust | v0.8.3 | API v2.x | Rust 1.70+, Tokio 1.x | Beta |
Join the Community
All SDKs are open-source. Report bugs, suggest features, or contribute directly.
GitHub Repository
Access source code, view issues, and submit pull requests for any language SDK.
View on GitHubDeveloper Forum
Ask questions, share integrations, and get help from our engineering team and community.
Visit ForumContribution Guide
Learn how to set up dev environments, run tests, and follow our release workflow.
Read GuidelinesBug Bounty & Security
Found a vulnerability? Report it responsibly through our security disclosure program.
Report Issue