Placement API
Buy SEO link placements across every marketplace: verified domains, held prices, one invoice.
Open source Repository Open in the app JSON README (API)
About
Buy SEO link placements across every marketplace: verified domains, held prices, one invoice.
Details
- Kind
- MCP servers
- Topic
- Finance & crypto
- Publisher
- futurebets
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 1.0.0
- Last push
- 2026-09-07T23:02:37Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-09-07 23:04:22
- Updated
- 2026-09-07 23:04:22
- Origin id
io.github.futurebets/placement-api
README
# Placement API
**Buy SEO link placements across every marketplace from one API or MCP server.**
Named, inspectable domains with live prices, independent verification, a survival record for every publisher we have bought from, and one invoice — paid with prepaid credits.
- Website: https://placementapi.com · For agents: https://placementapi.com/agents · API reference: https://placementapi.com/api
- MCP endpoint: `https://api.placementapi.com/mcp` (streamable HTTP, Bearer API key)
- OpenAPI: https://api.placementapi.com/openapi.json · Field semantics: https://api.placementapi.com/v1/schema
- Live market data: https://placementapi.com/data · Prices by type, DR and topic: https://placementapi.com/pricing
This repository holds the **TypeScript client** (`sdk/`, published to npm as [`placementapi`](https://www.npmjs.com/package/placementapi)) and the MCP registry manifest (`server.json`). The service itself is not open source.
## Connect the MCP server
```bash
# Claude Code
claude mcp add --transport http placement-api https://api.placementapi.com/mcp \
--header "Authorization: Bearer $PLACEMENT_KEY"
```
```json
// Cursor / Windsurf / any host that takes a JSON config
{ "mcpServers": { "placement_api": { "url": "https://api.placementapi.com/mcp",
"headers": { "Authorization": "Bearer pk_live_…" } } } }
```
Claude.ai / ChatGPT: Settings → Connectors → add custom connector with the URL above and the `Authorization` header.
Get a key at https://app.placementapi.com/dashboard. A **read** key can search, plan and compare; an **order** key can spend credits.
### Tools
| Tool | What it does |
|---|---|
| `search_placements` | Search ~550k priced placements deduplicated by domain, with verification, score and price plausibility on every row |
| `plan_links` | A brief in (links, topic, DR, budget, strategy) → a costed plan of named domains, each with `why`, held at price for four hours |
| `compare_domain` | Everything about one publisher: listings and spread, verification, web-graph, survival, outcomes, Placement Score, market reference |
| `target_profile` / `gap_map` | Your page's backlink profile and the competitor links you can reproducibly buy, priced |
| `keyword_winners` | What the sites that rank for a keyword look like, and what they buy |
| `place_order` · `submit_content` · `write_it_for_me` | Order at the held price; supply the article, let the publisher write it, or have it written |
| `list_orders` · `campaign_status` · `order_outcome` | Fulfilment, live checks and observed rank movement (observed, never attributed) |
| `standing_orders` · `create_standing_order` | Recurring plans; auto-placement can only be enabled from the dashboard |
| `check_balance` · `cancel_order` | |
## Use the SDK
```bash
npm i placementapi
```
```ts
import { PlacementApi } from "placementapi";
const api = new PlacementApi({ apiKey: process.env.PLACEMENT_KEY! });
const quote = await api.quote({ links: 5, topic: "finance", dr_min: 50, strategy: "safest" });
for (const l of quote.lines) console.log(l.domain, l.price_credits, l.verification, l.why.join(" · "));
```
See [`sdk/README.md`](sdk/README.md).
## Things worth knowing
- **Credits are US cents.** Prices on a quote are held for four hours; order with the `quote_id` to pay the held price.
- **`verification`** says whether a domain's authority is real: `ok`, `suspect` (high link authority with no organic footprint — what a link farm looks like) or `unverified`. `quality_reasons` names which of five tests fired. Method: https://placementapi.com/research/quality-methodology
- **Suppliers are never identified.** You see counts and spreads, never who. That is a product rule, not a gap.
- **`why[]`** on every line is the factual basis for the pick, in sentences an agent can repeat.
Support: hello@placementapi.com · Terms: https://placementapi.com/terms