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.

🟨 v4.2.1

JavaScript / Node.js

Full TypeScript support, ESM & CommonJS compatible. Optimized for serverless environments.

npm i @sitemap/client
🐍 v3.8.0

Python

Asyncio-ready with rich type hints. Works flawlessly with FastAPI, Django, and Flask.

pip install sitemap-xml-sdk
🔷 v2.5.4

Go

Concurrency-first design with automatic retry logic. Ideal for high-throughput indexing pipelines.

go get github.com/sitemap/xml-go
💎 v1.9.2

Ruby / Rails

Rails 7+ compatible with ActiveJob integration. Automatic background submission support.

gem install sitemap-xml
v5.1.0

Java / Spring

Spring Boot auto-configuration. Reactive & blocking clients for enterprise deployments.

mvn install sitemap-sdk:core
🦀 v0.8.3

Rust

Zero-cost abstractions with Tokio runtime support. Perfect for edge functions and WASM.

cargo add sitemap-xml

Quick Start Examples

Initialize the client and submit your first sitemap in under 3 minutes.

EXAMPLE
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 GitHub
💬

Developer Forum

Ask questions, share integrations, and get help from our engineering team and community.

Visit Forum
📚

Contribution Guide

Learn how to set up dev environments, run tests, and follow our release workflow.

Read Guidelines
🐛

Bug Bounty & Security

Found a vulnerability? Report it responsibly through our security disclosure program.

Report Issue
"}