DEV Community

OriginStartAI
OriginStartAI

Posted on

How to run your first OpenAI-compatible API call with curl, Python, and Node.js

When you are testing an OpenAI-compatible API endpoint, the fastest path is not to wire it into a full app immediately. Start with one small request, confirm the base URL, API key, model name, and response shape, then move the working call into your product.

I put together a compact examples repo for that exact first-call workflow:

https://github.com/OriginStartAI/openai-compatible-api-examples

It includes curl, Python, Node.js, streaming responses, JSON structured output, migration notes, and a small error reference.

1. Set environment variables first

Keep credentials out of source code and use environment variables:

ORIGINSTARTAI_API_KEY=your_api_key_here
ORIGINSTARTAI_BASE_URL=https://your-api-base-url/v1
ORIGINSTARTAI_MODEL=your_enabled_model
Enter fullscreen mode Exit fullscreen mode

The important parts are simple:

  • base_url or baseURL points to your OpenAI-compatible endpoint.
  • api_key or apiKey is your provider key.
  • model must be enabled for your account.
  • Streaming support should be tested separately.

2. Test with curl

Curl is useful because it removes SDK behavior from the equation:

curl "$ORIGINSTARTAI_BASE_URL/chat/completions" \
  -H "Authorization: Bearer $ORIGINSTARTAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$ORIGINSTARTAI_MODEL"'",
    "messages": [
      {"role": "user", "content": "Say hello from OriginStartAI"}
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

If this works, your endpoint, key, and model are probably configured correctly.

3. Then test Python

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["ORIGINSTARTAI_API_KEY"],
    base_url=os.environ["ORIGINSTARTAI_BASE_URL"],
)

response = client.chat.completions.create(
    model=os.environ["ORIGINSTARTAI_MODEL"],
    messages=[{"role": "user", "content": "Write one friendly onboarding sentence."}],
)

print(response.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

4. Then test Node.js

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.ORIGINSTARTAI_API_KEY,
  baseURL: process.env.ORIGINSTARTAI_BASE_URL,
});

const response = await client.chat.completions.create({
  model: process.env.ORIGINSTARTAI_MODEL,
  messages: [{ role: "user", content: "Write one friendly onboarding sentence." }],
});

console.log(response.choices[0].message.content);
Enter fullscreen mode Exit fullscreen mode

5. Common first-call errors

  • 401 Unauthorized: the key is missing, expired, or copied incorrectly.
  • model not found: the model name is not enabled for the account.
  • insufficient credits: add API balance before testing more requests.
  • Timeout: reduce the prompt and retry with explicit timeout/retry logic.
  • Invalid JSON: test structured output with a very small schema first.

Next step

Once the first call works, replace the sample prompt with one real workflow from your product: support replies, summaries, SEO outlines, structured JSON extraction, or internal automation.

Repo:
https://github.com/OriginStartAI/openai-compatible-api-examples

Start here:
https://originstartai.com?utm_source=github&utm_medium=community&utm_campaign=openai_compatible_examples

New user offer: recharge $5 and get $5 extra API credits.

Top comments (0)