pip install replicateStart by setting a REPLICATE_API_TOKEN environment variable in your environment. You can create a token at replicate.com/account/api-tokens.
Then use this code to initialize a client:
import replicateThat's it! You can now use the client to make API calls.
If you want to explicitly pass the token when creating a client, you can do so like this:
import os
import replicate
client = replicate.Replicate(
bearer_token=os.environ["REPLICATE_API_TOKEN"]
)Create a reference to a model that can be used to make predictions.
import replicate
claude = replicate.use("anthropic/claude-sonnet-4")
output = claude(prompt="Hello, world!")
print(output)
banana = replicate.use("google/nano-banana")
output = banana(prompt="Make me a sandwich")
print(output)Note: The replicate.use() method only returns output. If you need access to more metadata like prediction ID, status, metrics, or input values, use replicate.predictions.create() instead.
Run a model and wait for the output. This is a convenience method that creates a prediction and waits for it to complete.
import replicate
# Run a model and get the output directly
output = replicate.run(
"anthropic/claude-sonnet-4",
input={"prompt": "Hello, world!"}
)
print(output)Note: The replicate.run() method only returns output. If you need access to more metadata like prediction ID, status, metrics, or input values, use replicate.predictions.create() instead.
Available operations:
searchpredictions.createpredictions.getpredictions.listpredictions.cancelmodels.createmodels.getmodels.listmodels.deletemodels.examples.listmodels.predictions.createmodels.readme.getmodels.versions.getmodels.versions.listmodels.versions.deletecollections.getcollections.listdeployments.createdeployments.getdeployments.listdeployments.updatedeployments.deletedeployments.predictions.createfiles.listfiles.createfiles.deletefiles.getfiles.downloadtrainings.createtrainings.gettrainings.listtrainings.cancelhardware.listaccount.getwebhooks.default.secret.get
Search models, collections, and docs (beta)
response = replicate.search(
query="nano banana",
)
print(response.collections)Docs: https://replicate.com/docs/reference/http#search
Create a prediction
prediction = replicate.predictions.create(
input={
"text": "Alice"
},
version="replicate/hello-world:9dcd6d78e7c6560c340d916fe32e9f24aabfa331e5cce95fe31f77fb03121426",
)
print(prediction.id)Docs: https://replicate.com/docs/reference/http#predictions.create
Get a prediction
prediction = replicate.predictions.get(
prediction_id="prediction_id",
)
print(prediction.id)Docs: https://replicate.com/docs/reference/http#predictions.get
List predictions
page = replicate.predictions.list()
page = page.results[0]
print(page.id)Docs: https://replicate.com/docs/reference/http#predictions.list
Cancel a prediction
prediction = replicate.predictions.cancel(
prediction_id="prediction_id",
)
print(prediction.id)Docs: https://replicate.com/docs/reference/http#predictions.cancel
Create a model
model = replicate.models.create(
hardware="cpu",
name="hot-dog-detector",
owner="alice",
visibility="public",
)
print(model.cover_image_url)Docs: https://replicate.com/docs/reference/http#models.create
Get a model
model = replicate.models.get(
model_owner="model_owner",
model_name="model_name",
)
print(model.cover_image_url)Docs: https://replicate.com/docs/reference/http#models.get
List public models
page = replicate.models.list()
page = page.results[0]
print(page.cover_image_url)Docs: https://replicate.com/docs/reference/http#models.list
Delete a model
replicate.models.delete(
model_owner="model_owner",
model_name="model_name",
)Docs: https://replicate.com/docs/reference/http#models.delete
List examples for a model
page = replicate.models.examples.list(
model_owner="model_owner",
model_name="model_name",
)
page = page.results[0]
print(page.id)Docs: https://replicate.com/docs/reference/http#models.examples.list
Create a prediction using an official model
prediction = replicate.models.predictions.create(
model_owner="model_owner",
model_name="model_name",
input={
"prompt": "Tell me a joke",
"system_prompt": "You are a helpful assistant",
},
)
print(prediction.id)Docs: https://replicate.com/docs/reference/http#models.predictions.create
Get a model's README
readme = replicate.models.readme.get(
model_owner="model_owner",
model_name="model_name",
)
print(readme)Docs: https://replicate.com/docs/reference/http#models.readme.get
Get a model version
version = replicate.models.versions.get(
model_owner="model_owner",
model_name="model_name",
version_id="version_id",
)
print(version.id)Docs: https://replicate.com/docs/reference/http#models.versions.get
List model versions
page = replicate.models.versions.list(
model_owner="model_owner",
model_name="model_name",
)
page = page.results[0]
print(page.id)Docs: https://replicate.com/docs/reference/http#models.versions.list
Delete a model version
replicate.models.versions.delete(
model_owner="model_owner",
model_name="model_name",
version_id="version_id",
)Docs: https://replicate.com/docs/reference/http#models.versions.delete
Get a collection of models
collection = replicate.collections.get(
collection_slug="collection_slug",
)
print(collection.description)Docs: https://replicate.com/docs/reference/http#collections.get
List collections of models
page = replicate.collections.list()
page = page.results[0]
print(page.description)Docs: https://replicate.com/docs/reference/http#collections.list
Create a deployment
deployment = replicate.deployments.create(
hardware="hardware",
max_instances=0,
min_instances=0,
model="model",
name="name",
version="version",
)
print(deployment.current_release)Docs: https://replicate.com/docs/reference/http#deployments.create
Get a deployment
deployment = replicate.deployments.get(
deployment_owner="deployment_owner",
deployment_name="deployment_name",
)
print(deployment.current_release)Docs: https://replicate.com/docs/reference/http#deployments.get
List deployments
page = replicate.deployments.list()
page = page.results[0]
print(page.current_release)Docs: https://replicate.com/docs/reference/http#deployments.list
Update a deployment
deployment = replicate.deployments.update(
deployment_owner="deployment_owner",
deployment_name="deployment_name",
)
print(deployment.current_release)Docs: https://replicate.com/docs/reference/http#deployments.update
Delete a deployment
replicate.deployments.delete(
deployment_owner="deployment_owner",
deployment_name="deployment_name",
)Docs: https://replicate.com/docs/reference/http#deployments.delete
Create a prediction using a deployment
prediction = replicate.deployments.predictions.create(
deployment_owner="deployment_owner",
deployment_name="deployment_name",
input={
"prompt": "Tell me a joke",
"system_prompt": "You are a helpful assistant",
},
)
print(prediction.id)Docs: https://replicate.com/docs/reference/http#deployments.predictions.create
List files
page = replicate.files.list()
page = page.results[0]
print(page.id)Docs: https://replicate.com/docs/reference/http#files.list
Create a file
file = replicate.files.create(
content=b"raw file contents",
)
print(file.id)Docs: https://replicate.com/docs/reference/http#files.create
Delete a file
replicate.files.delete(
file_id="file_id",
)Docs: https://replicate.com/docs/reference/http#files.delete
Get a file
file = replicate.files.get(
file_id="file_id",
)
print(file.id)Docs: https://replicate.com/docs/reference/http#files.get
Download a file
response = replicate.files.download(
file_id="file_id",
expiry=0,
owner="owner",
signature="signature",
)
print(response)
content = response.read()
print(content)Docs: https://replicate.com/docs/reference/http#files.download
Create a training
training = replicate.trainings.create(
model_owner="model_owner",
model_name="model_name",
version_id="version_id",
destination="destination",
input={},
)
print(training.id)Docs: https://replicate.com/docs/reference/http#trainings.create
Get a training
training = replicate.trainings.get(
training_id="training_id",
)
print(training.id)Docs: https://replicate.com/docs/reference/http#trainings.get
List trainings
page = replicate.trainings.list()
page = page.results[0]
print(page.id)Docs: https://replicate.com/docs/reference/http#trainings.list
Cancel a training
response = replicate.trainings.cancel(
training_id="training_id",
)
print(response.id)Docs: https://replicate.com/docs/reference/http#trainings.cancel
List available hardware for models
hardware = replicate.hardware.list()
print(hardware)Docs: https://replicate.com/docs/reference/http#hardware.list
Get the authenticated account
account = replicate.account.get()
print(account.type)Docs: https://replicate.com/docs/reference/http#account.get
Get the signing secret for the default webhook
secret = replicate.webhooks.default.secret.get()
print(secret.key)Docs: https://replicate.com/docs/reference/http#webhooks.default.secret.get
For cases where you need to make direct API calls not covered by the SDK methods, you can use the low-level request interface:
import replicate
client = replicate.Replicate()
# Make a custom GET request
response = client.get("/custom/endpoint")
# Make a custom POST request with data
response = client.post(
"/custom/endpoint",
json={"key": "value"}
)
# Make a custom request with all options
response = client.request(
method="PATCH",
url="/custom/endpoint",
json={"key": "value"},
headers={"X-Custom-Header": "value"}
)See the README for more details about response handing, error handling, pagination, async support, and more.