Authentication
Every authenticated Findip API request requires your API key in the X-API-Key header.
API key format
To start using the API, contact us and we will guide you through setting up a contract. API keys start with pmk_live_. Sign in with the billing account of your metered API contract and issue or revoke keys yourself on the API keys page of the dashboard.
- The full key is shown only once, right after it is issued. We do not keep the full value either, so copy it and store it somewhere safe at that moment. A lost key cannot be shown again — issue a new one and revoke the old one.
- After issuance, the dashboard shows only the key's name and prefix (
pmk_live_…). - On a prepaid contract, keys can be issued once your first top-up has gone through.
Important
Keep your API key secure. Don't expose it in client-side code, public repositories, or browser requests. Use server-side env vars or a server-side proxy.
Sending authenticated requests
Include your API key in the X-API-Key header (no Bearer prefix):
curl -X POST https://api.findip.ai/api/v1/search/semantic \
-H "X-API-Key: pmk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{"query": "semiconductor etching process", "top_k": 5}'import requests
response = requests.post(
"https://api.findip.ai/api/v1/search/semantic",
headers={
"X-API-Key": "pmk_live_your_api_key",
"Content-Type": "application/json",
},
json={
"query": "semiconductor etching process",
"top_k": 5,
},
)
data = response.json()const response = await fetch("https://api.findip.ai/api/v1/search/semantic", {
method: "POST",
headers: {
"X-API-Key": "pmk_live_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
query: "semiconductor etching process",
top_k: 5,
}),
});
const data = await response.json();Public endpoints
GET /api/v1/drawings/..., GET /api/v1/stats/coverage, and the health checks do not require the X-API-Key header.
Rate limiting
API requests are limited to 60 per minute, counting every API request. The API returns 429 Too Many Requests when the limit is reached.
Billing response headers
Calls made with a metered API contract key carry these response headers:
| Header | Value |
|---|---|
X-Api-Krw-Charged | The amount for this call. Sent on successful responses only. Document lookups are priced by the number requested, so this is an upper bound on what is deducted — documents that are not found are not charged. |
X-Api-Krw-Used | This key's usage so far this month, up to but not including this call. |
X-Api-Cycle-End | The last day of the current cycle (YYYY-MM-DD). |
Units
The values are in your contract currency. KRW contracts report whole won: for example, X-Api-Krw-Charged: 80 means this call cost 80 won, and X-Api-Krw-Used: 12500 means 12,500 won used so far this month. Despite Krw in the header names, USD contracts report 1/1000 USD, so divide by 1,000 to get dollars.
Key management
You manage keys yourself on the API keys page of the dashboard:
- Issue multiple keys per environment (dev, production)
- Immediately revoke leaked keys
- Check per-key usage