Endpoint
Over REST, authenticate with the
x-api-key header against
https://api.seltz.ai. The SDKs speak gRPC to grpc.seltz.ai; pass your API
key to the client constructor and it is sent on every call.
SDK methods
Both return the response message whole rather than the list inside it.
Request
formats names the representations to return. "markdown" returns the page’s
main content with navigation, footers and ads removed. An unrecognized name is
rejected rather than dropped. Sending an empty list is the same as leaving the
field out.
tier selects the price. "pro" is the only value, and an omitted tier
resolves to it. An unrecognized value is rejected rather than defaulted.
timeout_ms is a wall-clock budget for one URL, not for the batch. URLs are
fetched concurrently, so a batch takes roughly as long as its slowest entry. A
URL that runs out gets error.code = "timeout"; the others are unaffected.
Values above the maximum are clamped, not rejected.
Result
Limits
Duplicate URLs in one request are rejected:
requested_url is the correlation
key, and a repeated key is ambiguous.
Errors
The request was rejected
A rejection is a non-200 with this body. Nothing was fetched and nothing was billed. Thecode is a stable name and is the field to branch on; the
message is prose and can change.
Unrecognized fields in the request body are ignored.
Over gRPC the same failures arrive as status codes rather than as this body.
One URL failed
A page that could not be fetched is not a rejection. It arrives inside the200 as that result’s status = "error" and an error.code.
The set grows, so treat an unrecognized code as a generic failure rather than
rejecting the result.
Enum spelling
status is spelled three ways depending on where you read it.