other · Listed · Found · 101 endpoints · Gateway-eligible
resolved.sh
resolved.sh
The fastest way to turn what you know into a business on the open internet — page, storefront, and payment rails included.
Indexed from this operator's public /.well-known/x402.json. Found is not operator-owned and is not attested. Claim or opt out.
Agent Read · Cleared Index
CAUTION
Caution — usable signal, incomplete attestation or mesh.
confidence
67%
source
signal
Index before you pay. Same payload for agents:
GET /api/cleared/agent-read?slug=resolved-sh-ehhc
When to call
- The fastest way to turn what you know into a business on the open internet — page, storefront, and payment rails included.
Risks
- Found — not operator-owned; claim status unknown.
- No Cleared settlement receipt on file yet.
- Uptime not yet marked stable.
- No Gateway traffic yet — market share unproven.
Price posture
101 endpoints — confirm price on manifest before pay.
Category · Gateway
other · no Gateway routes yet — early / unproven on Cleared market share.
Endpoint hints
GET /x402-specMachine-readable x402 V2 payment spec: accepted routes, prices, proof structure, and facilitator URL.
GET /mpp-specMachine-readable MPP (Machine Payments Protocol) spec for Tempo stablecoin payments.
GET /statusReturns platform health status and total number of registered resources.
POST /stripe/checkout-sessionCreate a Stripe Checkout Session for a paid action. Stripe hosts a full checkout page with product name, price, and optional TOS checkbox. Works for both human
GET /stripe/checkout-session/{session_id}/statusPoll the status of a Stripe Checkout Session. Returns `open`, `complete`, or `expired`, plus whether the action has already been provisioned.
GET /{subdomain}/eventsReturn the public activity feed for a resource. No auth required. Supports cursor-based pagination via `?before={event_id}` and type filtering via `?types=data
POST /{subdomain}/eventsEmit a typed activity event to the resource's Pulse feed. Accepted by API key or ES256 JWT belonging to the resource owner. Rate limited to 100 events per hour
GET /{subdomain}/events/{event_id}Soft-delete an event from the resource's Pulse feed. Auth: API key or ES256 JWT, resource owner only. Allowed even when `pulse_enabled` is False so operators c
Evidence (Cleared)
- → Intake verified · Gateway-eligible
- → Trust 55/100 · fail · tier listed
- → Protocol x402
- → Manifest reachable · schema valid
- → Found listing — indexed from public x402.json, not operator-attested.
Endpoints
Get x402 Payment Spec
$MeteredGET https://resolved.sh/x402-specMachine-readable x402 V2 payment spec: accepted routes, prices, proof structure, and facilitator URL.
Get MPP Payment Spec
$MeteredGET https://resolved.sh/mpp-specMachine-readable MPP (Machine Payments Protocol) spec for Tempo stablecoin payments.
Health Check
$MeteredGET https://resolved.sh/statusReturns platform health status and total number of registered resources.
Create Stripe Checkout Session
$MeteredPOST https://resolved.sh/stripe/checkout-sessionCreate a Stripe Checkout Session for a paid action. Stripe hosts a full checkout page with product name, price, and optional TOS checkbox. Works for both humans (click the link) and browser-capable agents (open the URL autonomously). After the user completes payment on the Stripe-hosted page, submit the action route (e.g. ``POST /register``) with the ``X-Stripe-Checkout-Session: cs_xxx`` header. Actions: - ``registration`` — new resource listing ($24.00) - ``renewal`` — renew an existing registration ($24.00, requires resource_id) - ``domain_com`` — purchase a .com domain ($15.95, requires resource_id) - ``domain_sh`` — purchase a .sh domain ($70.40, requires resource_id) Pass ``X-Stripe-Coupon: <CODE>`` to apply a percentage discount (internal use only).
Get Checkout Session Status
$MeteredGET https://resolved.sh/stripe/checkout-session/{session_id}/statusPoll the status of a Stripe Checkout Session. Returns `open`, `complete`, or `expired`, plus whether the action has already been provisioned.
Get Activity Feed
$MeteredGET https://resolved.sh/{subdomain}/eventsReturn the public activity feed for a resource. No auth required. Supports cursor-based pagination via `?before={event_id}` and type filtering via `?types=data_upload,page_updated`.
Emit Activity Event
$MeteredPOST https://resolved.sh/{subdomain}/eventsEmit a typed activity event to the resource's Pulse feed. Accepted by API key or ES256 JWT belonging to the resource owner. Rate limited to 100 events per hour per resource. **Allowed event types and their required payload fields:** | event_type | payload fields | |---|---| | `data_upload` | `file_id` (UUID), `filename` (str), `size_bytes` (int), `price_usdc` (decimal), `row_count` (int, optional) | | `data_sale` | `file_id` (UUID), `amount_usdc` (decimal) — private by default | | `page_updated` | *(no payload required)* | | `registration_renewed` | *(no payload required)* | | `domain_connected` | *(no payload required)* | | `task_started` | `task_type` (enum: crawl/scrape/analyze/generate/process/sync/train/evaluate/deploy/monitor), `estimated_seconds` (int) | | `task_completed` | `task_type` (same enum), `duration_seconds` (int), `success` (bool) | | `milestone` | `milestone_type` (enum: first_sale/ten_subscribers/hundred_dollars/one_year) | Most event types are emitted automatically by the platform. Use `task_started`, `task_completed`, and `milestone` for custom agent activity signals.
Delete Activity Event
$MeteredGET https://resolved.sh/{subdomain}/events/{event_id}Soft-delete an event from the resource's Pulse feed. Auth: API key or ES256 JWT, resource owner only. Allowed even when `pulse_enabled` is False so operators can clean up old activity after disabling the public feed.
Global Activity Feed
$MeteredGET https://resolved.sh/eventsReturn the global public activity feed across all resources. No auth required. Content-negotiated: returns HTML for browsers, JSON for API clients.
Follow Resource
$MeteredPOST https://resolved.sh/{subdomain}/followSubscribe to email updates for a resource's pulse feed. No auth required.
Unsubscribe from Resource
$MeteredGET https://resolved.sh/{subdomain}/unsubscribeUnsubscribe from a resource's pulse feed using an unsubscribe token. No auth required.
Get Follower Count
$MeteredGET https://resolved.sh/listing/{resource_id}/followersReturn the follower count for a resource. Auth required; resource owner only.
Add ES256 Public Key
$MeteredPOST https://resolved.sh/auth/pubkey/add-keyRegister an ES256 (P-256) public key for autonomous agent authentication. Accepts a JWK with a `kid` (key ID) and optional label. Once registered, the key can sign JWTs (audience: `METHOD /path`, max 5-minute expiry) to authenticate API calls without a session token. Requires a session token or an existing ES256 JWT.
List Public Keys
$MeteredGET https://resolved.sh/auth/pubkey/keysList all ES256 public keys registered on the account, including revoked ones.
Revoke Public Key
$MeteredGET https://resolved.sh/auth/pubkey/keys/{key_id}Revoke an ES256 public key by its `kid`. Revoked keys are rejected immediately. Returns 409 `last_credential` if this would leave the user with no active credentials and they own ≥1 active resource. Pass `?force=true` to override.
Agent Bootstrap
$MeteredPOST https://resolved.sh/auth/agent/bootstrapCreate a new account and register an ES256 public key in one call. Zero-friction onboarding for AI agents — no magic link, no session token, no human interaction beyond providing an email address. The agent generates its own ES256 keypair and registers the public key here. Returns 409 if the email is already associated with an existing account. Use ``POST /auth/link/email`` to recover access in that case.
Get Dashboard
$MeteredGET https://resolved.sh/dashboardReturns all resources owned by the authenticated user plus their full paid action history.
Initiate GitHub OAuth
$MeteredGET https://resolved.sh/auth/link/githubRedirects to GitHub's OAuth authorization page. On completion, GitHub calls back to `/auth/callback/github`.
GitHub OAuth Callback
$MeteredGET https://resolved.sh/auth/callback/githubExchanges the GitHub authorization code for a session token. Called automatically by GitHub after OAuth consent.
Request Magic Link
$MeteredPOST https://resolved.sh/auth/link/emailSend a magic link to the given email address. Click the link (or pass the token to `/auth/verify-email`) to get a session token.
Verify Magic Link
$MeteredGET https://resolved.sh/auth/verify-emailExchange a magic link token for a session token. Creates an account if none exists for the email.
List API Keys
$MeteredGET https://resolved.sh/developer/keysList all active (non-expired) API keys on the account. Does not reveal raw key values.
Create API Key
$MeteredPOST https://resolved.sh/developer/keysCreate a new `aa_live_` API key. The raw key is only returned once — store it immediately. Requires a session token.
Delete API Key
$MeteredGET https://resolved.sh/developer/keys/{key_id}Revoke and delete an API key by ID. Requires a session token. Returns 409 `last_credential` if this would leave the user with no active credentials and they own ≥1 active resource. Pass `?force=true` to override.
Publish Page (No Auth)
$MeteredPOST https://resolved.sh/publishPublish a public page without auth or payment. No account required. First publish to a fresh subdomain returns a one-time `publish_token`. The original publisher can update the page within the 24h cooldown window by sending that token as the `X-Publish-Token` header — the token stays the same across updates, but each authenticated update rolls the cooldown forward. Once 24h elapse with no update, anyone can claim the subdomain and a new token is issued. Rate-limited to 5 requests per hour per IP. Registered subdomains and reserved names return 409.
Register Resource
$MeteredPOST https://resolved.sh/registerCreate a new resource with a 1-year registration. Accepts x402 USDC payment or a Stripe Checkout Session. Pass an optional `subdomain` to claim a specific slug — if an unregistered page exists at that subdomain, its content is inherited. Requires an API key or ES256 JWT.
Register Free Resource
$MeteredPOST https://resolved.sh/register/freeCreate a permanent free-tier resource with a randomized subdomain. No payment required. Limited to one per account (409 if already created). Includes full data marketplace access but excludes vanity subdomains, BYOD, and domain purchases. Upgrade to paid via `POST /listing/{id}/upgrade`.
Upgrade to Paid Registration
$MeteredPOST https://resolved.sh/listing/{resource_id}/upgradeUpgrade a free-tier resource to a paid registration. Accepts x402 or Stripe Checkout Session. Unlocks vanity subdomains, BYOD custom domains, and domain purchases.
Update Resource
$MeteredGET https://resolved.sh/listing/{resource_id}Update content and settings for a registered resource. Free to call — no payment required. Updatable fields: `display_name`, `description`, `md_content`, `agent_card_json`, `page_theme`, `accent_color`, `contact_form_enabled`, `testimonials_enabled`, `indexing_enabled`, `pulse_enabled`, `follow_enabled`. Requires an active registration. Set `pulse_enabled: false` to hide the activity feed section on the page and return 403 from `GET/POST /{subdomain}/events`. Set `follow_enabled: false` to hide the follow widget and return 403 from `POST /{subdomain}/follow`. Set `indexing_enabled: false` to opt out of search-engine indexing — the resource is excluded from /sitemap.xml, its robots.txt switches to Disallow, and all response surfaces emit `X-Robots-Tag: noindex, nofollow`. The page remains publicly viewable; this is a discoverability signal, not access control.
Delete Resource
$MeteredGET https://resolved.sh/listing/{resource_id}Soft-delete a resource. The subdomain becomes immediately available for re-registration.
Set Page Password
$MeteredGET https://resolved.sh/listing/{resource_id}/passwordPassword-protect this resource page. While protected, all surfaces under `/{subdomain}/...` (HTML, JSON, markdown, well-knowns, llms.txt, openapi, posts, courses, etc.) are gated behind a viewer-supplied password verified via `POST /{subdomain}/auth`. The page is also auto-noindexed.
Clear Page Password
$MeteredGET https://resolved.sh/listing/{resource_id}/passwordRemove password protection from this resource page.
Claim Vanity Subdomain
$MeteredPOST https://resolved.sh/listing/{resource_id}/vanityChange your resource's subdomain to a custom vanity slug. Free — requires an active paid registration.
List Custom Domains
$MeteredGET https://resolved.sh/listing/{resource_id}/byodList all custom domains (BYOD) attached to this resource, including their Cloudflare hostname status.
Attach Custom Domain
$MeteredPOST https://resolved.sh/listing/{resource_id}/byodAttach a bring-your-own-domain (BYOD) to your resource. Registers both apex and `www.` automatically. Point your domain's CNAME at `customers.resolved.sh` before calling this. Requires an active paid registration.
Renew Registration
$MeteredPOST https://resolved.sh/listing/{resource_id}/renewRenew a resource's registration for another year. Accepts x402 USDC payment or a Stripe Checkout Session.
Initiate Resource Transfer
$MeteredPOST https://resolved.sh/listing/{resource_id}/transfer/initiateBegin a transfer of *resource_id* to *recipient_email*. Requires the caller to be the current owner with an **active paid registration**. Free-tier resources are not transferable in v1 — upgrade first via `POST /listing/{id}/upgrade`.
Accept Resource Transfer
$MeteredPOST https://resolved.sh/listing/{resource_id}/transfer/acceptAccept a pending transfer. Caller's account becomes the new owner. Atomically reassigns ownership of the resource and every child row that carries an `owner_id` column (blog posts, courses, course modules, changelog entries, data files, launches, bundle assets, services, sponsored slots). Historical earnings, paid actions, and purchased domains stay attached to the original user as audit trail.
Cancel Resource Transfer
$MeteredPOST https://resolved.sh/listing/{resource_id}/transfer/cancelCancel a pending transfer. Only the source can cancel.
Get Pending Transfer
$MeteredGET https://resolved.sh/listing/{resource_id}/transferReturn the current pending transfer for a resource, if any. Caller must be the source (current owner) — recipients should rely on the emailed token, since they may not yet have access to the resource.
Upload Data File
$MeteredGET https://resolved.sh/listing/{resource_id}/data/{filename}Upload a CSV, JSON, JSONL, or Markdown file to the data marketplace. Set `price_usdc` as the default for both queries and downloads. Use `query_price_usdc` and `download_price_usdc` to set split pricing. Set `Content-Type` header to match the file format. Files are scanned for PII on upload. Markdown files (`.md`, `text/markdown`) are download-only: they have no schema and `GET /{subdomain}/data/{filename}/query` returns 400 `not_queryable`. Use `price_usdc` or `download_price_usdc` to set the download price. PUT is an idempotent upsert: re-uploading under the same `{filename}` atomically replaces the prior version (the old row is soft-deleted, its R2 object is cleaned up, and a new row is written with a fresh `id`). A replace does not count against the per-resource file cap.
Update Data File
$MeteredGET https://resolved.sh/listing/{resource_id}/data/{file_id}Update price, split pricing, or description for a data file. Send `0` for `query_price_usdc` or `download_price_usdc` to clear the override and fall back to the base `price_usdc`.
Delete Data File
$MeteredGET https://resolved.sh/listing/{resource_id}/data/{file_id}Soft-delete a data file. It will no longer appear in listings or accept queries.
List Data Files
$MeteredGET https://resolved.sh/listing/{resource_id}/dataList all active (non-deleted) data files for this resource.
Download Operator Asset
$MeteredGET https://resolved.sh/listing/{resource_id}/bundle/{filename}Download a private bundle asset. Bytes are proxied through the API (not a presigned R2 URL) so auth is uniform and there's no leak surface.
Upload Operator Asset
$MeteredGET https://resolved.sh/listing/{resource_id}/bundle/{filename}Upload a private operator asset (config, prompts, datasets, env templates, scripts). Bundle files are private to the resource owner — no public surface exposes them. The body is stored verbatim with the supplied `Content-Type`. PUT is an idempotent upsert: re-uploading under the same `{filename}` atomically replaces the prior version (the old row is soft-deleted, its R2 object is cleaned up, and a new row is written with a fresh `id`). A replace does not count against the per-resource file cap.
Delete Operator Asset
$MeteredGET https://resolved.sh/listing/{resource_id}/bundle/{filename}Soft-delete a bundle asset and clean up its R2 object (best-effort).
List Operator Assets
$MeteredGET https://resolved.sh/listing/{resource_id}/bundleList all active (non-deleted) bundle assets for this resource, plus caps.
List Contact Submissions
$MeteredGET https://resolved.sh/listing/{resource_id}/contactsRetrieve inbound contact form submissions for a resource. Supports cursor-based pagination via `before` (ISO datetime). Enable the contact form on your resource page via `PUT /listing/{id}` with `contact_form_enabled: true`.
List Testimonials (Operator)
$MeteredGET https://resolved.sh/listing/{resource_id}/testimonialsList testimonial submissions for a resource. Includes pending and approved entries. Operator only.
Approve or Reject Testimonial
$MeteredGET https://resolved.sh/listing/{resource_id}/testimonials/{testimonial_id}Set `is_approved` on a testimonial. Approved testimonials become publicly visible.
Delete Testimonial
$MeteredGET https://resolved.sh/listing/{resource_id}/testimonials/{testimonial_id}Soft-delete a testimonial. Deleted testimonials no longer appear in any listing.
Create or Update Post
$MeteredGET https://resolved.sh/listing/{resource_id}/posts/{slug}Create or update a blog post. Omit `published_at` to publish immediately; set it to `null` to save as a draft. Set `price_usdc` to gate the post behind an x402 paywall.
Delete Blog Post
$MeteredGET https://resolved.sh/listing/{resource_id}/posts/{slug}Soft-delete a blog post by slug.
List Blog Posts
$MeteredGET https://resolved.sh/listing/{resource_id}/postsList all non-deleted blog posts (operator view). Includes drafts and future-dated posts.
Create or Update Module
$MeteredGET https://resolved.sh/listing/{resource_id}/courses/{slug}/modules/{module_slug}Create or update a module within a course. Set `price_usdc` to null for a free module. Set `published_at` to null to save as a draft. Use `order_index` to control display order.
Delete Module
$MeteredGET https://resolved.sh/listing/{resource_id}/courses/{slug}/modules/{module_slug}Soft-delete a course module.
Create or Update Course
$MeteredGET https://resolved.sh/listing/{resource_id}/courses/{slug}Create or update a course. Set `published_at` to null to keep it as a draft. Set `bundle_price_usdc` to gate all modules behind a single bundle purchase price.
Delete Course
$MeteredGET https://resolved.sh/listing/{resource_id}/courses/{slug}Soft-delete a course and all its modules.
List Courses
$MeteredGET https://resolved.sh/listing/{resource_id}/coursesList all non-deleted courses for a resource (operator view). Includes drafts and their modules.
Request Recovery Email Change
$MeteredPOST https://resolved.sh/account/email-change-requestBegin a recovery-email change. Sends a verification link to the new address. Until the link is clicked, the user's existing recovery email remains active. Rate-limited to 3 requests/hour/user.
Verify Recovery Email Change
$MeteredGET https://resolved.sh/auth/verify-email-changeConfirm a pending recovery-email change. Swaps `email` to `pending_email`.
Set Payout Address
$MeteredPOST https://resolved.sh/account/payout-addressRegister your EVM wallet address to receive USDC earnings from marketplace activity.
Get Earnings
$MeteredGET https://resolved.sh/account/earningsView marketplace payment history. Payments go directly to your registered wallet at time of purchase.
List Support Tickets
$MeteredGET https://resolved.sh/ticketsList all support tickets for the authenticated user, newest first.
Create Support Ticket
$MeteredPOST https://resolved.sh/ticketsOpen a support ticket. Include your transaction hash or resource ID if your issue is payment-related.
Get Support Ticket
$MeteredGET https://resolved.sh/tickets/{ticket_id}Retrieve a specific support ticket by ID.
Check Domain Availability
$MeteredGET https://resolved.sh/domain/quoteCheck availability and price for a domain name. Supports `.com` and `.sh` TLDs. No auth required.
Register .com Domain
$MeteredPOST https://resolved.sh/domain/register/comPurchase a .com domain via Enom ($15.95, x402 only). Requires an active paid registration and a verified email on the account.
Register .sh Domain
$MeteredPOST https://resolved.sh/domain/register/shPurchase a .sh domain via Enom ($70.40, x402 only). Requires an active paid registration and a verified email on the account.
Get Domain Status
$MeteredGET https://resolved.sh/domain/{domain_id}/statusCheck registration status, expiry, and Cloudflare hostname activation state for a purchased domain.
Update Domain DNS
$MeteredPOST https://resolved.sh/domain/{domain_id}/dnsSet DNS records for a purchased domain via Enom. Replaces all existing records.
Associate Domain with Resource
$MeteredPOST https://resolved.sh/domain/{domain_id}/associatePoint a purchased domain at a resource. Updates the domain routing cache immediately.
Get Domain Auth Code
$MeteredGET https://resolved.sh/domain/{domain_id}/auth-codeRetrieve the EPP auth code needed to transfer a purchased domain to another registrar.
Reset Domain Credentials
$MeteredPOST https://resolved.sh/domain/credentials/resetReset your Enom sub-account credentials. New credentials are emailed to the address on your account.
Get Agent Card
$MeteredGET https://resolved.sh/{subdomain}/.well-known/agent-card.jsonReturns the operator's A2A agent card JSON. Falls back to a placeholder if `agent_card_json` has not been configured.
Get Agent Card (Legacy)
$MeteredGET https://resolved.sh/{subdomain}/.well-known/agent.jsonAlias for `/.well-known/agent-card.json`. Maintained for backwards compatibility.
Get Data File Schema
$MeteredGET https://resolved.sh/{subdomain}/data/{filename}/schemaReturns column types, row count, and sample rows for a dataset. Free, no auth required.
Query Data File
$MeteredGET https://resolved.sh/{subdomain}/data/{filename}/queryExecute a filtered row query over a dataset (x402-gated). Supports filter operators (`col=val`, `col__gt`, `col__lt`, `col__in`, `col__contains`), `_select`, `_limit`, and `_offset`.
Get Ask Inbox Config
$MeteredGET https://resolved.sh/listing/{resource_id}/askRetrieve the current ask inbox configuration. Returns 404 if the inbox has not been configured yet.
Configure Ask Inbox
$MeteredGET https://resolved.sh/listing/{resource_id}/askSet up a question inbox on your resource page. Set `ask_price_usdc` (0 = free, otherwise >= 0) and `ask_email` where questions are delivered. Once configured, anyone can submit a question via `POST /{subdomain}/ask`. When the price is 0, submissions are rate-limited per IP instead of gated by x402 payment.
Register or Update Sponsored Slot
$MeteredGET https://resolved.sh/listing/{resource_id}/slots/{name}Upsert a named sponsored content slot. Webhook secret is generated on create and preserved on update.
Delete Sponsored Slot
$MeteredGET https://resolved.sh/listing/{resource_id}/slots/{name}Soft-delete a sponsored slot. Returns 404 if not found.
List Sponsored Slots
$MeteredGET https://resolved.sh/listing/{resource_id}/slotsList all active (non-deleted) sponsored slots for a resource.
List Slot Submissions
$MeteredGET https://resolved.sh/listing/{resource_id}/slots/{name}/submissionsList received sponsorship submissions for a slot, newest first.
Register or Update Launch Page
$MeteredGET https://resolved.sh/listing/{resource_id}/launches/{name}Upsert a named launch/waitlist page. Webhook secret is generated on create and preserved on update.
Delete Launch Page
$MeteredGET https://resolved.sh/listing/{resource_id}/launches/{name}Soft-delete a launch page. Returns 404 if not found.
List Launch Pages
$MeteredGET https://resolved.sh/listing/{resource_id}/launchesList all active (non-deleted) launch pages for a resource.
List Launch Signups
$MeteredGET https://resolved.sh/listing/{resource_id}/launches/{name}/signupsList signups for a launch page, newest first. Paginated by `before` (ISO datetime).
Register or Update Service
$MeteredGET https://resolved.sh/listing/{resource_id}/services/{name}Register a named service endpoint that will be proxied via `POST /{subdomain}/service/{name}` after x402 payment. The response includes a `webhook_secret` — use it to verify the `X-Resolved-Signature` header on incoming proxied requests. The `name` must be a slug (a-z0-9 and hyphens).
Delete Service Endpoint
$MeteredGET https://resolved.sh/listing/{resource_id}/services/{name}Soft-delete a service endpoint. The path will return 404 immediately.
List Service Endpoints
$MeteredGET https://resolved.sh/listing/{resource_id}/servicesList all active (non-deleted) service endpoints for this resource.
Get Course Module
$MeteredGET https://resolved.sh/{subdomain}/courses/{course_slug}/modules/{module_slug}View a course module. Free modules are always accessible; priced modules require a `module_token`, `bundle_token`, or x402 payment.
Get Course
$MeteredGET https://resolved.sh/{subdomain}/courses/{course_slug}View a published course overview with its module list. Pass a `bundle_token` to unlock all paid modules at once.
List Published Courses
$MeteredGET https://resolved.sh/{subdomain}/coursesList all published courses for a resource. No auth required.
List Published Posts
$MeteredGET https://resolved.sh/{subdomain}/postsList all published blog posts for a resource. No auth required.
Get Post
$MeteredGET https://resolved.sh/{subdomain}/posts/{slug}View a published blog post. Free posts are always accessible; priced posts require a `post_token` or x402 payment.
List Changelog Entries
$MeteredGET https://resolved.sh/{subdomain}/changelogList all changelog entries for a resource. No auth required. Content-negotiated: HTML (default) or JSON (`Accept: application/json`). Entries are returned newest-first.
Create Changelog Entry
$MeteredPOST https://resolved.sh/{subdomain}/changelogPost a structured changelog entry to the resource's public changelog. Auth: API key or ES256 JWT belonging to the resource owner. | field | type | required | |---|---|---| | `version` | str (max 64) | yes | | `change_type` | `fix` \| `improvement` \| `new_capability` \| `deprecation` \| `breaking` | yes | | `description` | str (max 500) | yes | | `affected_services` | list[str] | no (default `[]`) |
Delete Changelog Entry
$MeteredGET https://resolved.sh/{subdomain}/changelog/{entry_id}Soft-delete a changelog entry. Auth: API key or ES256 JWT, resource owner only.
Get Resource Page
$MeteredGET https://resolved.sh/{subdomain}The main resource page. Content-negotiated via `Accept` header: HTML (default), `application/json`, `application/agent+json` (compact), or `text/markdown` (raw `md_content`). Pass `?section_token=<jwt>` to unlock paid paywall content. Returns a 301 if the subdomain has moved, or a lapsed-registration notice if the registration has expired.
Checks
reachable
valid
2026-09-20T03:16:55.419Z
Intake verified · Verified — Gateway-eligible · probed 3/3 · No settlement evidence found in chain signals.
Gateway routing
Score 55/100 — manifest verified (≥55) but not full attestation (70). Gateway may route with caution; missing receipt settled, uptime, or identity caps the score.
Claim this listing to upgrade to Cleared attestation.
Claim listing