# Use cases


This page shows five ways a team sets Humanbased up from the [Developer portal](https://developer.humanbased.ai/). Each section says who it suits, which controls you set today, what you get, and where the full steps are. Where the product has no control for something you may expect, the section says so and names the nearest route.

| Your situation | What you set up today | Section |
| --- | --- | --- |
| The task design and budget are not settled | A draft and a dry run | [Test a design before you commit a budget](#test-a-design-before-you-commit-a-budget) |
| You collect contributions without paying for each one | Human steps with no reward, and a budget of 0 | [Run a zero-reward Campaign](#run-a-zero-reward-campaign) |
| You already have people under contract | An invite code, a reward on each step, and API delivery | [Run a private pipeline for a contracted team](#run-a-private-pipeline-for-a-contracted-team) |
| You are a university lab with your own participants | An invite code, plus a course or an agreement | [Admit only your own participants](#admit-only-your-own-participants) |
| You would rather not show your organization's name | The Campaign's own text and appearance | [Control what a Campaign shows about your organization](#control-what-a-campaign-shows-about-your-organization) |

All five start from the same draft. If you have not created a Campaign yet, read [Start with a data need](/start/developer-start) first.

## Test a design before you commit a budget

**Who it is for.** A team that is still shaping the task and has no approved budget.

**Set up today.**

1. In **Campaigns**, select **Open Builder**. This creates a draft. A draft is not listed to Contributors, and it reserves no funds.
2. Build the workflow. On the human-work step, use **Preview ›** to see the form a Contributor would complete.
3. In Builder, open **Test & Launch**. **Pricing & Budget** compares projected spend with **Budget cap (USD)**. **Eligibility** lists the entry requirements you configured. **Dry-run** moves synthetic items through the workflow and reports each node's result.

**What you get.** You learn whether items travel from entry to the delivery step, what each node returned, and what the Campaign is projected to cost. No real task, reward, or delivery exists yet, and the budget is reserved only when you launch.

**Not available today.** A dry run collects no real answers and does not run your acceptance decision. To see real answers, launch a small Campaign: give an [invite code](#admit-only-your-own-participants) to a few testers, and set a low **Items to collect** on the human step.

If a program creates your Campaigns, `candidatevalidate` and `candidateplan` check a Campaign File without changing anything. The API also has a staging host, which takes Keys issued for staging. See the [Campaign API](/api/campaign-api).

**Full steps.** [Publish a Campaign](/tasks/publish) and [Test, launch, and manage a Campaign](/tasks/launch).

## Run a zero-reward Campaign

**Who it is for.** A nonprofit or public-interest project that gathers contributions over a long period, with a reward of zero on each step.

**Set up today.**

1. On each human-work step in Builder, leave **Reward (per accepted submission)** empty.
2. In **Test & Launch → Pricing & Budget**, leave **Budget cap (USD)** at 0. When no human step carries a reward, launching reserves nothing from your organization's balance.
3. Launch. A Campaign has no end date. It stays **Live** until you select **Pause** or **End** beside its name.

**What you get.** Contributors see the Campaign page without a reward amount. Every submission is recorded under the Contributor who made it. You read each submission and its result in **Reviews**. **People** lists each participant with their submitted and accepted counts. Each Contributor finds the same record in their own **Contributions**.

**Not available today.**

| You may expect | Today | What to do now |
| --- | --- | --- |
| Accepted work delivered through the API, or anchored on-chain | Both begin only after a reward is granted for that submission. Work accepted on a step with no reward stays readable in **Reviews**. | Set a reward on the step when you need API delivery or an on-chain record. See [From submission to data delivery](/data/delivery). |
| An ownership rule, or a commercial or free license, for the collected data | The Marketplace does not offer Snapshot & license or Ownership & royalty: the portal has no way to export a copy, sign a license, or make an ownership offer. Publishing **Data Assets** takes a verified organization and trust level L3 held for 30 days. | Email [hello@humanbased.ai](mailto:hello@humanbased.ai) with the dataset and the intended use. [Data access and usage rights](/data/rights) lists what to confirm first. |

**Planned.** Humanbased plans to deliver accepted work from zero-reward Campaigns through the API, record it on-chain, and derive its ownership by policy. None of this is available today.

**Full steps.** [Configure a workflow](/tasks/workflow), [Test, launch, and manage a Campaign](/tasks/launch), and [Inspect data provenance](/data/lineage).

## Run a private pipeline for a contracted team

**Who it is for.** A team that already has annotators or domain experts under contract, and wants Humanbased to run the workflow, the checks, and the delivery.

**Set up today.**

1. In Builder, open **Entry Gate** and turn on **Require an invite code to join**. Select **Generate code**, then **Copy**, and give the code only to the people under contract.
2. In the same panel, add what each person must also satisfy: **Required agreements** from the platform's published agreements, a **Required course**, or **Contributor profile** conditions.
3. Connect the rest of the workflow: the human work, the checks you need, **Accept**, and **Sink**.
4. Set a reward on each human step. API delivery begins only after a reward is granted for a submission.
5. After launch, create an API Key with **Campaign access** to this Campaign. Your program then reads accepted records with `GET /v1/live/pull`.

**What you get.** Only people who present the code can join. Other Contributors can still open the Campaign page, which states the requirement. Each person works under their own Contributor account, so submissions, results, and rewards are recorded per person.

**Not available today.**

| You may expect | Today | What to do now |
| --- | --- | --- |
| Admitting a whole Contributor team | **Entry Gate** has **Team access**, with the switch **Only members of selected teams can join**. It selects from teams that have published a team page. Team management is not open in the production Contributor portal, so a team you work with cannot publish one there. With the switch on and no team selected, nobody can join. | Leave **Team access** off and use the invite code. [Feature availability](/help/updates) tracks Contributor Teams. |
| Admitting by Guild, or by a named list of members | The Entry Gate has no setting for either. | Give the code only to those people. Select **Regenerate code** if the code spreads. To remove someone who has joined, use **Blacklist** on their row in **People**. |

**Planned.** Admission by Contributor team in production, by Guild, and by a named list of members is planned, together with a use cap and an expiry for invite codes.

**Full steps.** [Configure a workflow](/tasks/workflow), [From submission to data delivery](/data/delivery), [Get your first authorized data](/api/api-data), and the [Campaign API](/api/campaign-api) for creating and changing Campaigns from a program.

## Admit only your own participants

**Who it is for.** A university lab that wants its own students or collaborators, and nobody else, to take part in a study task.

**Set up today.**

1. In **Entry Gate**, turn on **Require an invite code to join** and select **Generate code**. A Campaign has one live code at a time: eight characters in two groups of four. Capital letters and stray spaces make no difference when someone types it.
2. Send the code through a channel only your participants read, such as a course mailing list.
3. Add the other conditions the study needs in the same panel. **Required course** admits only people who finished a course your organization published, for example a protocol briefing. **Required agreements** makes each person accept the selected platform agreement first. **Contributor profile** filters on self-reported details such as **Minimum level of education**.
4. Ask participants to enter the code under **Invite code from the publisher** on the Campaign page, then select **Join campaign**.

**What you get.** Only people who present the live code and meet the other conditions can join. The invite code panel shows how many times the code has been redeemed. **Regenerate code** replaces the code, and the old one stops working at once. **Revoke** turns the code off. People who already joined keep their access, and someone who leaves needs a valid code to join again.

**Not available today.**

| You may expect | Today | What to do now |
| --- | --- | --- |
| An expiry date, or a cap on how many people can use the code | The Developer portal sets neither. | Watch the redeemed count, and select **Revoke** when recruitment closes. |
| Admission by university email domain or verified affiliation | The Entry Gate has no setting for either. **Allowed email domains** admits colleagues into your Developer organization; it has no effect on who can join a Campaign. | Use the invite code, and control who receives it. |

**Full steps.** [Configure a workflow](/tasks/workflow#entry-gate) for the Entry Gate, [Bind the course to a Campaign](/learning/authoring#bind-the-course-to-a-campaign) for a required course, and [Meet participation requirements](/learning/eligibility) for what your participants do.

## Control what a Campaign shows about your organization

**Who it is for.** A frontier lab that would rather not attach its name to a public data task. Every Campaign names the organization that published it, so read this section before you plan around anonymity.

**Set up today.**

| Setting | Where | What it changes |
| --- | --- | --- |
| Campaign name, **Brief**, and public description | **Setup → Campaign details** | How the task introduces itself. Write what a Contributor needs to know to do the work. |
| Cover image and **Brand & theme** | **Setup → Appearance** | The cover, **Accent color**, **Logo URL**, **Density**, and **Contributor instructions** for this Campaign. The organization's name still appears. |
| **Page visibility** | **Organization → Public profile** | **Hidden** takes your organization's own page down. Campaigns still name the organization. |
| Who can join | **Entry Gate**, with an [invite code](#admit-only-your-own-participants) | Limits joining to people you choose. Other Contributors can still open the Campaign page. |

**What you get.** On the Campaign page, Contributors see your **Publisher panel**: the organization's name, logo, introduction, and credibility links, plus a verification mark once the organization is verified. Use **Preview as contributor** on the **Public profile** tab to check it before you launch.

**Not available today.** A Campaign has no anonymous or alias publisher setting, and hiding the organization page leaves the name on every Campaign. If the work has to keep your organization's name from Contributors, write to [hello@humanbased.ai](mailto:hello@humanbased.ai) before you build it.

**Planned.** A setting to publish a Campaign under an alias or anonymously is planned.

**Full steps.** [Define work and participation requirements](/tasks/define) and [Developer organizations](/collaboration/organization).
