# AWS Polly Integration via LowCodeAPI

## Overview

Amazon Polly is a service that turns text into lifelike speech, allowing you to create applications that talk

## Base Endpoint

```
https://api.lowcodeapi.com/awspolly/
```

## Authentication

LowCodeAPI handles authentication automatically. You only need to:

1. **Sign up** at [https://aws.amazon.com/polly/](https://aws.amazon.com/polly/)
2. **Get your credentials** from [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)
3. **Connect your account** in LowCodeAPI dashboard
4. **Use your `api_token`** in all requests

The `api_token` is your LowCodeAPI authentication token. LowCodeAPI will automatically:
- Fetch your AWS Polly API key
- Apply it to each request with `undefined` header

**Auth Type**: API Key

## API Categories

- AWS Services

## Common Endpoints

### Category: Synthesis

#### Synthesize speech

**Method**: `POST` | **LowCodeAPI Path**: `/v1/speech`

**Full URL**:
```
https://api.lowcodeapi.com/awspolly/v1/speech&api_token={api_token}
```


**Body Parameters**:

| `Text` | string | Yes | Input text to synthesize |
| `OutputFormat` | enum | Yes | Format in which the returned output will be encoded |
| `VoiceId` | enum | Yes | Voice ID to use for synthesis |
| `TextType` | enum | No | Specifies whether the input text is plain text or SSML |
| `LanguageCode` | string | No | Language code for the Synthesize Speech request |
| `SampleRate` | string | No | The audio frequency specified in Hz |
| `SpeechMarkTypes` | array | No | The type of speech marks returned for the input text |
| `Engine` | enum | No | Specifies the engine (standard or neural) for Amazon Polly to use when processing input speech for synthesis |


**Example Request**:
```bash
curl -X POST "https://api.lowcodeapi.com/awspolly/v1/speech?&api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"Text":"value","OutputFormat":"value","VoiceId":"value"}'
```

**Official Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html)

---

### Category: Voices

#### Describe voices

**Method**: `GET` | **LowCodeAPI Path**: `/v1/voices`

**Full URL**:
```
https://api.lowcodeapi.com/awspolly/v1/voices?...&api_token={api_token}
```


**Query Parameters**:

| `LanguageCode` | string | No | The language identification tag (ISO 639 code for the language name-ISO 3166 country code) |
| `IncludeAdditionalLanguageCodes` | boolean | No | Boolean value indicating whether to return any bilingual voices that use the specified language as an additional language |
| `NextToken` | string | No | An opaque pagination token returned from the previous DescribeVoices operation |
| `Engine` | enum | No | Specifies which engine to use |


**Example Request**:
```bash
curl -X GET "https://api.lowcodeapi.com/awspolly/v1/voices?...&api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
```

**Official Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_DescribeVoices.html](https://docs.aws.amazon.com/polly/latest/dg/API_DescribeVoices.html)

---

#### Get voice

**Method**: `GET` | **LowCodeAPI Path**: `/v1/voices/voice_id`

**Full URL**:
```
https://api.lowcodeapi.com/awspolly/v1/voices/voice_id?voice_id={voice_id}&api_token={api_token}
```


**Path Parameters**:

| `voice_id` | string | Voice ID |

**Note**: Path parameters are passed in the URL path. The LowCodeAPI path uses static parameter names, and the actual values are passed as query parameters with the same names.


**Example Request**:
```bash
curl -X GET "https://api.lowcodeapi.com/awspolly/v1/voices/voice_id?voice_id=VALUE&&api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
```

**Official Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_DescribeVoices.html](https://docs.aws.amazon.com/polly/latest/dg/API_DescribeVoices.html)

---

### Category: Lexicons

#### List lexicons

**Method**: `GET` | **LowCodeAPI Path**: `/v1/lexicons`

**Full URL**:
```
https://api.lowcodeapi.com/awspolly/v1/lexicons?...&api_token={api_token}
```


**Query Parameters**:

| `NextToken` | string | No | An opaque pagination token returned from the previous ListLexicons operation |


**Example Request**:
```bash
curl -X GET "https://api.lowcodeapi.com/awspolly/v1/lexicons?...&api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
```

**Official Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_ListLexicons.html](https://docs.aws.amazon.com/polly/latest/dg/API_ListLexicons.html)

---

#### Get lexicon

**Method**: `GET` | **LowCodeAPI Path**: `/v1/lexicons/lexicon_name`

**Full URL**:
```
https://api.lowcodeapi.com/awspolly/v1/lexicons/lexicon_name?lexicon_name={lexicon_name}&api_token={api_token}
```


**Path Parameters**:

| `lexicon_name` | string | Name of the lexicon |

**Note**: Path parameters are passed in the URL path. The LowCodeAPI path uses static parameter names, and the actual values are passed as query parameters with the same names.


**Example Request**:
```bash
curl -X GET "https://api.lowcodeapi.com/awspolly/v1/lexicons/lexicon_name?lexicon_name=VALUE&&api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
```

**Official Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_GetLexicon.html](https://docs.aws.amazon.com/polly/latest/dg/API_GetLexicon.html)

---

#### Put lexicon

**Method**: `PUT` | **LowCodeAPI Path**: `/v1/lexicons/lexicon_name`

**Full URL**:
```
https://api.lowcodeapi.com/awspolly/v1/lexicons/lexicon_name?lexicon_name={lexicon_name}&api_token={api_token}
```


**Path Parameters**:

| `lexicon_name` | string | Name of the lexicon |

**Note**: Path parameters are passed in the URL path. The LowCodeAPI path uses static parameter names, and the actual values are passed as query parameters with the same names.


**Body Parameters**:

| `Content` | string | Yes | Pls lexicon content in PLS format |


**Example Request**:
```bash
curl -X PUT "https://api.lowcodeapi.com/awspolly/v1/lexicons/lexicon_name?lexicon_name=VALUE&&api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"Content":"value"}'
```

**Official Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_PutLexicon.html](https://docs.aws.amazon.com/polly/latest/dg/API_PutLexicon.html)

---

#### Delete lexicon

**Method**: `DELETE` | **LowCodeAPI Path**: `/v1/lexicons/lexicon_name`

**Full URL**:
```
https://api.lowcodeapi.com/awspolly/v1/lexicons/lexicon_name?lexicon_name={lexicon_name}&api_token={api_token}
```


**Path Parameters**:

| `lexicon_name` | string | Name of the lexicon to delete |

**Note**: Path parameters are passed in the URL path. The LowCodeAPI path uses static parameter names, and the actual values are passed as query parameters with the same names.


**Example Request**:
```bash
curl -X DELETE "https://api.lowcodeapi.com/awspolly/v1/lexicons/lexicon_name?lexicon_name=VALUE&&api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
```

**Official Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_DeleteLexicon.html](https://docs.aws.amazon.com/polly/latest/dg/API_DeleteLexicon.html)

---

#### Get lexicon entries

**Method**: `GET` | **LowCodeAPI Path**: `/v1/lexicons/lexicon_name/lexemes`

**Full URL**:
```
https://api.lowcodeapi.com/awspolly/v1/lexicons/lexicon_name/lexemes?lexicon_name={lexicon_name}&...&api_token={api_token}
```


**Query Parameters**:

| `Alphabet` | string | No | Specifies the alphabet desired for the lexicon |
| `LanguageCode` | string | No | Language code of the lexicon |
| `MaxItems` | number | No | Maximum number of entries to return |
| `NextToken` | string | No | Pagination token |


**Path Parameters**:

| `lexicon_name` | string | Name of the lexicon |

**Note**: Path parameters are passed in the URL path. The LowCodeAPI path uses static parameter names, and the actual values are passed as query parameters with the same names.


**Example Request**:
```bash
curl -X GET "https://api.lowcodeapi.com/awspolly/v1/lexicons/lexicon_name/lexemes?lexicon_name=VALUE&...&api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
```

**Official Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_GetLexicon.html](https://docs.aws.amazon.com/polly/latest/dg/API_GetLexicon.html)

---

### Category: Synthesis Tasks

#### Start speech synthesis task

**Method**: `POST` | **LowCodeAPI Path**: `/v1/synthesis-tasks`

**Full URL**:
```
https://api.lowcodeapi.com/awspolly/v1/synthesis-tasks&api_token={api_token}
```


**Body Parameters**:

| `Text` | string | Yes | Specifies the text input to synthesize |
| `OutputFormat` | enum | Yes | The format in which the returned output will be encoded |
| `OutputS3BucketName` | string | Yes | Amazon S3 bucket name to which the output file will be saved |
| `OutputS3KeyPrefix` | string | No | The Amazon S3 key prefix for the output speech file |
| `VoiceId` | enum | Yes | Voice ID to use for the synthesis |
| `TextType` | enum | No | Specifies whether the input text is plain text or SSML |
| `LanguageCode` | string | No | Optional language code for the Synthesize Speech request |
| `SampleRate` | string | No | The audio frequency specified in Hz |


**Example Request**:
```bash
curl -X POST "https://api.lowcodeapi.com/awspolly/v1/synthesis-tasks?&api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"Text":"value","OutputFormat":"value","OutputS3BucketName":"value"}'
```

**Official Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_StartSpeechSynthesisTask.html](https://docs.aws.amazon.com/polly/latest/dg/API_StartSpeechSynthesisTask.html)

---

#### Get speech synthesis task

**Method**: `GET` | **LowCodeAPI Path**: `/v1/synthesis-tasks/task_id`

**Full URL**:
```
https://api.lowcodeapi.com/awspolly/v1/synthesis-tasks/task_id?task_id={task_id}&api_token={api_token}
```


**Path Parameters**:

| `task_id` | string | The Amazon Polly generated identifier for a speech synthesis task |

**Note**: Path parameters are passed in the URL path. The LowCodeAPI path uses static parameter names, and the actual values are passed as query parameters with the same names.


**Example Request**:
```bash
curl -X GET "https://api.lowcodeapi.com/awspolly/v1/synthesis-tasks/task_id?task_id=VALUE&&api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
```

**Official Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_GetSpeechSynthesisTask.html](https://docs.aws.amazon.com/polly/latest/dg/API_GetSpeechSynthesisTask.html)

---

#### List speech synthesis tasks

**Method**: `GET` | **LowCodeAPI Path**: `/v1/synthesis-tasks`

**Full URL**:
```
https://api.lowcodeapi.com/awspolly/v1/synthesis-tasks?...&api_token={api_token}
```


**Query Parameters**:

| `MaxResults` | number | No | Maximum number of speech synthesis tasks returned in a List operation |
| `NextToken` | string | No | The pagination token to use in the next request to continue the listing of speech synthesis tasks |
| `Status` | enum | No | Status of the speech synthesis tasks returned in a List operation |


**Example Request**:
```bash
curl -X GET "https://api.lowcodeapi.com/awspolly/v1/synthesis-tasks?...&api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
```

**Official Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_ListSpeechSynthesisTasks.html](https://docs.aws.amazon.com/polly/latest/dg/API_ListSpeechSynthesisTasks.html)

---

## Usage Examples

### Example 1: Basic Usage

Get started with AWS Polly API by making your first request.

```bash
# Your example code here
# This demonstrates basic usage
curl -X GET "https://api.lowcodeapi.com/awspolly/?api_token=YOUR_API_TOKEN"
```

### Example 2: Advanced Usage

Explore more advanced features and parameters.

```bash
# Your example code here
# This demonstrates advanced usage
curl -X GET "https://api.lowcodeapi.com/awspolly/?api_token=YOUR_API_TOKEN"
```

## Complete Endpoint Reference

For a complete list of all endpoints and their parameters, refer to:
- **OpenAPI Definition**: `https://backend.lowcodeapi.com/awspolly/definition`
- **Official Provider Documentation**: [https://docs.aws.amazon.com/polly/latest/dg/API_Reference.html](https://docs.aws.amazon.com/polly/latest/dg/API_Reference.html)

## Rate Limits & Best Practices

- Check your AWS Polly account for specific rate limits
- Use appropriate error handling and retry logic
- Cache responses when appropriate to reduce API calls

## Error Handling

Standard HTTP status codes apply:
- `400` - Invalid request parameters
- `401` - Unauthorized (check your API key)
- `429` - Rate limit exceeded
- `500` - Internal server error