Skip to main content
Ollama provides official client libraries for Python and JavaScript that make it easy to integrate LLM capabilities into your applications. These libraries handle authentication, streaming, error handling, and provide type-safe interfaces.

Python Library

The official Python library provides a clean, Pythonic interface to the Ollama API.

Installation

pip install ollama

Quick Start

from ollama import generate

response = generate(
  model='gemma3',
  prompt='Why is the sky blue?'
)

print(response['response'])

Advanced Usage

from ollama import Client

# Connect to a custom host
client = Client(host='http://localhost:11434')

response = client.generate(
  model='gemma3',
  prompt='Hello, world!'
)

Context Management

Maintain conversation context across multiple requests:
from ollama import generate

# First request
response1 = generate(
  model='gemma3',
  prompt='What is the capital of France?'
)

# Use context for follow-up
response2 = generate(
  model='gemma3',
  prompt='What is its population?',
  context=response1['context']
)

print(response2['response'])

Error Handling

from ollama import generate, ResponseError

try:
  response = generate(
    model='nonexistent-model',
    prompt='Hello'
  )
except ResponseError as e:
  print(f"Error: {e.error}")
  if e.status_code == 404:
    print("Model not found. Try pulling it first.")

JavaScript Library

The official JavaScript library works in both Node.js and browser environments.

Installation

npm install ollama

Quick Start

import ollama from 'ollama';

const response = await ollama.generate({
  model: 'gemma3',
  prompt: 'Why is the sky blue?'
});

console.log(response.response);

Advanced Usage

import { Ollama } from 'ollama';

const ollama = new Ollama({
  host: 'http://192.168.1.100:11434'
});

const response = await ollama.generate({
  model: 'gemma3',
  prompt: 'Hello, world!'
});

TypeScript Support

The JavaScript library includes full TypeScript definitions:
import ollama, { ChatResponse, Message } from 'ollama';

const messages: Message[] = [
  { role: 'user', content: 'Hello!' }
];

const response: ChatResponse = await ollama.chat({
  model: 'gemma3',
  messages: messages
});

console.log(response.message.content);

Abort Requests

Cancel in-flight requests using AbortController:
import ollama from 'ollama';

const controller = new AbortController();

// Cancel after 5 seconds
setTimeout(() => controller.abort(), 5000);

try {
  const response = await ollama.generate({
    model: 'gemma3',
    prompt: 'Write a long story...'
  }, { signal: controller.signal });
} catch (error) {
  if (error.name === 'AbortError') {
    console.log('Request cancelled');
  }
}

Library Features Comparison

FeaturePythonJavaScript
Generate text
Chat completions
Streaming
Embeddings
Model management
Multimodal input
Context preservation
Type hints/TypeScript
Custom hosts
Authentication
Request cancellation
Browser support

Authentication with Libraries

Both libraries support authentication for ollama.com:
import os
from ollama import Client

client = Client(
  host='https://ollama.com',
  headers={'Authorization': f'Bearer {os.environ["OLLAMA_API_KEY"]}'}
)

response = client.generate(
  model='gpt-oss:120b',
  prompt='Hello!'
)

Community Libraries

In addition to the official libraries, the Ollama community has created libraries for many languages: See the Ollama GitHub repository for a complete list.

Python Library

Source code, examples, and issue tracker

JavaScript Library

Source code, examples, and issue tracker

Examples

Both libraries include comprehensive example code in their repositories: For Go examples using the native API package, see api/examples in the main repository.

Next Steps

API Reference

Explore all available endpoints

Streaming

Implement real-time streaming responses

Chat API

Build multi-turn conversations

Embeddings

Create embeddings for semantic search