LLinAPIDocs
LinAPI documentation

Build with every model.
Use one API.

LinAPI is an OpenAI-compatible AI gateway. Create one key, select a model, and call a familiar API endpoint from your app or preferred client.

Quick start

Send your first request in under a minute. Replace YOUR_API_KEY with a key created from the LinAPI dashboard.

Base URL   https://api.linstore.my.id/v1  —  compatible with the OpenAI Chat Completions API.

1. Make a chat completion request

cURLPOST /v1/chat/completions
curl https://api.linstore.my.id/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [
      {"role": "user", "content": "Hello from LinAPI"}
    ]
  }'

2. Read the response

JSON200 OK
{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "Hello! How can I help?"
    }
  }]
}

Authentication

All API requests must include your API key as a Bearer token. Keep keys on your server; never expose them in browser-side code or public repositories.

HTTP header
Authorization: Bearer YOUR_API_KEY

Create and revoke keys from the dashboard. A disabled or revoked key returns 401.

List available models

Use the models endpoint to retrieve the models enabled for your key.

GET/v1/models

Returns the model IDs currently available to the authenticated account.

cURL
curl https://api.linstore.my.id/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Current catalog

deepseek-v4-flash
deepseek-v4-flash-vision-exp
deepseek-v4-pro
gemini-3-flash-preview
gemini-3.1-flash-lite
gemini-3.7-flash
glm-5.3-free
gpt-5.6-luna
gpt-5.6-terra

Verified from the live catalog on 30 August 2026. Model availability can change; treat GET /v1/models as the source of truth for your account.

Chat completions

POST/v1/chat/completions

Create a model response from a list of messages.

Request body

FieldTypeRequiredDescription
modelstringyesA model ID from the models endpoint.
messagesarrayyesConversation messages, each with a role and content.
streambooleannoSet true to receive server-sent streaming chunks where supported.
temperaturenumbernoOptional sampling control; provider support may vary.

Python

Python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.linstore.my.id/v1",
    api_key="YOUR_API_KEY",
)

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "Explain rate limiting in one sentence."}],
)
print(response.choices[0].message.content)

Responses

Successful requests return the upstream model response in the OpenAI-compatible response format. Inspect choices[0].message.content for the assistant output. Usage data is returned when the selected model supplies it.

Errors

LinAPI uses standard HTTP status codes. Error bodies are returned as JSON where available.

StatusMeaningWhat to do
400Invalid requestCheck model ID, JSON shape, and required fields.
401Invalid or disabled API keyCheck the Authorization header and key status.
403Access deniedConfirm your key has access to the requested model.
429Rate limit reachedRetry with exponential backoff.
5xxUpstream or gateway errorRetry transient failures and check the dashboard status.

Usage & limits

Usage and model access are governed by the limits assigned to your account. Monitor requests, tokens, and balances from the LinAPI dashboard.