# How Purrkey works The tool tells you what it can do. A Run records what you asked for, what happened and what you paid. ## Find a tool that fits Browse the public tool catalog or describe a capability with discover. Candidates include match reasons and limitations. A recommendation does not execute a tool or guarantee that its data answers your question. Find Amazon under E-commerce & reviews, or search for a brand such as Airbnb or TikTok. Open its page to compare endpoints and see which provider supplies each one Inspect the selected tool before calling it. Its inputSchema, outputSchema, behavior, delivery and current price define the request you can make. Tool availability and prices come from the live catalog. - [Browse tools](/tools): Search platforms and endpoints as you type, then check published prices. ## Create a Run A Run is one requested tool call. Save the tool and price revisions, input, idempotency key and maximum charge before submitting. Account-balance calls use funding.mode = balance. A call can finish immediately or remain in progress. Keep the returned runId in either case. Tools described as synchronous can still return an accepted response while queued. ## Read the result and bill Execution status, result availability and billing are separate facts. Use result.status to decide whether output is available, and billing to read the charge. An available output can be JSON null. Retrieving the original Run does not buy another call. A new request with a new idempotency key represents a new task. A timeout is not evidence of cancellation or a refund. - [Runs and recovery](/docs/guides/runs): Handle pending calls and lost responses without duplicate purchases.