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¶
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