Three ways to connect
Use a first-party SDK in your application, give an Agent a Skill, or configure a compatible tool with an API URL and model ID.
Choose the right entry
SDK
Build in a Node.js or Python server. Keep one LINK42 key private; the SDK handles transport, tasks and asset uploads.
Agent Skill
Give a supported Agent the installation prompt. After one private key authorization, it discovers model IDs and options for you.
Direct API
Configure a compatible tool or your own HTTP client with the API base URL, your key and an exact authorized model ID.
- A browser login is not an API key. None of these methods bypasses model permissions, IP restrictions, budgets or the USD wallet. Installing the Skill is free; an actual model call can be billed.
1. Build with the SDK
The first-party Node.js 20+ and Python 3.10+ packages are downloaded from this site, not npm or PyPI. Keep the key in your server's secret environment. Use models.list to inspect the key-scoped IDs, then call the required resource. Paid POST requests are not retried automatically.
npm install https://www.link42.ai/downloads/sdk/link42-sdk-0.1.6.tgzpython -m pip install https://www.link42.ai/downloads/sdk/link42-0.1.6-py3-none-any.whl2. Give your Agent a Skill
Send the installation prompt to an Agent that supports Skills. Installation verifies the official ZIP and needs no key. At first use, authorize your own key in the host's private environment, not in chat. With no named model, the Agent compares compatible authorized candidates by non-generating USD estimate; this cost default is not a quality or availability guarantee. Billable creation still needs your task and budget.
3. Connect a tool directly
GET/v1/models
For tools with a custom OpenAI-compatible provider, set Base URL to https://www.link42.ai/v1, API key to your LINK42 key, and Model ID to the exact id returned by GET /v1/models. Do not use a website numeric ID, a display name, or an upstream provider key. Some tools have their own protocol or hard-coded vendor features; compatibility is limited to the interface the tool actually exposes.
Use exactly the Base URL in the table: Anthropic clients append /v1/messages; Gemini REST appends /v1beta/models/{model}:generateContent. Custom endpoint support in Gemini SDKs depends on their version and mode.
| Tool protocol | Base URL | Model value |
|---|---|---|
| OpenAI-compatible | https://www.link42.ai/v1 | data[].id from GET /v1/models |
| Anthropic Messages | https://www.link42.ai/anthropic | authorized text model ID |
| Gemini generateContent REST | https://www.link42.ai/gemini | authorized model ID |
curl https://www.link42.ai/v1/models -H "Authorization: Bearer $LINK42_API_KEY"
# Replace MODEL_ID with one exact data[].id from the response.
curl https://www.link42.ai/v1/chat/completions \
-H "Authorization: Bearer $LINK42_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"MODEL_ID","messages":[{"role":"user","content":"Hello"}]}'Pick an endpoint for the model's job
The model ID comes from your key-scoped directory. A model being listed does not make every protocol or parameter available; check its modality and capabilities first. Async work returns a task ID: query the same task rather than submitting a second paid request.
| Job | Endpoint | Model requirement |
|---|---|---|
| Text and supported vision | POST /v1/chat/completions or /v1/responses | Authorized text model with the requested input capability |
| Image generation | POST /v1/images/generations | Authorized image model and supported size/count |
| Asynchronous image | POST /v1/images/generations/async; GET /v1/images/tasks/{id} | Authorized image model; save the task ID |
| Video generation | POST /v1/videos; GET /v1/videos/{id} | Authorized video model and supported reference/duration/resolution |
| Embeddings | POST /v1/embeddings | An authorized embedding model, if one is currently enabled |