Credential Recipe Research
A recipe is only as good as the documentation it came from. This is a
procedure, not guidance: execute every step with the research tool and keep
only findings you can point to on a fetched page. Guessed URLs are how users
end up on the wrong page with a key that can't be verified.
Inputs: the service name and the API host(s) the workflow's nodes call.
1. Auth scheme (template)
Fetch the provider's authentication docs — research(action="web-search")
with "<service> API authentication", then fetch-url the best docs hit.
Record the scheme EXACTLY as documented: header name, prefix word, casing
(Authorization: Key {{api_key}} vs Bearer {{api_key}} vs a custom header
like xi-api-key). If the documented auth is basic, digest, or OAuth, stop:
that is not expressible as a template — use the matching generic type instead
(see the workflow-builder skill's credential ladder).
2. Key page (docsUrl)
Find where a logged-in user CREATES or COPIES the key. The URL is not shown
in the form — the AI Assistant help thread presents it as THE place to get
the value, so a wrong URL sends the user to a dead end with full confidence:
- Search
"<service> dashboard API keys", and scan the fetched auth docs for
phrases like "get your key from", "Dashboard → API Keys", "console",
"settings".
- The answer normally lives on an app/console/dashboard host —
console.apify.com/settings/integrations,
elevenlabs.io/app/settings/api-keys, replicate.com/account/api-tokens,
app.tavily.com/home — not under /docs, /reference, or
/documentation.
- Accept a docs-domain URL only when the fetched page shows keys are actually
issued there (some ReadMe-style logged-in portals do).
- NEVER construct a dashboard path by analogy (
/account/api-keys,
/dashboard/keys, …). Dashboards are apps behind a login: a fetch answers
200 for any invented route, so the path cannot be verified by fetching.
Emit a deep dashboard URL only when it appears VERBATIM on a page you
fetched; when the docs only describe navigation ("Dashboard → API Keys")
without a literal URL, use the dashboard/app root they reference — a
shallower real page beats a deeper invented one.
- Nothing conclusive after both steps → omit docsUrl. Never pass off the API
reference as the key page.
3. Verification endpoint (testUrl)
Find a documented, side-effect-free GET that rejects a bad key with 401/403.
Check the API reference in this order and stop at the first qualifying hit:
- Account/profile/me endpoints —
/v1/account, /v2/users/me, /v1/user.
- Usage/quota endpoints — e.g. fal's
/v1/models/usage, Tavily's /usage.
- List/discovery endpoints —
/v1/templates, /v1/models, /v1/voices.
Rules, all mandatory:
- The endpoint must appear on a page you fetched — never construct a path by
analogy with other APIs.
- Never one of the workflow's own endpoints, never a resource or action URL,
never anything that can trigger billable work. Setup rejects workflow-URL
collisions, and the probe reports unexpected statuses as "could not be
verified" — an invented URL only costs the user trust.
- Skip endpoints that answer 2xx regardless of the key: auth-optional
endpoints (Pexels search) or services that signal auth errors in the
response body (Apollo's
auth/health, TikTok) — a status probe cannot
verify through them.
- Nothing qualifies → omit testUrl. The credential saves fine and the card
honestly reports it could not be verified, which beats a false green.
4. Compose
Fill credentialHints (field list and example in the post-build-flow skill)
from the findings above only. suggestedName names the service ("Apify API
Token"); never include a real secret.
1---2name: credential-recipe-research3description: Lookup procedure for Simplified Custom Auth recipe fields — sources the auth template, the key-issuing docsUrl and an auth-rejecting testUrl from the provider's real documentation instead of memory. Load before composing credentialHints for a service without a dedicated credential type (the post-build-flow setup step), or when asked to fix a recipe whose template, key page or test endpoint is wrong.4---5
6# Credential Recipe Research
7
8A recipe is only as good as the documentation it came from. This is a
9procedure, not guidance: execute every step with the `research` tool and keep
10only findings you can point to on a fetched page. Guessed URLs are how users
11end up on the wrong page with a key that can't be verified.
12
13Inputs: the service name and the API host(s) the workflow's nodes call.
14
15## 1. Auth scheme (template)
16
17Fetch the provider's authentication docs — `research(action="web-search")`
18with `"<service> API authentication"`, then `fetch-url` the best docs hit.
19Record the scheme EXACTLY as documented: header name, prefix word, casing
20(`Authorization: Key {{api_key}}` vs `Bearer {{api_key}}` vs a custom header
21like `xi-api-key`). If the documented auth is basic, digest, or OAuth, stop:
22that is not expressible as a template — use the matching generic type instead
23(see the workflow-builder skill's credential ladder).
24
25## 2. Key page (docsUrl)
26
27Find where a logged-in user CREATES or COPIES the key. The URL is not shown
28in the form — the AI Assistant help thread presents it as THE place to get
29the value, so a wrong URL sends the user to a dead end with full confidence:
30
31- Search `"<service> dashboard API keys"`, and scan the fetched auth docs for
32 phrases like "get your key from", "Dashboard → API Keys", "console",
33 "settings".
34- The answer normally lives on an app/console/dashboard host —
35 `console.apify.com/settings/integrations`,
36 `elevenlabs.io/app/settings/api-keys`, `replicate.com/account/api-tokens`,
37 `app.tavily.com/home` — not under `/docs`, `/reference`, or
38 `/documentation`.
39- Accept a docs-domain URL only when the fetched page shows keys are actually
40 issued there (some ReadMe-style logged-in portals do).
41- NEVER construct a dashboard path by analogy (`/account/api-keys`,
42 `/dashboard/keys`, …). Dashboards are apps behind a login: a fetch answers
43 200 for any invented route, so the path cannot be verified by fetching.
44 Emit a deep dashboard URL only when it appears VERBATIM on a page you
45 fetched; when the docs only describe navigation ("Dashboard → API Keys")
46 without a literal URL, use the dashboard/app root they reference — a
47 shallower real page beats a deeper invented one.
48- Nothing conclusive after both steps → omit docsUrl. Never pass off the API
49 reference as the key page.
50
51## 3. Verification endpoint (testUrl)
52
53Find a documented, side-effect-free GET that rejects a bad key with 401/403.
54Check the API reference in this order and stop at the first qualifying hit:
55
561. Account/profile/me endpoints — `/v1/account`, `/v2/users/me`, `/v1/user`.
572. Usage/quota endpoints — e.g. fal's `/v1/models/usage`, Tavily's `/usage`.
583. List/discovery endpoints — `/v1/templates`, `/v1/models`, `/v1/voices`.
59
60Rules, all mandatory:
61
62- The endpoint must appear on a page you fetched — never construct a path by
63 analogy with other APIs.
64- Never one of the workflow's own endpoints, never a resource or action URL,
65 never anything that can trigger billable work. Setup rejects workflow-URL
66 collisions, and the probe reports unexpected statuses as "could not be
67 verified" — an invented URL only costs the user trust.
68- Skip endpoints that answer 2xx regardless of the key: auth-optional
69 endpoints (Pexels search) or services that signal auth errors in the
70 response body (Apollo's `auth/health`, TikTok) — a status probe cannot
71 verify through them.
72- Nothing qualifies → omit testUrl. The credential saves fine and the card
73 honestly reports it could not be verified, which beats a false green.
74
75## 4. Compose
76
77Fill `credentialHints` (field list and example in the post-build-flow skill)
78from the findings above only. `suggestedName` names the service ("Apify API
79Token"); never include a real secret.