Skip to main content
Labeling training data by hand is slow and expensive. Pioneer’s data generation API lets you produce high-quality labeled examples from a short description of your domain and the labels you care about. You can also pass in raw unlabeled text and have Pioneer annotate it automatically. Either way, the resulting dataset is ready to feed directly into a training job.
1

Decide on your task type

Pioneer generates training data for three task types:Choose the task type that matches the model you plan to train. You’ll pass it as task_type in the request body.
2

Start a generation job

Send a POST /generate request with your task type, a dataset name, the labels you want annotated, a description of your domain, and the number of examples to generate.
Required fields:Optional fields:The response includes a job ID you’ll use to poll status.
3

Poll job status

Generation jobs run asynchronously. Poll GET /generate/jobs/:job_id until the status is "complete".
Once complete, the dataset is available under the name you provided in dataset_name.
4

Use the dataset in a training job

Pass the dataset name directly to POST /felix/training-jobs:
See the NER fine-tuning guide or LLM fine-tuning guide for full training walkthroughs.

Auto-label existing text

If you already have raw text and want Pioneer to annotate it — rather than generating new examples from scratch — use the label-existing endpoints. This is useful when you have a corpus of real documents but haven’t labeled them yet. Auto-label for NER:
Auto-label for classification:
Both endpoints accept 1–1,000 strings per request and return annotations synchronously. Required fields are labels and inputs.
Generation endpoints are rate-limited to 120 requests per minute per user. For large annotation jobs, batch your inputs and add a short delay between requests. If you need higher throughput, contact the Pioneer team about an enterprise plan.

Next steps