Public inspection
Reads public pages and structured documentation. Shows declared capabilities, interfaces, costs, and gaps. A task check matches your goal against that evidence using rules.
Start with your product’s public evidence. Save the tasks your customers’ agents need to complete, check again after a change, and see what improved.
Try “onboarding,” “credits,” or “API.”
Your first inspection shows what an agent can learn from your public website and documentation. It gives you a record to check against the next release.
Use a domain such as tansohq.com. You do not need www. or https://. Review any quoted credit cost, then start the public inspection.
Review documented actions, interfaces, authentication requirements, and pricing. Open the source behind a finding. Missing evidence is a question to investigate.
For onboarding, try “Create a test workspace and make its first API call.” A task can also concern product evaluation or authorized paid use. Save the flow with its starting conditions and independent outcome check so you can repeat it after a change.
A saved flow keeps the task, starting conditions, and a verifiable outcome together. Give it a recognizable name, such as Find the API docs and retrieve a test project.
Save a concrete task, choose its onboarding path, and specify the response that proves success. Review the quoted cost before starting the agent.
Open the recorded requests, responses, and independent outcome check. A failed independent outcome check creates an issue. Infrastructure failures and uncertain outcomes remain separate.
Record what you changed with “Fix ready to retest,” then run the same flow again. A passing comparable attempt verifies the fix. Changed tasks, access profiles, or success checks establish a new baseline.
Repeat after a release, or enable daily or weekly checks when execution is configured. Each scheduled attempt uses the rate shown when you enable it. Runs occur while the server is online and stop when credits or valid test access are unavailable.
Tanso’s product direction covers three connected areas. Choose the ones relevant to the customer’s intended task; every task does not need to end in signup or purchase.
| Area | What success can mean |
|---|---|
| Web | The agent accurately evaluates the product against the buyer’s needs, including correctly ruling it out when it does not fit. |
| Onboarding | The agent sets up the chosen product and reaches first useful use, with appropriate authorization and human approval. |
| Monetization | The intended paid use or purchase completes correctly within the approved permissions and budget. |
The dashboard currently supports two steps toward understanding these experiences:
Reads public pages and structured documentation. Shows declared capabilities, interfaces, costs, and gaps. A task check matches your goal against that evidence using rules.
An agent attempts a saved task within approved HTTP interfaces. Tanso records its requests and checks the expected result independently. The run button shows any missing setup before execution.
Use an inspection to track whether agents can discover and understand your product. Use a real usability assessment to establish what happens during onboarding, authentication, or task completion. These are controlled checks of an agreed task; this dashboard does not passively record your customers’ agent traffic.
tanso-oss is separate, usable self-hosted monetization infrastructure. It is not installed by an inspection. The current runner does not authorize real purchases or provide production monetization execution.
Public inspection uses GET requests, follows a bounded set of first-party sources, and does not render JavaScript or read logged-in pages.
Every finding should lead back to its evidence. A report separates what was observed, what was extracted, and the rule used to reach a conclusion.
| Result | What it means |
|---|---|
| Documented / supported | Public evidence supports this finding. It does not mean a live agent completed the task. |
| Unknown | The sources read do not establish an answer. A failed task has not been demonstrated. |
| Needs a specific task | A request such as “Integrate this product” needs a concrete outcome before it can be checked. |
| Not run | No attempt was made. Public inspection leaves credential acquisition, execution, and recovery untested. |
| Passed | The agent reached a supported conclusion and the independent outcome check passed within the configured scope. |
| Task blocked | Recorded evidence supports a blocker to this task. Investigate it and verify the fix with a comparable run. |
| Waiting for approval | The attempt is paused. The overall task is incomplete until the required handoff finishes and the outcome is verified. |
| Not established | The attempt could not establish the outcome, for example because test access expired or execution infrastructure failed. This does not prove a product bug. |
| Evidence check failed | A particular documentation or discovery rule was not satisfied. Open the reason and source to understand its scope. |
A human handoff is not automatically a failure. If the intended task requires a person’s approval, check whether the agent explains the handoff and can resume afterward. Define that expectation in the flow’s success criteria.
“No requirement declared” means the inspected specification does not establish one. It proves neither that a credential is required nor that anonymous access works.
“Access without authentication documented” requires an explicit declaration. A live call is still needed to verify that access.
Choose a useful task that fits the configured execution scope, then define evidence that proves its outcome.
Task: Find the API documentation and retrieve the sample project with the existing test account.
Success criteria: The expected project is returned.
Outcome check: A GET request to the approved project URL returns status 200 and contains the expected sample project name.
{{runId}} in the task, result URL, and expected response text—for example, a test project named test-{{runId}}. Tanso substitutes a unique identifier for each attempt, including URL-encoded placeholders. Continuing a paused attempt keeps the same identifier. Checking that identifier in the result helps prevent an old project or earlier response from passing a new task. A generic 200 response or a project that already existed is insufficient evidence that this attempt created anything.| Starting path | What to configure |
|---|---|
| Public access | Use public pages or endpoints. No test account is required. |
| Existing test account | Select an operator-configured test profile. Keep passwords and API keys out of task descriptions. |
| Try before claiming | Begin with public or approved temporary access. State whether temporary use is sufficient or the result must remain available. |
The order of human approval, useful work, ownership, and payment varies by product. Tanso uses your task and starting conditions rather than requiring one universal signup sequence. Known access expiry is separate from whether the product worked.
If an expected human approval is needed, the run pauses and keeps its evidence. Complete the handoff in the product, then choose Approval done — continue. This resumes the same attempt and credit reservation. The outcome remains incomplete while waiting.
If execution or test access is unavailable, save the flow and use Talk to the team to arrange setup. A manual request remains Awaiting team setup; it starts no agent and charges no credits.
Credit weights and package prices are not published as a universal policy yet. Your workspace shows the active configuration. When metering is enabled, review the quoted cost and available balance before starting. A changed flow or quote must be reviewed again.
| Action | Credit treatment |
|---|---|
| New public inspection | The configured inspection cost, when metering is enabled. The workspace shows the amount. |
| Public task check | Creates a new inspection and uses the configured inspection cost, when enabled. |
| Save or edit a flow | No credit charge. |
| Execute a saved usability flow | The quoted attempt cost when metering is enabled. A verified unmet outcome can be a completed assessment. |
| Continue an expected human approval | Continues the same attempt and reservation; no second run charge. |
| Save a manual setup request | No credit charge. An agent has not started. |
| Scheduled usability check | The accepted per-attempt rate, shown before enabling the schedule. Daily permits up to 31 attempts per month; weekly up to 5. |
| View reports or compare saved inspections | No credit charge. |
When enabled, inspection credits are reserved during the check and charged on completion. A server-side inspection failure releases the reservation. An unknown finding is still part of a completed inspection. Live usability runs reserve their quote at launch; an incomplete assessment or execution infrastructure failure releases that reservation. Expected human approval keeps the reservation until the same attempt is continued or cancelled.
To arrange more credits, book time with the team. Booking does not itself purchase credits.
In local mode, the dashboard uses a workspace on this computer and opens directly. Local access does not create a hosted account.
A deployment can enable Clerk sign-in. When configured, your authenticated account owns its saved flows, requests, reports, and credit history. A remote deployment without configured authentication requires setup before account features can be used.
Opening these docs does not require signing in. Your product’s test access is separate from your Tanso account.
These examples use a local workspace at http://localhost:3131. For a deployment, use its origin and an authenticated session when required. Credit rules also apply to API inspections. Every route, its errors, and the inspection document are in the full API reference, generated from this deployment.
Returns a structured agent-ready/interface@1 document with source observations, capabilities, and unknowns.
curl http://localhost:3131/v1/interface \
-H 'Content-Type: application/json' \
-d '{"url":"tansohq.com"}'Returns agent-ready/journey@1. This is a rule-based evidence check; execution and recovery remain not_run.
curl http://localhost:3131/v1/evaluate \
-H 'Content-Type: application/json' \
-d '{
"url": "tansohq.com",
"task": "Read public product information"
}'This example covers onboarding. Keep the returned flow ID to quote and execute the same task after a release. This example uses a preconfigured test profile.
curl http://localhost:3131/v1/flows \
-H 'Content-Type: application/json' \
-d '{
"name": "Existing account to useful result",
"url": "https://yourproduct.com",
"task": "Retrieve the sample project with the configured test account",
"successCriteria": "The sample project is returned with its expected name",
"access": "test_account",
"profileId": "YOUR_TEST_PROFILE_ID",
"onboarding": {"path":"existing_account","humanPolicy":"pause","persistence":"temporary"},
"verification": {"url":"https://yourproduct.com/api/test-project","status":200,"contains":"sample-project"}
}'Request GET /v1/flows/YOUR_SAVED_FLOW_ID/quote. Review its availability, balance, cost, and fingerprint. Submit the returned fingerprint to start the reviewed version. Keep the same idempotency key when retrying an uncertain launch response.
curl http://localhost:3131/v1/flows/YOUR_SAVED_FLOW_ID/run \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: YOUR_UNIQUE_ATTEMPT_KEY' \
-d '{"fingerprint":"FINGERPRINT_FROM_REVIEWED_QUOTE"}'Read GET /v1/runs/:id for evidence, outcome, and comparison. Use POST /v1/runs/:id/resume after the expected approval, or POST /v1/runs/:id/cancel to stop. Use PATCH /v1/issues/:id with {"status":"fix_ready","note":"What changed"} before a retest.
GET /v1/execution reports runtime availability and safe test-profile metadata. The operator must configure a planner and approved access before execution. POST /v1/run-requests remains available for manual setup requests only.
Use GET /v1/flows for saved flows and GET /v1/runs for history. The interface schema and route reference describe the available API.