Core concepts
These pages use one term for each concept. This is what each term means and how they fit together.
project (text or embedding)
dataset: chats or training pairs, labelled with tags
training job: trains a base model on a frozen dataset version
attempts: each run of the job; the kept checkpoint becomes its model
hosted model: the name your code calls; usage is paid in US dollars
Project
The workspace that holds your data, training jobs and hosted models. A project
has one type, text or embedding, chosen when it is created and never
changed. Only its owner can use it. A project is archived, never deleted:
archiving keeps everything and can be undone. Its address in every path is
{owner_slug}/{project_slug}; the slug is set once from the name. See
Projects.
Base model
A model from the ReOpenly catalog. It is what a training job fine-tunes, and you
can call it directly, without a project: ReOpenly/Qwen3.5-9B for text,
ReOpenly/Qwen3-Embedding-0.6B and ReOpenly/Qwen3-Embedding-4B for
embeddings. GET /api/v1/base-models lists the catalog and its limits.
Dataset
The training data of a project. A text project has one dataset, made of chats. An embedding project starts with a default dataset, can hold up to 20, and each is made of training pairs. See Embedding datasets.
Chat
One training example in a text project: a conversation of messages with roles
such as user and assistant. You add chats by hand, through the API or by
import. See Chats.
Training pair
One training example in an embedding project: an anchor (a query), a
positive (a passage that answers it) and an optional negative (a passage
that looks related but does not answer it).
Tag
A label on chats or training pairs, used to choose what a run trains on. A text
run selects chats by tag name (dataset_tags); an embedding run can narrow its
dataset to tagged pairs (tag_ids).
Frozen dataset version
The exact copy of the examples a run trained on. When a training job starts,
ReOpenly copies the selected examples into a frozen record: editing or deleting
your data afterwards does not change what the job trained on, and a retry
trains on the same copy. GET .../training-jobs/{job_id}/dataset reads it.
Training job
One fine-tune of a base model on a frozen dataset version. The app calls it a
run. Each job has an id, which the API uses in paths such as
.../training-jobs/{job_id}, and a number, counted from 1 in each project and
shown in the app. Jobs are never deleted. See Training jobs.
Attempt
One execution of a training job. A job starts with one attempt; a retry or a resume adds another. Each attempt has its own status and log.
Checkpoint
A saved state of the model during training. A run that holds out examples for
validation measures its loss on them at intervals and keeps the checkpoint with
the lowest loss: the kept checkpoint becomes the job's model. That loss is
measured during training and only chooses a checkpoint; it is not a measure of
the hosted model's quality. When a model exists, the job reports
model_available: true.
Hosted model
A stable name in a project that points at a trained model. Its slug is the
model value your code sends, and you can point it at a newer job later
without changing that code. The API also calls a hosted model an alias: it
is the same thing. See Hosted models.
Balance and rate
You pay in US dollars from a prepaid balance. Training is charged per minute of
measured training time only, and inference per token (input and output tokens
at separate prices per million), at the prices that
GET /api/v1/pricing/platform publishes; time in a queue and idle time are
free. GET /api/v1/credits
returns your balance. Fields whose names say credits, such as
available_credits, hold US dollars: the names are kept for compatibility.
See Pricing and billing.
Estimate and cost ceiling
Before a run starts, ReOpenly returns two numbers. The estimate is what the
run is expected to take and cost. To start, your balance must be above zero and
cover the estimate plus a safety margin. The cost ceiling is the price of
the run's time limit, the most it may use; your balance does not need to cover
it, because a run pauses before your balance runs out. You pay only for the
training time used. When the estimate has no number (null), there is no
forecast; it does not mean the run is free. An embedding run without an
estimate needs its cost ceiling to start.
Your data and your model
Is my data used to train other models? No. ReOpenly does not use your datasets, prompts or responses to train its own models, and no other customer can reach them. If you turn on auto-save, the saved inference goes into your project, for your own fine-tunes.
Is the trained model mine? Yes. When a run finishes, you can download its adapter and keep it or run it elsewhere. Sharing a model with another account does not share the data it was trained on.
What does ReOpenly keep, and for how long? Your account, datasets, models and billing records are kept for as long as your account exists. Archiving a project hides it; it does not delete it. Search feedback is kept until you ask for it to be erased. To delete your account and its data, write to reopenly@gmail.com: deletion is completed within 30 working days, deleted data leaves our live systems at once, and copies in routine backups are gone when those backups expire. Billing records are kept for as long as tax law requires. The Privacy Policy is the full statement.