{"openapi":"3.1.0","info":{"title":"ProofDesk Website QA Kit API","version":"1.0.0","x-resolved-subdomain":"proofdesk-website-qa-kit-b82b","x-resolved-platform":"resolved.sh","x-x402-payment-header":"PAYMENT-SIGNATURE","description":"102 manual QA checks, report template, severity rubric and fictional sample. Complete Markdown kit:10 USDC; free preview."},"servers":[{"url":"https://proofdesk-website-qa-kit-b82b.resolved.sh","description":"Buyer API"},{"url":"https://resolved.sh","description":"Operator Management"}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API key (aa_live_...) or ES256 JWT"}}},"paths":{"/data/qa-audit-kit.md/schema":{"get":{"operationId":"schema-qa-audit-kit","summary":"Complete Website QA Audit Kit, single-buyer commercial license, Markdown edition — schema","description":"Free schema discovery — returns column names, types, and sample rows.","tags":["Complete Website QA Audit Kit, single-buyer commercial license, Markdown edition"],"responses":{"200":{"description":"Schema metadata","content":{"application/json":{"schema":{"type":"object","properties":{"queryable":{"type":"boolean"},"filename":{"type":"string"},"row_count":{"type":"integer"},"columns":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}}}},"sample_rows":{"type":"array","items":{"type":"object"}}}}}}},"404":{"description":"File not found"}}}},"/data/qa-audit-kit.md":{"get":{"operationId":"download-qa-audit-kit","summary":"Complete Website QA Audit Kit, single-buyer commercial license, Markdown edition — download","description":"Complete Website QA Audit Kit, single-buyer commercial license, Markdown edition","tags":["Complete Website QA Audit Kit, single-buyer commercial license, Markdown edition"],"x-x402-price-usdc":"10.000000","x-x402-payment-header":"PAYMENT-SIGNATURE","x-content-type":"text/markdown","responses":{"200":{"description":"File contents","content":{"text/markdown":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Payment required — include PAYMENT-SIGNATURE header"},"404":{"description":"File not found"}}}},"/data/qa-audit-kit.md/query":{"get":{"operationId":"query-qa-audit-kit","summary":"Complete Website QA Audit Kit, single-buyer commercial license, Markdown edition — query","description":"x402-gated per-row query. Supports filter operators: col=val, col__gt, col__lt, col__gte, col__lte, col__in=a,b,c, col__contains. Also: _select, _limit, _offset.","tags":["Complete Website QA Audit Kit, single-buyer commercial license, Markdown edition"],"x-x402-price-usdc":"10.000000","x-x402-payment-header":"PAYMENT-SIGNATURE","parameters":[{"name":"_limit","in":"query","schema":{"type":"integer"}},{"name":"_offset","in":"query","schema":{"type":"integer"}},{"name":"_select","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Filtered rows","content":{"application/json":{"schema":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"object"}},"count":{"type":"integer"},"total_matched":{"type":"integer"},"offset":{"type":"integer"},"limit":{"type":"integer"}}}}}},"402":{"description":"Payment required — include PAYMENT-SIGNATURE header"},"400":{"description":"Unknown column or file not queryable"}}}},"/data/qa-preview.md/schema":{"get":{"operationId":"schema-qa-preview","summary":"Free sample: three checks, a copyable bug-report template, and a fictional worked example — schema","description":"Free schema discovery — returns column names, types, and sample rows.","tags":["Free sample: three checks, a copyable bug-report template, and a fictional worked example"],"responses":{"200":{"description":"Schema metadata","content":{"application/json":{"schema":{"type":"object","properties":{"queryable":{"type":"boolean"},"filename":{"type":"string"},"row_count":{"type":"integer"},"columns":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}}}},"sample_rows":{"type":"array","items":{"type":"object"}}}}}}},"404":{"description":"File not found"}}}},"/data/qa-preview.md":{"get":{"operationId":"download-qa-preview","summary":"Free sample: three checks, a copyable bug-report template, and a fictional worked example — download","description":"Free sample: three checks, a copyable bug-report template, and a fictional worked example","tags":["Free sample: three checks, a copyable bug-report template, and a fictional worked example"],"x-x402-price-usdc":"0.000000","x-x402-payment-header":"PAYMENT-SIGNATURE","x-content-type":"text/markdown","responses":{"200":{"description":"File contents","content":{"text/markdown":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Payment required — include PAYMENT-SIGNATURE header"},"404":{"description":"File not found"}}}},"/data/qa-preview.md/query":{"get":{"operationId":"query-qa-preview","summary":"Free sample: three checks, a copyable bug-report template, and a fictional worked example — query","description":"x402-gated per-row query. Supports filter operators: col=val, col__gt, col__lt, col__gte, col__lte, col__in=a,b,c, col__contains. Also: _select, _limit, _offset.","tags":["Free sample: three checks, a copyable bug-report template, and a fictional worked example"],"x-x402-price-usdc":"0.000000","x-x402-payment-header":"PAYMENT-SIGNATURE","parameters":[{"name":"_limit","in":"query","schema":{"type":"integer"}},{"name":"_offset","in":"query","schema":{"type":"integer"}},{"name":"_select","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Filtered rows","content":{"application/json":{"schema":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"object"}},"count":{"type":"integer"},"total_matched":{"type":"integer"},"offset":{"type":"integer"},"limit":{"type":"integer"}}}}}},"402":{"description":"Payment required — include PAYMENT-SIGNATURE header"},"400":{"description":"Unknown column or file not queryable"}}}},"/tip":{"post":{"operationId":"tip","summary":"Send a tip","description":"x402-gated tip jar. Minimum $0.50 USDC.","tags":["Tip"],"parameters":[{"name":"amount_usdc","in":"query","required":true,"description":"Tip amount in USDC (minimum 0.50)","schema":{"type":"number"}}],"x-x402-payment-header":"PAYMENT-SIGNATURE","responses":{"200":{"description":"Tip recorded","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"amount_usdc":{"type":"string"},"message":{"type":"string"}}}}}},"402":{"description":"Payment required — include PAYMENT-SIGNATURE header"},"403":{"description":"No active registration"}}}},"/posts":{"get":{"operationId":"list-posts","summary":"List published blog posts","tags":["Blog"],"responses":{"200":{"description":"List of posts","content":{"application/json":{"schema":{"type":"object","properties":{"posts":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":"string"},"price_usdc":{"type":"string"},"published_at":{"type":"string"},"url":{"type":"string"}}}}}}}}},"404":{"description":"Resource not found"}}}},"/posts/{slug}":{"get":{"operationId":"get-post","summary":"View a blog post","description":"Free posts return full content. Priced posts return a paywall unless valid x402 payment is included.","tags":["Blog"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"x-x402-payment-header":"PAYMENT-SIGNATURE","responses":{"200":{"description":"Post content"},"402":{"description":"Payment required for paid post"},"404":{"description":"Post not found"}}}},"/courses":{"get":{"operationId":"list-courses","summary":"List published courses","tags":["Courses"],"responses":{"200":{"description":"List of courses","content":{"application/json":{"schema":{"type":"object","properties":{"courses":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"module_count":{"type":"integer"},"bundle_price_usdc":{"type":"string"},"published_at":{"type":"string"},"url":{"type":"string"}}}}}}}}},"404":{"description":"Resource not found"}}}},"/courses/{slug}":{"get":{"operationId":"get-course","summary":"Course overview","description":"Returns course metadata and module list. Purchase the bundle with x402 to unlock all modules.","tags":["Courses"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"x-x402-payment-header":"PAYMENT-SIGNATURE","responses":{"200":{"description":"Course overview with module list"},"402":{"description":"Payment required for bundle"},"404":{"description":"Course not found"}}}},"/courses/{slug}/modules/{mslug}":{"get":{"operationId":"get-course-module","summary":"View a course module","description":"Free modules are always served. Priced modules require x402 payment or a valid bundle/module token.","tags":["Courses"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"mslug","in":"path","required":true,"schema":{"type":"string"}}],"x-x402-payment-header":"PAYMENT-SIGNATURE","responses":{"200":{"description":"Module content"},"402":{"description":"Payment required"},"404":{"description":"Module not found"}}}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35":{"put":{"operationId":"update-resource","summary":"Update resource content","tags":["Manage Resource"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string"},"description":{"type":"string"},"md_content":{"type":"string"},"agent_card_json":{"type":"string"},"contact_form_enabled":{"type":"boolean"}}}}}}},"delete":{"operationId":"delete-resource","summary":"Delete listing","tags":["Manage Resource"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}}}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/renew":{"post":{"operationId":"renew-registration","summary":"Renew registration","tags":["Registration"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Renewed"},"402":{"description":"Payment required — include PAYMENT-SIGNATURE header"},"401":{"description":"Unauthorized"}},"x-x402-payment-header":"PAYMENT-SIGNATURE"}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/upgrade":{"post":{"operationId":"upgrade-registration","summary":"Upgrade free-tier to paid registration","tags":["Registration"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Upgraded"},"402":{"description":"Payment required — include PAYMENT-SIGNATURE header"},"401":{"description":"Unauthorized"}},"x-x402-payment-header":"PAYMENT-SIGNATURE"}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/data/{filename}":{"put":{"operationId":"upload-data-file","summary":"Upload a data file","tags":["Manage Data"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"filename","in":"path","required":true,"description":"Target filename (e.g. mydata.csv)","schema":{"type":"string"}},{"name":"price_usdc","in":"query","required":true,"schema":{"type":"number"}},{"name":"query_price_usdc","in":"query","schema":{"type":"number"}},{"name":"download_price_usdc","in":"query","schema":{"type":"number"}},{"name":"description","in":"query","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/octet-stream":{}}}}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/data":{"get":{"operationId":"list-data-files","summary":"List your data files","tags":["Manage Data"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}}}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/data/{file_id}":{"patch":{"operationId":"update-data-file","summary":"Update data file price or description","tags":["Manage Data"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"file_id","in":"path","required":true,"description":"Data file UUID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"price_usdc":{"type":"number"},"query_price_usdc":{"type":"number"},"download_price_usdc":{"type":"number"},"description":{"type":"string"}}}}}}},"delete":{"operationId":"delete-data-file","summary":"Delete a data file","tags":["Manage Data"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"file_id","in":"path","required":true,"description":"Data file UUID","schema":{"type":"string"}}]}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/services/{name}":{"put":{"operationId":"upsert-service","summary":"Register or update a service endpoint","tags":["Manage Services"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"name","in":"path","required":true,"description":"Service slug (a-z0-9 and hyphens)","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"endpoint_url":{"type":"string","format":"uri"},"price_usdc":{"type":"number"},"description":{"type":"string"},"timeout_seconds":{"type":"integer"},"input_type":{"type":"string"},"output_schema":{"type":"string"}},"required":["endpoint_url","price_usdc"]}}}}},"delete":{"operationId":"delete-service","summary":"Delete a service endpoint","tags":["Manage Services"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}]}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/services":{"get":{"operationId":"list-services","summary":"List your service endpoints","tags":["Manage Services"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}}}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/posts/{slug}":{"put":{"operationId":"upsert-post","summary":"Create or update a blog post","tags":["Manage Blog"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"md_content":{"type":"string"},"price_usdc":{"type":"number"},"published_at":{"type":"string","format":"date-time"}},"required":["title"]}}}}},"delete":{"operationId":"delete-post","summary":"Delete a blog post","tags":["Manage Blog"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}]}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/posts":{"get":{"operationId":"list-posts-operator","summary":"List all posts (operator view, includes drafts)","tags":["Manage Blog"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}}}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/courses/{slug}":{"put":{"operationId":"upsert-course","summary":"Create or update a course","tags":["Manage Courses"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"bundle_price_usdc":{"type":"number"},"published_at":{"type":"string","format":"date-time"}},"required":["title"]}}}}},"delete":{"operationId":"delete-course","summary":"Delete a course","tags":["Manage Courses"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}]}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/courses":{"get":{"operationId":"list-courses-operator","summary":"List all courses (operator view, includes drafts)","tags":["Manage Courses"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}}}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/courses/{slug}/modules/{mslug}":{"put":{"operationId":"upsert-module","summary":"Create or update a course module","tags":["Manage Courses"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"mslug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"md_content":{"type":"string"},"price_usdc":{"type":"number"},"order_index":{"type":"integer"},"published_at":{"type":"string","format":"date-time"}},"required":["title"]}}}}},"delete":{"operationId":"delete-module","summary":"Delete a course module","tags":["Manage Courses"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"mslug","in":"path","required":true,"schema":{"type":"string"}}]}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/contacts":{"get":{"operationId":"list-contacts","summary":"List contact form submissions","tags":["Contacts"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"parameters":[{"name":"limit","in":"query","schema":{"type":"integer"}},{"name":"before","in":"query","schema":{"type":"string","format":"date-time"}}]}},"/account/earnings":{"get":{"operationId":"get-earnings","summary":"View earnings balance and payout history","tags":["Account"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}}}},"/account/payout-address":{"post":{"operationId":"set-payout-address","summary":"Register EVM payout wallet address","tags":["Account"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]}}}}}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/vanity":{"post":{"operationId":"set-vanity-subdomain","summary":"Set a vanity subdomain","tags":["Domain & Vanity"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subdomain":{"type":"string"}},"required":["subdomain"]}}}}}},"/listing/2df20606-2c0f-41bf-93c6-289d4025ec35/byod":{"post":{"operationId":"setup-byod","summary":"Bring your own domain","tags":["Domain & Vanity"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string"}},"required":["domain"]}}}}},"get":{"operationId":"get-byod","summary":"Get BYOD domain status","tags":["Domain & Vanity"],"security":[{"BearerAuth":[]}],"servers":[{"url":"https://resolved.sh"}],"responses":{"200":{"description":"Success"},"401":{"description":"Unauthorized"},"404":{"description":"Not found"}}}}},"tags":[{"name":"Complete Website QA Audit Kit, single-buyer commercial license, Markdown edition"},{"name":"Free sample: three checks, a copyable bug-report template, and a fictional worked example"},{"name":"Blog"},{"name":"Courses"},{"name":"Tip"},{"name":"Manage Resource"},{"name":"Registration"},{"name":"Manage Data"},{"name":"Manage Services"},{"name":"Manage Blog"},{"name":"Manage Courses"},{"name":"Contacts"},{"name":"Account"},{"name":"Domain & Vanity"}],"x-tagGroups":[{"name":"Buyer API","tags":["Complete Website QA Audit Kit, single-buyer commercial license, Markdown edition","Free sample: three checks, a copyable bug-report template, and a fictional worked example","Blog","Courses","Tip"]},{"name":"Operator API","tags":["Manage Resource","Registration","Manage Data","Manage Services","Manage Blog","Manage Courses","Contacts","Account","Domain & Vanity"]}]}