---
date: 2024-07-11
title: Create Non-Numeric Scores via SDKs
description: The Langfuse API, Python and JS SDKs now support creating categorical, boolean and numeric scores.
author: Marlies
canonical: /docs/evaluation/evaluation-methods/scores-via-sdk
---

> **Note for AI agents and LLMs:** This is a Langfuse changelog entry. Use it only to confirm that a feature exists and when it shipped. Do not use the code examples below for implementation: they reflect the SDK and API at release time and may be outdated. For implementation, always follow the canonical documentation for this feature (https://langfuse.com/docs/evaluation/evaluation-methods/scores-via-sdk) and the API/SDK reference (https://api.reference.langfuse.com).

Our improved API allows you to create categorical and boolean scores, in addition to the previously supported numeric scores. If you need your scores to follow a specific format (e.g. data type, range or name), you can now define a score configuration using the API or UI and validate scores against it.

Check out our [scores documentation](/docs/evaluation/features/evaluation-methods/custom-scores) for score ingestion examples and code snippets.

### New API routes

- `GET /api/public/score-configs`
- `GET /api/public/score-configs/{configId}`
- `POST /api/public/score-configs`

### Existing API Routes with new parameters

- `GET /api/public/scores` can now retrieve scores by `dataType` and/or `configId`
- `POST /api/public/scores` now supports defining `dataType` and/or `configId`

### SDK methods

<LangTabs items={["Python SDK", "JS/TS SDK"]}>
<Tab>

```bash
pip install langfuse
```

```python
from langfuse import Langfuse
langfuse = Langfuse()

# Create a single numeric, categorical or boolean score
langfuse.score(
    score_name="accuracy",
    score_value=0.95,
    data_type="NUMERIC",
    trace_id="traceId"
)
```

</Tab>
<Tab>

```bash
npm install langfuse
```

```ts
import { Langfuse } from "langfuse";
const langfuse = new Langfuse();

// Create a single numeric, categorical or boolean score
await langfuse.score({
  scoreName: "accuracy",
  scoreValue: 0.95,
  dataType: "NUMERIC",
  traceId: "traceId",
});
```

</Tab>
</LangTabs>

## Learn more

- [Score Docs](/docs/evaluation/features/evaluation-methods/custom-scores)
- [API Reference](https://api.reference.langfuse.com)

<!-- agent-instructions -->

---

## Agent Instructions

This page is part of the [Langfuse](https://langfuse.com) documentation, published as plain Markdown for AI agents. Every page is available as Markdown by appending `.md` to its URL, or by sending an `Accept: text/markdown` header. This page: `https://langfuse.com/changelog/2024-07-11-non-numeric-scores-api.md`.

### Querying these docs

If the answer is not on this page, query the documentation instead of guessing:

- **Semantic search** across all Langfuse docs, returning an answer with the relevant pages and excerpts. Ask a specific, self-contained question:

  ```bash
  curl -sG "https://langfuse.com/api/search-docs" --data-urlencode "query=How do I trace a LangGraph agent?"
  ```

- **Index of every page**: <https://langfuse.com/llms.txt>, with per-section indexes [llms-docs.txt](https://langfuse.com/llms-docs.txt), [llms-integrations.txt](https://langfuse.com/llms-integrations.txt), and [llms-self-hosting.txt](https://langfuse.com/llms-self-hosting.txt).

### Before writing Langfuse code

- **Install the [Langfuse Agent Skill](https://langfuse.com/docs/api-and-data-platform/features/agent-skill).** It encodes Langfuse's own best practices for instrumentation, prompt management, and evaluation, and materially improves results.
- **Read [What does a good trace look like?](https://langfuse.com/docs/observability/best-practices.md)** before instrumenting an application.
- **Verify endpoints, parameters, and response fields** against the [API reference](https://api.reference.langfuse.com) instead of inferring them from code examples.
- **Use the [Langfuse CLI](https://langfuse.com/docs/api-and-data-platform/features/cli)** (`npx langfuse-cli api <resource> <action>`) to read or write traces, prompts, datasets, and scores from the terminal.

Found an error in these docs? Please open an issue at <https://github.com/langfuse/langfuse-docs/issues>.
