Building with Influship
Influship is a creator-discovery API: semantic search, match scoring, and lookalike
discovery across Instagram and YouTube creators, billed by credits. This skill helps you
write correct integration code against the TypeScript SDK (npm influship) — and the
raw REST API when you are not on TypeScript.
Core principles (read first)
- Don't trust training data — verify against the installed package and live docs. The
API and SDK evolve. For the version a developer actually has installed, the source of
truth is
node_modules/influship/api.md and the bundled .d.ts type definitions —
these are never stale relative to their code. Never guess SDK bindings (method names,
params, response fields); if unsure, read the installed types or fetch a live source.
See references/live-sources.md.
- Default to the latest SDK version. Don't pin an old version in examples unless the
user asks.
- Server-side only. The SDK runs on Node 20+, Deno, Bun, Cloudflare Workers, and Vercel
Edge — not browsers or React Native (your API key must never ship to a client).
- Be credit-aware. Calls cost credits. Bound
limit, cache profile lookups, and don't
over-paginate. See references/credits-and-cost.md.
Get set up
- Get an API key from the developer dashboard: https://developers.influship.com
- Install the SDK:
npm install influship
- Set
INFLUSHIP_API_KEY in your environment (e.g. .env, never committed).
- Instantiate the client (server-side):
import Influship from 'influship';
const client = new Influship({
apiKey: process.env['INFLUSHIP_API_KEY'], // default; can be omitted
});
const health = await client.health.check(); // { ok: true, timestamp: ... }
Useful env vars: INFLUSHIP_API_KEY, INFLUSHIP_BASE_URL (override base URL),
INFLUSHIP_LOG (debug|info|warn|error|off).
Operations cheat-sheet (cached: 2026-05-29 — verify params against installed types)
| Call |
Use it when |
client.search.create({ query, limit?, platforms?, creator_kinds?, filters? }) |
Discovery by intent — natural-language creator search. Returns search_id + first page. |
client.search.retrieve(id, { cursor?, limit? }) |
Page through the results of a prior search (paginated). |
client.creators.match({ creators, intent }) |
Score creators you already have against an intent → good/neutral/avoid + reasons. |
client.creators.lookalike({ seeds, filters?, limit? }) |
Expand from seed creators to similar ones (paginated, async-iterable). |
client.creators.autocomplete({ q, limit?, platform?, scope? }) |
Resolve a partial name/handle to creator(s). |
client.creators.retrieve(id, { include? }) |
Full creator profile (ai_summary, themes, brand_alignment, key_facts; include: ['profiles']). |
client.profiles.get(username, { platform }) |
Cached per-platform metrics for one handle. |
client.profiles.lookup({ ... }) |
Batch profile lookup (see installed types for exact params). |
client.posts.list({ ... }) |
List posts (paginated; see installed types for exact params). |
client.raw.instagram.getProfile(username, {...}) |
Live (uncached) Instagram profile scrape. |
client.raw.youtube.getChannel / getChannelTranscripts / getTranscript / search |
Live YouTube channel, transcripts, and search. |
client.health.check() |
Liveness check (no credits). |
Which endpoint when (the #1 confusion):
- Have an intent but no creators yet →
search.create.
- Have a list of creators and want to know if they fit →
creators.match.
- Have a few great creators and want more like them →
creators.lookalike.
- Have a handle/name and need the canonical creator/profile →
autocomplete then creators.retrieve / profiles.get.
Exact, current params and response shapes live in references/operations.md (and ultimately
in the installed types / OpenAPI — see references/live-sources.md).
Best-practice pitfalls
- Pagination: list methods are auto-paginating with
for await … of. Don't hand-roll
cursors. See references/pagination.md.
- Errors: catch
Influship.APIError subclasses; handle RateLimitError (429) and
AuthenticationError (401) explicitly. Retries (2×, backoff) and timeouts (60s) are
built in and configurable. See references/errors-and-reliability.md.
- Credits: see
references/credits-and-cost.md before writing loops.
- Non-TypeScript: call the REST API directly — see
references/rest-api.md.
Reading guide
- Building a real flow end-to-end →
references/recipes.md
- Exact method params / response fields →
references/operations.md
- Paginating large result sets →
references/pagination.md
- Error handling / retries / rate limits →
references/errors-and-reliability.md
- Cost control →
references/credits-and-cost.md
- curl / fetch / Python →
references/rest-api.md
- Anything that might be out of date →
references/live-sources.md
Boundary
This skill is for writing integration code. To let an agent call the Influship API
live during a session, use the Influship MCP server (a separate skill / setup); this skill
does not depend on the MCP being connected.
Verify your work
Before declaring an integration done, run a real call (start with client.health.check(),
then the actual endpoint with a tiny limit) and confirm the response shape matches what
your code expects.
Source: Influship/influship-skills — distributed by TomeVault.
1---2name: influship-influship-skills-building-with-influship3description: Building with Influship4---56# Building with Influship78Influship is a creator-discovery API: semantic search, match scoring, and lookalike9discovery across Instagram and YouTube creators, billed by credits. This skill helps you10write correct integration code against the **TypeScript SDK** (npm `influship`) — and the11**raw REST API** when you are not on TypeScript.1213## Core principles (read first)14151. **Don't trust training data — verify against the installed package and live docs.** The16 API and SDK evolve. For the version a developer actually has installed, the source of17 truth is `node_modules/influship/api.md` and the bundled `.d.ts` type definitions —18 these are never stale relative to their code. **Never guess SDK bindings** (method names,19 params, response fields); if unsure, read the installed types or fetch a live source.20 See `references/live-sources.md`.212. **Default to the latest SDK version.** Don't pin an old version in examples unless the22 user asks.233. **Server-side only.** The SDK runs on Node 20+, Deno, Bun, Cloudflare Workers, and Vercel24 Edge — **not** browsers or React Native (your API key must never ship to a client).254. **Be credit-aware.** Calls cost credits. Bound `limit`, cache profile lookups, and don't26 over-paginate. See `references/credits-and-cost.md`.2728## Get set up29301. Get an API key from the developer dashboard: **https://developers.influship.com**312. Install the SDK:32 ```sh33 npm install influship34 ```353. Set `INFLUSHIP_API_KEY` in your environment (e.g. `.env`, never committed).364. Instantiate the client (server-side):37 ```ts38 import Influship from 'influship';3940 const client = new Influship({41 apiKey: process.env['INFLUSHIP_API_KEY'], // default; can be omitted42 });4344 const health = await client.health.check(); // { ok: true, timestamp: ... }45 ```4647Useful env vars: `INFLUSHIP_API_KEY`, `INFLUSHIP_BASE_URL` (override base URL),48`INFLUSHIP_LOG` (`debug|info|warn|error|off`).4950## Operations cheat-sheet (cached: 2026-05-29 — verify params against installed types)5152| Call | Use it when |53|------|-------------|54| `client.search.create({ query, limit?, platforms?, creator_kinds?, filters? })` | **Discovery by intent** — natural-language creator search. Returns `search_id` + first page. |55| `client.search.retrieve(id, { cursor?, limit? })` | Page through the results of a prior search (paginated). |56| `client.creators.match({ creators, intent })` | **Score creators you already have** against an intent → `good`/`neutral`/`avoid` + reasons. |57| `client.creators.lookalike({ seeds, filters?, limit? })` | **Expand** from seed creators to similar ones (paginated, async-iterable). |58| `client.creators.autocomplete({ q, limit?, platform?, scope? })` | Resolve a partial name/handle to creator(s). |59| `client.creators.retrieve(id, { include? })` | Full creator profile (ai_summary, themes, brand_alignment, key_facts; `include: ['profiles']`). |60| `client.profiles.get(username, { platform })` | Cached per-platform metrics for one handle. |61| `client.profiles.lookup({ ... })` | Batch profile lookup (see installed types for exact params). |62| `client.posts.list({ ... })` | List posts (paginated; see installed types for exact params). |63| `client.raw.instagram.getProfile(username, {...})` | Live (uncached) Instagram profile scrape. |64| `client.raw.youtube.getChannel / getChannelTranscripts / getTranscript / search` | Live YouTube channel, transcripts, and search. |65| `client.health.check()` | Liveness check (no credits). |6667**Which endpoint when (the #1 confusion):**68- Have an *intent* but no creators yet → `search.create`.69- Have a *list of creators* and want to know if they fit → `creators.match`.70- Have a few *great* creators and want *more like them* → `creators.lookalike`.71- Have a *handle/name* and need the canonical creator/profile → `autocomplete` then `creators.retrieve` / `profiles.get`.7273Exact, current params and response shapes live in `references/operations.md` (and ultimately74in the installed types / OpenAPI — see `references/live-sources.md`).7576## Best-practice pitfalls7778- **Pagination:** list methods are auto-paginating with `for await … of`. Don't hand-roll79 cursors. See `references/pagination.md`.80- **Errors:** catch `Influship.APIError` subclasses; handle `RateLimitError` (429) and81 `AuthenticationError` (401) explicitly. Retries (2×, backoff) and timeouts (60s) are82 built in and configurable. See `references/errors-and-reliability.md`.83- **Credits:** see `references/credits-and-cost.md` before writing loops.84- **Non-TypeScript:** call the REST API directly — see `references/rest-api.md`.8586## Reading guide8788- Building a real flow end-to-end → `references/recipes.md`89- Exact method params / response fields → `references/operations.md`90- Paginating large result sets → `references/pagination.md`91- Error handling / retries / rate limits → `references/errors-and-reliability.md`92- Cost control → `references/credits-and-cost.md`93- curl / fetch / Python → `references/rest-api.md`94- Anything that might be out of date → `references/live-sources.md`9596## Boundary9798This skill is for **writing integration code**. To let an agent *call* the Influship API99live during a session, use the Influship MCP server (a separate skill / setup); this skill100does not depend on the MCP being connected.101102## Verify your work103104Before declaring an integration done, run a real call (start with `client.health.check()`,105then the actual endpoint with a tiny `limit`) and confirm the response shape matches what106your code expects.107108---109> Source: [Influship/influship-skills](https://github.com/Influship/influship-skills) — distributed by [TomeVault](https://tomevault.io).110<!-- tomevault:4.0:skill_md:2026-06-15 -->