# AI Text Anonymization API

Starting from 500 atoms

3.7 (30)

## About

This Utility API uses AI to anonymize data, handling sensitive information in texts.

This API can detect, categorize, and redact sensitive information in unstructured text, such as phone numbers, email addresses, and identification details. This API is crucial for privacy compliance, data sharing, and document redaction, providing a streamlined solution to protect sensitive information while maintaining the integrity and usability of the text.

The atoms cost is subjected to change depending on the size of the input file and the provider selected. The list of providers and the atoms cost for each provider is given below:

| Provider (requested_service) | Atoms |
| --- | --- |
| Azure | 500 |
| ApyHub | 2000 |

## API Playground

ApyHub AI

This API endpoint does not have a playground. You can test it with Voiden.

## API Documentation

input json: output json

POST

`https://api.apyhub.com/ai/text/anonymize`

#### Request example

```bash
curl --location --request POST 'https://api.apyhub.com/ai/text/anonymize' \
--header 'apy-token: {{token}}' \
--header 'Content-Type: application/json' \
--data '{
    "text": "My SSN is 859-98-0987. Your ABA number - 111000025 - is the first 9 digits in the lower left hand corner of your personal check. Is 998.214.865-68 your Brazilian CPF number?",
    "language":"en",
    "requested_service": "azure",
    "azure": {
        "key": "your-azure-key",
        "endpoint": "your-azure-endpoint"
    }
}'
```

**Method:** `POST`

**Content Type:** `application/json`

**Request Body**

| Attribute | Type | Mandatory | Description |
| --- | --- | --- | --- |
| text | String | Yes | Provide the textual content for which you want to perform text anonymization. <br> \- The max content size is 125,000 characters. |
| language | String | Yes | Provide the language supported by `azure` check list of supported language link - [https://learn.microsoft.com/en-GB/azure/ai-services/language-service/personally-identifiable-information/language-support?tabs=documents](https://learn.microsoft.com/en-GB/azure/ai-services/language-service/personally-identifiable-information/language-support?tabs=documents). |
| requested_service | String | Yes | Enter the name of service provider. Supported providers are `azure`, `apyhub`. Defaults to `apyhub`. |
| azure.key | String | Yes (if `azure` is selected in requested_service) | Enter service key provided by azure. |
| azure.endpoint | String | Yes (if `azure` is selected in requested_service) | Provide the endpoint provided by azure. |

**Sample Response**

A successful request returns the text anonymization response in the output parameter specified. If the request fails, the response contains an error code and a message to help determine what went wrong.

### HTTP Response Codes

The method may return one of the following HTTP status codes:

| Status Code | Description |
| --- | --- |
| 200 | The request was successful. |
| 400 | Invalid input - the file is corrupt or the supported inputs are not provided. |
| 401 | Required authentication information is either missing or not valid for the resource. |
| 500 | If any unexpected error occurs while processing the request. |

## Authentication

All API requests to ApyHub services need to be authenticated. Currently we support `tokens` or `basic authentication` mechanisms.
You can generate and view your existing credentials from your workspace settings (on the left side of the navbar) and go to “API Keys".

Points to note:

- Credential secrets are generated on the fly and are not stored in plain text, so on generating a credential please save the secrets somewhere safe.
- Use the `apy-token` as the header parameter to pass the token.
- Use the `Authorization` header to send the basic authentication credentials.

## Error codes

```json
{
  "error": {
    "code": 105,
    "message": "Invalid URL"
  }
}
```

### Common Error Codes

- **101 - Missing parameters**: This code is returned when mandatory parameters are missing from the request.
- **102 - Invalid JSON**: This code is returned when invalid JSON is passed in the request body.
- **103 - Invalid input**: This code is returned when an invalid input is provided.
- **104 - Invalid file**: This code is returned when there is an issue with a file.
- **105 - Invalid URL**: This code is returned when there is an issue with a URL.
- **109 - Invalid input format**: This code is returned when input is not provided in the required format.
- **110 - Server error**: This code is returned when an unexpected error occurs while processing a request.
