---
title: "Create Trace Scrub Rule"
method: POST
path: "/trace-scrub-rule"
tags: ["Trace Scrub Rule"]
---

# Create Trace Scrub Rule

`POST /trace-scrub-rule`

## Request

- Base URL: `https://oneuptime.com/api`
- URL: `https://oneuptime.com/api/trace-scrub-rule`
- Auth: API key in header `APIKey`
- TypeScript: <https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/docs/trace-scrub-rule/post.ts> (a function with typed inputs; its response is checked against the schema)

Endpoint to create a new Trace Scrub Rule

## Request body

- object
  - `data` TraceScrubRuleCreateSchema, required: Create schema for TraceScrubRule model. Create
    - `projectId` string, uuid: ID of the project this trace scrub rule belongs to. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [No access - you don't have permission for this operation]
    - `name` string, required: Friendly name for this scrub rule. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `description` string: Description of what this scrub rule does. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `patternType` 'email' | 'creditCard' | 'ssn' | 'phoneNumber' | 'ipAddress' | 'sensitiveKeys' | 'custom', required: The type of sensitive data to detect: email, creditCard, ssn, phoneNumber, ipAddress, sensitiveKeys (the whole value of every attribute whose key looks sensitive, such as password or token), or custom (the regular expression in customRegex). Any other value is refused: it would scrub nothing. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `customRegex` string: The regular expression a 'custom' rule scrubs, written without slashes or flags and matched case-sensitively. Required when patternType is 'custom': a pattern that is empty, does not compile, or matches empty text is refused. Ignored for the other pattern types. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `scrubAction` 'mask' | 'hash' | 'redact': How to scrub matched data: 'redact' replaces it with [REDACTED] (the default), 'mask' partially hides it, 'hash' replaces it with a short hash of the value. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `fieldsToScrub` string: Which span fields to scrub: 'name' (the span name), 'attributes' (attribute values), 'events' (span event attributes), or 'all', the default. A sensitiveKeys rule always scrubs attribute and event attribute values, whatever this says. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `isEnabled` boolean: Whether this scrub rule is active. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `sortOrder` number: Where this rule is applied among the project's span scrub rules, lowest number first. A new rule is added to the end of the list. Setting a number another one already has puts it in that place, and the ones in the way move one place along to make room. In the dashboard, drag the rows to reorder them. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]

## Response `201`

Created successfully

- object
  - `data` TraceScrubRuleReadSchema: Read schema for TraceScrubRule model. Read
    - `_id` string, uuid: ID of this object. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `createdAt` object: Date and Time when the object was created. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `updatedAt` object: Date and Time when the object was updated. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `deletedAt` object: Date and Time when the object was deleted. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `projectId` string, uuid: ID of the project this trace scrub rule belongs to. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [No access - you don't have permission for this operation]
    - `name` string, required: Friendly name for this scrub rule. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `description` string: Description of what this scrub rule does. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `patternType` 'email' | 'creditCard' | 'ssn' | 'phoneNumber' | 'ipAddress' | 'sensitiveKeys' | 'custom', required: The type of sensitive data to detect: email, creditCard, ssn, phoneNumber, ipAddress, sensitiveKeys (the whole value of every attribute whose key looks sensitive, such as password or token), or custom (the regular expression in customRegex). Any other value is refused: it would scrub nothing. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `customRegex` string: The regular expression a 'custom' rule scrubs, written without slashes or flags and matched case-sensitively. Required when patternType is 'custom': a pattern that is empty, does not compile, or matches empty text is refused. Ignored for the other pattern types. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `scrubAction` 'mask' | 'hash' | 'redact': How to scrub matched data: 'redact' replaces it with [REDACTED] (the default), 'mask' partially hides it, 'hash' replaces it with a short hash of the value. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `fieldsToScrub` string: Which span fields to scrub: 'name' (the span name), 'attributes' (attribute values), 'events' (span event attributes), or 'all', the default. A sensitiveKeys rule always scrubs attribute and event attribute values, whatever this says. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `isEnabled` boolean: Whether this scrub rule is active. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `sortOrder` number: Where this rule is applied among the project's span scrub rules, lowest number first. A new rule is added to the end of the list. Setting a number another one already has puts it in that place, and the ones in the way move one place along to make room. In the dashboard, drag the rows to reorder them. Permissions - Create: [Project Owner, Project Admin, Create Trace Scrub Rule], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [Project Owner, Project Admin, Edit Trace Scrub Rule]
    - `createdByUserId` string, uuid: ID of the user who created this trace scrub rule. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [No access - you don't have permission for this operation]
    - `deletedByUserId` string, uuid: ID of the user who deleted this trace scrub rule. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Telemetry Admin, Telemetry Member, Telemetry Viewer, Read Trace Scrub Rule], Update: [No access - you don't have permission for this operation]

## Other responses

- `400`: Bad request. This response indicates that the request was malformed or contained invalid data.
- `401`: Unauthorized. This response indicates that the request requires user authentication.
- `402`: Payment Required. This response indicates that the request requires payment or a valid subscription.
- `403`: Forbidden. This response indicates that the server understood the request, but refuses to authorize it.
- `405`: Project not found. This response indicates that the requested project does not exist or is not accessible.
- `408`: Request Timeout. This response indicates that the server timed out waiting for the request.
- `415`: Unable to reach server. This response indicates that the server is currently unreachable or down.
- `422`: Not authorized. This response indicates that the user does not have permission to access the requested resource.
- `500`: Internal Server Error. This response indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

---

[API](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification.md) - [All operations](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/revisions/ba3307d00304?raw)
