# Moonbounce Docs > Documentation for Moonbounce content moderation platform and APIs - [What is Moonbounce?](https://docs.clavata.ai/getting_started/what_is_moonbounce.md): Overview of Moonbounce and its key features - [What can Moonbounce do for you?](https://docs.clavata.ai/getting_started/what_can_moonbounce_do_for_you.md): Overview of the key areas and features Moonbounce might be able to help you with. - [Getting Started](https://docs.clavata.ai/getting_started/getting_started_guide.md): Brief guide to getting started with Moonbounce. - [Plans & Pricing](https://docs.clavata.ai/getting_started/plans_and_pricing.md): Overview of Moonbounce plans and how to upgrade - [Dashboard](https://docs.clavata.ai/getting_started/overview/navigating_the_dashboard.md): Overview of the main homepage of Moonbounce. - [Policy Management](https://docs.clavata.ai/getting_started/overview/policies/policy_management_page.md): Brief overview of the policy management page. - [Insights](https://docs.clavata.ai/getting_started/overview/policies/insights.md): View quick metrics associated to your policy and its versions. - [Policy Editor](https://docs.clavata.ai/getting_started/overview/policies/policy_editor.md): Brief overview of the policy editor. - [Label Library](https://docs.clavata.ai/getting_started/overview/policies/label_library.md): An overview of how to use the Label Library. - [Dataset Overview](https://docs.clavata.ai/getting_started/overview/datasets_page_overview.md): Brief overview of the Dataset page. - [Feed](https://docs.clavata.ai/getting_started/overview/feed.md): How to use the Feed page to view your content. - [Analytics Overview](https://docs.clavata.ai/getting_started/overview/analytics_overview.md): Brief overview of the Analytics page. - [Introduction to Policies](https://docs.clavata.ai/guides/policy_authoring/introduction_to_policies.md): An overview of what policies are and how to approach writing them in Moonbounce. - [Components of a policy](https://docs.clavata.ai/guides/policy_authoring/components_of_a_policy.md): An overview of what makes up a policy in Moonbounce. - [Policy Writing 101](https://docs.clavata.ai/guides/policy_authoring/policy_writing_101.md): A 101 course on writing policies in Moonbounce which includes diving into the structures of a policy. - [Token multiplier](https://docs.clavata.ai/guides/policy_authoring/token_multiplier.md): Understanding the token multiplier and how it affects your usage costs - [Refining Your Policy](https://docs.clavata.ai/guides/policy_authoring/refining_policies_after_testing.md): A guide on how to refine your policy using the test results. - [Comparing Policies](https://docs.clavata.ai/guides/policy_authoring/policy_comparison.md): A guide to using the Policy Compare feature to visualize differences in policy logic and performance metrics. - [Label Copilot](https://docs.clavata.ai/guides/policy_authoring/label_copilot.md): Generate and refine label syntax through a guided, AI-powered workflow. - [Understanding Test Metrics](https://docs.clavata.ai/guides/understanding_tests.md): An overview of the metrics Moonbounce returns after you've run a test. - [Rule Filtering](https://docs.clavata.ai/guides/assertion_filtering.md): A guide to using Rule Filtering to isolate and analyze the impact of individual policy rules on your test data. - [Rapid Data Labelling](https://docs.clavata.ai/guides/rapid_data_labelling.md): A how-to guide on Rapid Data Labelling. - [Automated Policy Creation](https://docs.clavata.ai/guides/automated_policy_creation.md): Learn how to automatically generate a policy from your labeled datasets. - [Handling Sensitive Content: CSAM](https://docs.clavata.ai/guides/handling_sensitive_content_csam.md): How Moonbounce detects CSAM through NCMEC hash matching and PhotoDNA perceptual matching, and how to use the matchConfidence field on precheck failures. - [General Policy Syntax](https://docs.clavata.ai/policy_reference/syntax/general_syntax_of_policies.md): An overview of the syntax that makes up policies. - [Label Prioritization](https://docs.clavata.ai/policy_reference/syntax/label_prioritization_and_taxonomies.md): An overview of how to use label prioritization. - [Creating Rules](https://docs.clavata.ai/policy_reference/syntax/creating_rules.md): An overview of how to create and use rules. - [Glossary of Terms](https://docs.clavata.ai/policy_reference/moonbounce_glossary_of_terms.md): A reference glossary of terms you might encounter when working on policies. - [API Documentation](https://docs.clavata.ai/integrations_and_developer_tools/api-docs-sdks/api_documents_and_sdks.md): Overview of available integration paths - [API Key Management](https://docs.clavata.ai/integrations_and_developer_tools/api-docs-sdks/api_key_management.md): Create, manage, and revoke API keys for programmatic access to Moonbounce - [Batch Processing](https://docs.clavata.ai/integrations_and_developer_tools/api-docs-sdks/batch_processing.md): Learn how to process large datasets using Moonbounce's Batch Processing feature. - [GO SDK](https://docs.clavata.ai/integrations_and_developer_tools/api-docs-sdks/go_sdk.md): Install and use the Moonbounce Go SDK. - [Javascript/Typescript SDK](https://docs.clavata.ai/integrations_and_developer_tools/api-docs-sdks/javascript_typescript_sdk.md): Install and use the Moonbounce JavaScript/TypeScript SDK. - [Python SDK](https://docs.clavata.ai/integrations_and_developer_tools/api-docs-sdks/python_sdk.md): Install and use the Moonbounce Python SDK. - [Discord Bot](https://docs.clavata.ai/integrations_and_developer_tools/discord_bot_how-to.md) - [Customer Feedback](https://docs.clavata.ai/feedback/customer_feedback.md): Overview of how to submit customer feedback in the app. - [Get batch jobs](https://docs.clavata.ai/api-reference/batch-processing/get-batch-jobs.md): Retrieves batch jobs, optionally filtered by batch job IDs or states. If no filters are provided, all batch jobs will be returned. - [Create a new batch job](https://docs.clavata.ai/api-reference/batch-processing/create-a-new-batch-job.md): Creates a new batch job that can process multiple content items in bulk. Returns a presigned URL for uploading the input file. The job will automatically start processing once the input file is uploaded. - [Cancel a batch job](https://docs.clavata.ai/api-reference/batch-processing/cancel-a-batch-job.md): Cancels a batch job. This will stop the batch job from being processed further. - [List jobs](https://docs.clavata.ai/api-reference/get-jobs/list-jobs.md): Retrieves a list of jobs with optional filtering by time ranges and status. Incomplete jobs will only include basic information. - [Get job details](https://docs.clavata.ai/api-reference/get-jobs/get-job-details.md): Retrieves details of a specific job, including evaluation results if the job is complete. - [Create a new job](https://docs.clavata.ai/api-reference/create-jobs/create-a-new-job.md): Creates a new job for content evaluation. Can be configured to wait for completion or return immediately with a job ID. - [Stream job results in real-time](https://docs.clavata.ai/api-reference/create-jobs/stream-job-results-in-real-time.md): Initiates a streaming job that processes content data and returns results as they become available. Useful for real-time content evaluation. - [List labels](https://docs.clavata.ai/api-reference/labels/list-labels.md): Lists labels in the authenticated account, newest first. Omitting `page_size` uses the default of 100. The maximum `page_size` is 1000. Negative `page_size` is rejected. Use `page_token` from the previous response to fetch the next page. - [Create a label](https://docs.clavata.ai/api-reference/labels/create-a-label.md): Creates a label in the authenticated account. Optionally compiles and publishes an initial version from `initial_version_text`. A label with no versions is a valid state. Evaluation is always by version ID (`POST /v1/labels/evaluate`); a label with no versions has nothing to evaluate, and that endpo… - [Get a label](https://docs.clavata.ai/api-reference/labels/get-a-label.md): Returns a label owned by the authenticated account, including a page of its versions ordered by sequential version number ascending (oldest first), then version ID. When more versions remain, `next_page_token` is set; pass it to `GET /v1/labels/{labelId}/versions` to continue. Cross-account IDs retu… - [Delete a label](https://docs.clavata.ai/api-reference/labels/delete-a-label.md): Soft-deletes a label that has no versions. If any versions exist (including soft-deleted versions), the call fails with FAILED_PRECONDITION. Versions are immutable and have no delete RPC; archive the label instead when it has versions. Dataset examples attached to the label are not deleted independe… - [Update label metadata](https://docs.clavata.ai/api-reference/labels/update-label-metadata.md): Updates human-facing label metadata only: `name`, `description`, and `disabled`. Unknown JSON fields such as rule text are ignored. This RPC cannot create, mutate, or delete versions. To change a rule, create a new version. - [List label versions](https://docs.clavata.ai/api-reference/labels/list-label-versions.md): Lists versions on a label in stable order: `sequential_version` ascending (oldest first), then version ID. Omitting `page_size` uses the default of 100. The maximum `page_size` is 1000. Negative `page_size` is rejected. A label with zero versions returns an empty list. - [Create a label version](https://docs.clavata.ai/api-reference/labels/create-a-label-version.md): Compiles `text` (single-label DSL) and publishes an immutable version under the label. There is no current/live version: evaluation always uses an explicit version ID. There is no PATCH or DELETE for versions. - [Get a label version](https://docs.clavata.ai/api-reference/labels/get-a-label-version.md): Returns an immutable published version. `text` is the rule content. The compiled form is stored with the version and never changes. If `label_id` is set, the version must belong to that label. Cross-account IDs return NOT_FOUND. - [Evaluate labels](https://docs.clavata.ai/api-reference/labels/evaluate-labels.md): Evaluate content against one or more published label versions. Returns one result per version, in request order. A label-first account is required to use this endpoint. - [August 26, 2026](https://docs.clavata.ai/changelog/2026-08-26.md): Public API for label CRUD and immutable label versions. - [July 8, 2026](https://docs.clavata.ai/changelog/2026-07-08.md): Image support in LUNA, cost transparency on Usage, and faster dataset review. - [June 10, 2026](https://docs.clavata.ai/changelog/2026-06-10.md): API key expiration alerts and label experience improvements. - [June 2, 2026](https://docs.clavata.ai/changelog/2026-06-02.md): Free plans, self-serve signup, and a brand-new label-first experience. - [April 23, 2026](https://docs.clavata.ai/changelog/2026-04-21.md): LUNA label assistant, account switching, label insights, and more. - [What is Moonbounce?](https://docs.clavata.ai/getting_started/what_is_moonbounce.md): Overview of Moonbounce and its key features - [What can Moonbounce do for you?](https://docs.clavata.ai/getting_started/what_can_moonbounce_do_for_you.md): Overview of the key areas and features Moonbounce might be able to help you with. - [Quickstart](https://docs.clavata.ai/v2/quickstart.md): Get started with Moonbounce's label-first experience: create a label, test it against its dataset, publish a version, and evaluate content in production. - [Plans & Pricing](https://docs.clavata.ai/getting_started/plans_and_pricing.md): Overview of Moonbounce plans and how to upgrade - [Building with Labels](https://docs.clavata.ai/v2/building_with_labels.md): An overview of Moonbounce's label-first experience: craft a label, test it, publish a version, and integrate. - [Writing Signals](https://docs.clavata.ai/v2/writing_signals.md): How to write signals and rules in the label editor: syntax, conditions, examples, and common mistakes. - [Labels, Versions & Datasets](https://docs.clavata.ai/v2/labels_versions_datasets.md): The core concepts of the label-first experience: labels, drafts vs. published versions, immutability, and per-label datasets. - [Content Feed](https://docs.clavata.ai/v2/content_feed.md): Review the content your labels have evaluated in production, see each label result, and filter by label and label version. - [Usage](https://docs.clavata.ai/v2/usage.md): See how much you're evaluating across your labels, broken down by label and label version, and track your reviews remaining. - [API Key Management](https://docs.clavata.ai/integrations_and_developer_tools/api-docs-sdks/api_key_management.md): Create, manage, and revoke API keys for programmatic access to Moonbounce - [Managing Labels via API](https://docs.clavata.ai/v2/managing_labels_via_api.md): Create, read, update, and delete labels over the public API, and publish immutable label versions from rule text. - [Integrating a Label](https://docs.clavata.ai/v2/integrating_a_label.md): Take a published label version to production: get a label version id, send it to the evaluate API, and reference an explicit, immutable version you roll forward through config. - [Customer Feedback](https://docs.clavata.ai/feedback/customer_feedback.md): Overview of how to submit customer feedback in the app. - [Get batch jobs](https://docs.clavata.ai/api-reference/batch-processing/get-batch-jobs.md): Retrieves batch jobs, optionally filtered by batch job IDs or states. If no filters are provided, all batch jobs will be returned. - [Create a new batch job](https://docs.clavata.ai/api-reference/batch-processing/create-a-new-batch-job.md): Creates a new batch job that can process multiple content items in bulk. Returns a presigned URL for uploading the input file. The job will automatically start processing once the input file is uploaded. - [Cancel a batch job](https://docs.clavata.ai/api-reference/batch-processing/cancel-a-batch-job.md): Cancels a batch job. This will stop the batch job from being processed further. - [List jobs](https://docs.clavata.ai/api-reference/get-jobs/list-jobs.md): Retrieves a list of jobs with optional filtering by time ranges and status. Incomplete jobs will only include basic information. - [Get job details](https://docs.clavata.ai/api-reference/get-jobs/get-job-details.md): Retrieves details of a specific job, including evaluation results if the job is complete. - [Create a new job](https://docs.clavata.ai/api-reference/create-jobs/create-a-new-job.md): Creates a new job for content evaluation. Can be configured to wait for completion or return immediately with a job ID. - [Stream job results in real-time](https://docs.clavata.ai/api-reference/create-jobs/stream-job-results-in-real-time.md): Initiates a streaming job that processes content data and returns results as they become available. Useful for real-time content evaluation. - [List labels](https://docs.clavata.ai/api-reference/labels/list-labels.md): Lists labels in the authenticated account, newest first. Omitting `page_size` uses the default of 100. The maximum `page_size` is 1000. Negative `page_size` is rejected. Use `page_token` from the previous response to fetch the next page. - [Create a label](https://docs.clavata.ai/api-reference/labels/create-a-label.md): Creates a label in the authenticated account. Optionally compiles and publishes an initial version from `initial_version_text`. A label with no versions is a valid state. Evaluation is always by version ID (`POST /v1/labels/evaluate`); a label with no versions has nothing to evaluate, and that endpo… - [Get a label](https://docs.clavata.ai/api-reference/labels/get-a-label.md): Returns a label owned by the authenticated account, including a page of its versions ordered by sequential version number ascending (oldest first), then version ID. When more versions remain, `next_page_token` is set; pass it to `GET /v1/labels/{labelId}/versions` to continue. Cross-account IDs retu… - [Delete a label](https://docs.clavata.ai/api-reference/labels/delete-a-label.md): Soft-deletes a label that has no versions. If any versions exist (including soft-deleted versions), the call fails with FAILED_PRECONDITION. Versions are immutable and have no delete RPC; archive the label instead when it has versions. Dataset examples attached to the label are not deleted independe… - [Update label metadata](https://docs.clavata.ai/api-reference/labels/update-label-metadata.md): Updates human-facing label metadata only: `name`, `description`, and `disabled`. Unknown JSON fields such as rule text are ignored. This RPC cannot create, mutate, or delete versions. To change a rule, create a new version. - [List label versions](https://docs.clavata.ai/api-reference/labels/list-label-versions.md): Lists versions on a label in stable order: `sequential_version` ascending (oldest first), then version ID. Omitting `page_size` uses the default of 100. The maximum `page_size` is 1000. Negative `page_size` is rejected. A label with zero versions returns an empty list. - [Create a label version](https://docs.clavata.ai/api-reference/labels/create-a-label-version.md): Compiles `text` (single-label DSL) and publishes an immutable version under the label. There is no current/live version: evaluation always uses an explicit version ID. There is no PATCH or DELETE for versions. - [Get a label version](https://docs.clavata.ai/api-reference/labels/get-a-label-version.md): Returns an immutable published version. `text` is the rule content. The compiled form is stored with the version and never changes. If `label_id` is set, the version must belong to that label. Cross-account IDs return NOT_FOUND. - [Evaluate labels](https://docs.clavata.ai/api-reference/labels/evaluate-labels.md): Evaluate content against one or more published label versions. Returns one result per version, in request order. A label-first account is required to use this endpoint. - [August 26, 2026](https://docs.clavata.ai/changelog/2026-08-26.md): Public API for label CRUD and immutable label versions. - [April 23, 2026](https://docs.clavata.ai/changelog/2026-04-21.md): LUNA label assistant, account switching, label insights, and more. ## OpenAPI Specs - [openapi](/openapi.json)