Docs
Everything you need to get a key and make your first call. One dashboard, one API base URL.
1. Two hosts
| Host | Use it for |
|---|---|
https://howtofix.id | Account, tokens, balance, usage logs, these pages |
https://api.howtofix.id/v1 | API calls (OpenAI-compatible). howtofix.id/v1 is not an API host and returns 404. |
2. Create an account
- Open Sign up and choose a username and password.
- Press Continue with Google to attach a Gmail address. Only
@gmail.comaddresses are accepted, and each Gmail can open one HowToFix account. - Solve the human check: a quick slider challenge — line the piece up with its matching gap. You can switch challenge types inside the widget, and your browser runs a short proof-of-work in the background.
- Press Create account, then sign in.
If the check says the page is out of date, reload the page. If it says to wait 15 minutes, too many attempts came from your network; try again later.
3. Get a key
- Sign in and open Console.
- Go to Tokens and create a token. It starts with
sk-. - Keep it secret. If it leaks, delete it in the console and create a new one.
4. Call the API
curl
curl https://api.howtofix.id/v1/models \
-H "Authorization: Bearer sk-YOUR-TOKEN"
curl https://api.howtofix.id/v1/chat/completions \
-H "Authorization: Bearer sk-YOUR-TOKEN" \
-H "Content-Type: application/json" \
-d '{"model":"MODEL_ID","messages":[{"role":"user","content":"hello"}]}'
OpenAI SDK (Python)
from openai import OpenAI
client = OpenAI(base_url="https://api.howtofix.id/v1", api_key="sk-YOUR-TOKEN")
reply = client.chat.completions.create(
model="MODEL_ID",
messages=[{"role": "user", "content": "hello"}],
)
print(reply.choices[0].message.content)
Pick MODEL_ID from Model Square or from GET /v1/models. Any OpenAI-compatible client works with base URL https://api.howtofix.id/v1.
5. Endpoints
| Method | Path | Notes |
|---|---|---|
| GET | /v1/models | Models your token may call |
| POST | /v1/chat/completions | Chat, streaming supported |
| POST | /v1/completions | Legacy text completions |
| POST | /v1/messages | Anthropic-compatible shape, for models that support it |
| GET | /v1beta/models | Gemini-compatible list, for models that support it |
6. Balance and usage
Every call is metered against your balance. The console shows your remaining balance, per-token limits and a log of each request with model, tokens and cost. Prices per model are listed in Model Square.
7. Errors
| Code | Meaning |
|---|---|
| 401 | Missing or invalid token |
| 403 | Token not allowed for that model, or sign-up attempted without the Gmail step or human check |
| 404 | Wrong host: API calls go to api.howtofix.id, not howtofix.id |
| 409 | Sign-up: that Gmail already has an account. Sign in instead. |
| 429 | Rate limit, or the daily sign-up limit for your network |
| 5xx | Upstream model provider failed or timed out; retry later |