> ## Documentation Index
> Fetch the complete documentation index at: https://docs.influship.com/llms.txt
> Use this file to discover all available pages before exploring further.

# What's New

> Recent changes and updates to the Influship API

# What's New

<Update label="July 2026" tags={["Fix"]}>
  ## Search response type parity

  Generated TypeScript types now include the documented `confidence`, `low_confidence`, and structured `evidence` fields on search matches. Structured evidence stays in the same order as the plain-text `reasons` list.
</Update>

<Update label="July 2026" tags={["Fix"]}>
  ## Automatic recovery for raw Instagram requests

  Raw Instagram profile, post, and transcript requests now recover automatically from temporary source-platform interruptions. Confirmed missing posts, missing profiles, and private profiles continue to return their documented errors.

  Batch post and transcript requests now stop queued upstream work when the calling request expires or disconnects. Batch results remain in the same order as the requested shortcodes.
</Update>

<Update label="July 2026" tags={["Fix"]}>
  ## Raw Instagram post & transcript reliability

  We resolved an issue where single Instagram post lookups and video transcripts could return errors after a change on the source platform's side. Individual post lookup, batch post lookup, and the transcript endpoints now return their documented response shapes consistently across the REST API, MCP tools, and no-code actors.

  We also hardened how transient upstream hiccups surface on these endpoints: a temporary soft-block from the source platform is now returned as a retryable `429`/`503` with `Retry-After` (matching our other live endpoints) instead of a generic `500`. Handle it with the same backoff you use for other live data — see [Error Handling](/guides/error-handling).

  Affected endpoints:

  * `GET /v1/raw/instagram/post/{shortcode}`
  * `POST /v1/raw/instagram/posts`
  * `GET /v1/raw/instagram/transcript/{shortcode}`
  * `POST /v1/raw/instagram/transcripts`
</Update>

<Update label="May 2026" tags={["Feature"]}>
  ## Raw Instagram post lookup and transcripts

  You can now look up an individual Instagram post by shortcode and fetch video transcripts directly from the raw API. These endpoints return fresh raw post data, including fields that are not guaranteed on cached post-list responses, such as coauthors, paid partnership flags, tagged users, product mentions, display resources, video versions, music attribution, and location data.

  Available endpoints:

  * `GET /v1/raw/instagram/post/{shortcode}` for one post
  * `POST /v1/raw/instagram/posts` for up to 20 posts in one request
  * `GET /v1/raw/instagram/transcript/{shortcode}` for one video post transcript
  * `POST /v1/raw/instagram/transcripts` for up to 10 video post transcripts in one request

  Transcript responses include the post lookup payload on cache misses. Cached transcript responses omit `post`; call the post lookup endpoint separately when you need post metadata alongside a cached transcript.

  We've also added two Apify actors for no-code and workflow use cases:

  * Instagram Post Lookup
  * Instagram Post Transcripts

  Both actors use your Influship API key and mirror the raw API response shapes.
</Update>

<Update label="May 2026" tags={["Feature"]}>
  ## MCP Server

  The Influship MCP server launched at `mcp.influship.com/mcp` with eight typed tools. Connect any [Model Context Protocol](https://modelcontextprotocol.io)-compatible client, including Claude Desktop, Claude Code, Cursor, Windsurf, ChatGPT Connectors, and VS Code. The [MCP Server guide](/guides/mcp-server) lists the current 14-tool surface.

  ```bash theme={null}
  claude mcp add influship --transport http https://mcp.influship.com/mcp --header "X-API-Key: YOUR_KEY"
  ```

  Or paste the JSON config into your client's MCP settings panel:

  ```json theme={null}
  {
    "mcpServers": {
      "influship": {
        "url": "https://mcp.influship.com/mcp",
        "headers": { "X-API-Key": "YOUR_KEY" }
      }
    }
  }
  ```

  Auth, billing, and rate limits are all the same as the REST API — same key, same tier, same dashboard. There's no separate "MCP plan" to set up.

  See the [MCP Server guide](/guides/mcp-server) for the full setup walkthrough and the [tool reference](/api-reference) (each REST endpoint with an MCP equivalent now shows the corresponding tool name).
</Update>

<Update label="May 2026" tags={["Feature"]}>
  ## Pay per request with x402 (no API key needed)

  Anonymous AI agents can now call supported paid Influship endpoints via the [x402 payment protocol](https://www.x402.org). The agent makes a request without an `X-API-Key`, gets a `402 Payment Required` response with a USDC-on-Base price, signs a payment, and retries without signup or billing setup.

  ```typescript theme={null}
  import { x402Client, wrapFetchWithPayment } from '@x402/fetch';
  import { registerExactEvmScheme } from '@x402/evm/exact/client';
  import { privateKeyToAccount } from 'viem/accounts';

  const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY as `0x${string}`);
  const client = new x402Client();
  registerExactEvmScheme(client, { signer });

  const fetchWithPayment = wrapFetchWithPayment(fetch, client);
  const response = await fetchWithPayment('https://api.influship.com/v1/search', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ query: 'fitness creators in NYC', limit: 25 }),
  });
  ```

  Influship endpoints are listed in the [x402 Bazaar](https://docs.cdp.coinbase.com/x402/bazaar) for programmatic discovery. See the [x402 guide](/guides/x402) for pricing and quickstart with [AgentCash](https://agentcash.dev) or the Coinbase SDK.
</Update>

<Update label="May 2026" tags={["Feature"]}>
  ## Pay with MPP (Stripe cards or USDC on Tempo)

  The [Machine Payments Protocol](https://mpp.dev/overview) — Stripe and Tempo's open standard for HTTP-native machine-to-machine payments — coexists with x402 on the same endpoints. Pay per request via Stripe SPT (Shared Payment Tokens, USD via card) or USDC on Tempo. Pick whichever rail your client supports; the API accepts both.

  ```typescript theme={null}
  import { Mppx, tempo } from 'mppx/client';
  import { privateKeyToAccount } from 'viem/accounts';

  const account = privateKeyToAccount(process.env.TEMPO_PRIVATE_KEY as `0x${string}`);

  const mppx = Mppx.create({
    methods: [tempo({ account })],
  });

  const response = await mppx.fetch('https://api.influship.com/v1/search', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ query: 'fitness creators in NYC', limit: 25 }),
  });
  ```

  See the [MPP guide](/guides/mpp) for both rails. Same pricing as x402.
</Update>

<Update label="March 2026" tags={["Feature"]}>
  ## Weighted lookalike seeds

  Lookalike search now accepts up to 10 seeds with individual weights (0-1). Higher weights make the API lean more heavily on that seed's characteristics when ranking results.

  This is particularly useful when you have campaign performance data — weight your best performers higher and the API finds more creators who skew toward that profile.

  ```json theme={null}
  {
    "seeds": [
      { "platform": "instagram", "username": "top_performer", "weight": 1.0 },
      { "platform": "instagram", "username": "decent_creator", "weight": 0.5 }
    ],
    "limit": 25
  }
  ```

  See [Lookalikes](/concepts/lookalikes) for weighting strategies.
</Update>

<Update label="March 2026" tags={["Improvement"]}>
  ## Search billing and rate limit alignment

  Search billing now cleanly separates the base fee (AI inference cost) from the per-creator delivery fee. Rate limit headers are consistent across all endpoints and accurately reflect credit consumption.
</Update>

<Update label="February 2026" tags={["Feature"]}>
  ## Campaign match endpoint

  `POST /v1/creators/match` scores creators against a campaign brief. Each result includes a decision (`good`, `neutral`, or `avoid`), a numeric score, and human-readable reasoning.

  The `intent.query` field (500 chars) describes the campaign. The optional `intent.context` field (2,000 chars) adds background — target demographics, content format preferences, brand guidelines.

  See [Match Reasons](/concepts/match-reasons) for how to interpret the output.
</Update>

<Update label="February 2026" tags={["Improvement"]}>
  ## Credit-based rate limiting with trust tiers

  Rate limits are now enforced using credit budgets instead of simple request counts. Heavier endpoints consume more budget than lighter ones. Trust tiers increase your limits based on lifetime spend — and never downgrade.

  See [Rate Limits & Tiers](/concepts/quotas-and-limits) for the full tier table.
</Update>

<Update label="February 2026" tags={["Feature"]}>
  ## TypeScript SDK via Stainless

  The official TypeScript SDK is available on npm. Generated from the OpenAPI spec by [Stainless](https://stainlessapi.com), it provides typed methods, request/response models, and error classes like `RateLimitError` and `APIError`.

  ```bash theme={null}
  npm install influship
  ```

  See the [SDK guide](/sdks) for setup and common operations.
</Update>

<Update label="January 2026" tags={["Feature"]}>
  ## Stripe usage billing

  API usage is now billed through Stripe with automatic invoice generation. Credits accumulate until your trust tier's billing threshold is reached, then an invoice is created. Payment upgrades your tier and increases rate limits.

  See [Pricing](/concepts/pricing) for credit costs and [Rate Limits & Tiers](/concepts/quotas-and-limits) for threshold details.
</Update>
