# Utility Estimate Cost API (https://www.socialcrawl.dev/platforms/utility/estimate) > Quote what a call will cost before you make it: the exact credits the API holds up front (expected_max, the most it can cost), the lowest possible charge for a successful call (expected_min; unused hold is refunded), the formula, and the params that change the price (levers). The quote comes from the same pricing the API bills with, so it never differs from the real charge. Pass the endpoint as id and its params on this same URL as you would send them (id=tiktok/post/comments&url=...&label=spam), or URL-encoded in params (a query string or a JSON object), which wins on a conflict; a batch endpoint takes its JSON body as body. Add items=N to turn N rows into pages on an endpoint with a known page size. For several calls at once, pass plan: base64url JSON of {calls:[{id, params, repeat}], fan_out:[{from, each, to}]}, or the steps of a utility/plan answer as they are, for per-call and total holds. A request the API would reject comes back valid:false at 0 credits. Nothing is fetched. Free to call. TL;DR: `GET /v1/utility/estimate` costs Free (0 credits) and returns SocialCrawl's unified JSON schema. Single x-api-key auth, 100 free credits on signup. ## Parameters | Parameter | Required | Description | | --- | --- | --- | | `id` | no | The endpoint to price, as platform/resource (tiktok/post/comments) or its /v1 path, optionally with its query string. Provide this or plan | | `method` | no | HTTP method, when the endpoint takes more than one. Defaults to GET when offered (GET \| POST \| PATCH \| DELETE) | | `params` | no | The endpoint's own params, as a URL-encoded query string (url=...&label=spam) or a JSON object. Optional: they may also be sent directly on this URL; these win on a conflict | | `body` | no | A batch endpoint's JSON body, as JSON or base64url JSON (for example {"urls":[...]} for prism/post-stats) | | `items` | no | Rows you want. Converted to pages with the endpoint's verified page size; warns pages_unknown when it has none | | `plan` | no | Several calls at once, as base64url JSON (or JSON): {calls:[{id, params, repeat?, items?}], fan_out?:[{from, each, to}]}, or a utility/plan answer's steps. Provide this or id | ## Code example ```bash curl -G "https://www.socialcrawl.dev/v1/utility/estimate" \ --data-urlencode "id=tiktok/post/comments" \ -H "x-api-key: sc_YOUR_API_KEY" ``` See the full Utility API: https://www.socialcrawl.dev/platforms/utility ## Pricing - Standard endpoints: 1 credit per call - Advanced endpoints: 5 credits per call - Premium endpoints: 10 credits per call - 100 free credits on signup, no credit card required. Cached responses cost 0 credits. Credit packs never expire. - Full pricing: https://www.socialcrawl.dev/pricing