Skip to content

Redirects

The Konigle SDK provides redirect management for creating and managing URL redirects on your website. Redirects support both permanent (HTTP 301) and temporary (HTTP 302) redirects.

Creating Redirects

import konigle
from konigle.models.website.redirect import RedirectCreate

client = konigle.Client(api_key="your-api-key")

# Create a permanent redirect (default)
redirect = client.redirects.create(
    RedirectCreate(
        path="/old-page",
        target="/new-page",
    )
)
print(redirect)
# Redirect: ID: rdr_123 /old-page -> /new-page (permanent)

# Create a temporary redirect
redirect = client.redirects.create(
    RedirectCreate(
        path="/sale",
        target="/products?discount=true",
        permanent=False,
    )
)

# Redirect to an external URL
redirect = client.redirects.create(
    RedirectCreate(
        path="/github",
        target="https://github.com/your-org",
    )
)

Listing Redirects

# List all redirects with pagination
result = client.redirects.list(page=1, page_size=20)

print(f"Total redirects: {result.count}")
for redirect in result.payload:
    print(redirect)

Filtering Redirects

from konigle.filters.website import RedirectFilters

# Search by path or target
filters = RedirectFilters(q="/old")
result = client.redirects.list(filters=filters)

# Filter by exact path
filters = RedirectFilters(path="/old-page")
result = client.redirects.list(filters=filters)

# Filter by target and sort by path descending
filters = RedirectFilters(target="/new-page", ordering="-path")
result = client.redirects.list(filters=filters)

Getting a Specific Redirect

redirect = client.redirects.get("rdr_123456789")
print(f"Path: {redirect.path}")
print(f"Target: {redirect.target}")
print(f"Permanent: {redirect.permanent}")

Updating Redirects

from konigle.models.website.redirect import RedirectUpdate

# Update the target URL
updated = client.redirects.update(
    "rdr_123456789",
    RedirectUpdate(target="/updated-destination"),
)
print(updated)

# Change from permanent to temporary
updated = client.redirects.update(
    "rdr_123456789",
    RedirectUpdate(permanent=False),
)

Deleting Redirects

client.redirects.delete("rdr_123456789")
print("Redirect deleted")

Iterating All Redirects

# Memory-efficient iteration over all redirects
for redirect in client.redirects.iter_all(page_size=50):
    print(redirect)

Async Operations

import asyncio
import konigle
from konigle.models.website.redirect import RedirectCreate, RedirectUpdate

async def manage_redirects():
    async with konigle.AsyncClient(api_key="your-api-key") as client:
        # Create a redirect
        redirect = await client.redirects.create(
            RedirectCreate(path="/old", target="/new")
        )

        # List redirects
        result = await client.redirects.list(page=1, page_size=10)

        # Update a redirect
        updated = await client.redirects.update(
            redirect.id, RedirectUpdate(permanent=False)
        )

        # Delete a redirect
        await client.redirects.delete(redirect.id)

asyncio.run(manage_redirects())

CLI Usage

# List redirects
konigle redirects list

# List with filters and pagination
konigle redirects list --query "/old" --page 1 --page-size 10

# Get a specific redirect
konigle redirects get rdr_123456789

# Create a permanent redirect
konigle redirects create /old-page /new-page

# Create a temporary redirect
konigle redirects create /sale /products --temporary

# Update a redirect
konigle redirects update rdr_123456789 --target /updated-page

# Delete a redirect
konigle redirects delete rdr_123456789