# AmberScript Integration via LowCodeAPI
**Last Updated**: February 11, 2026
## Overview
AmberScript provides professional speech-to-text transcription services with both automatic AI-powered transcription and manual human-verified options. The API allows you to manage transcription projects and custom glossaries for improved accuracy.
**Main Features:**
- Create and manage custom glossaries
- Automatic speech-to-text transcription
- Manual transcription with human verification
- Industry-specific terminology support
## Base Endpoint
```
https://api.lowcodeapi.com/amberscript
```
**Important**: Always include the provider name `amberscript` in the URL path after `api.lowcodeapi.com/`
## Authentication
AmberScript uses Bearer token authentication. When using LowCodeAPI, you only need your LowCodeAPI `api_token` - the system automatically maps your AmberScript API key.
**Required Credentials:**
1. **API Key** - Your AmberScript API key for accessing the service
**Where to get credentials:**
- Visit [AmberScript API](https://app.amberscript.com/api) to generate your API key
- Log in to your AmberScript account and navigate to the API section
**Authentication in requests:**
LowCodeAPI automatically handles authentication by using your stored `api_key` and adding it as a Bearer token in the Authorization header.
## URL Format (Important)
LowCodeAPI supports **two URL formats** for endpoints with path parameters. Always try the **New Format first**, and only fall back to the **Old Format** if it doesn't work.
### New Format (Priority) - Dynamic Path Parameters
Path parameters stay in the URL path. The provider name is always included.
```
https://api.lowcodeapi.com/amberscript/v1/glossaries/{id}?api_token=YOUR_API_TOKEN
```
### Old Format (Fallback) - Sanitized Path + Query Parameters
Path parameters become query parameters. The provider name is always included.
```
https://api.lowcodeapi.com/amberscript/v1/glossaries/id?id={id}&api_token=YOUR_API_TOKEN
```
### Decision Flow for AI Agents
1. Always use **New Format** first - Keep path parameters in the URL path
2. If you get a 404 or error, try **Old Format** with sanitized path
3. Log which format worked for future requests to this provider
Note: Most AmberScript endpoints currently don't use path parameters in the URL, so both formats will be identical for those endpoints.
## API Categories
- **Glossary** - Manage custom glossaries for improved transcription accuracy
## Common Endpoints
### Glossary Management
#### Create a Glossary
**Method:** POST | **Path:** `/v1/users`
**New Format URL:**
```
https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN
```
**Old Format URL:**
```
https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN
```
**Request Body:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the glossary |
| `items` | array | No | Array of glossary items with term descriptions |
| `item.name` | string | Yes (in items) | Term which is being described |
| `item.description` | string | No (in items) | Description of the term |
| `names` | array | No | Array of names |
**Example Request:**
```bash
curl -X POST "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Medical Terminology",
"items": [
{
"name": "MRI",
"description": "Magnetic Resonance Imaging"
},
{
"name": "ECG",
"description": "Electrocardiogram"
}
]
}'
```
**Example Response:**
```json
{
"data": {
"id": "glossary_abc123",
"name": "Medical Terminology",
"items": [...]
}
}
```
#### Get a List of Glossaries
**Method:** GET | **Path:** `/v1/users`
**New Format URL:**
```
https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN
```
**Old Format URL:**
```
https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN
```
**Query Parameters:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sortBy` | string | No | Field by which to sort the resulting list of glossaries |
| `sortDirection` | string | No | Sort direction: "DESC" or "ASC" |
**Example Request:**
```bash
curl -X GET "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN&sortBy=name&sortDirection=ASC"
```
**Example Response:**
```json
{
"data": {
"glossaries": [
{
"id": "glossary_abc123",
"name": "Medical Terminology",
"items": [...]
}
]
}
}
```
#### Update a Glossary
**Method:** PUT | **Path:** `/v1/users`
**New Format URL:**
```
https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN
```
**Old Format URL:**
```
https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN
```
**Request Body:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the glossary |
| `items` | array | No | Array of glossary items with term descriptions |
| `item.name` | string | Yes (in items) | Term which is being described |
| `item.description` | string | No (in items) | Description of the term |
| `names` | array | No | Array of names |
**Example Request:**
```bash
curl -X PUT "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "glossary_abc123",
"name": "Medical Terminology",
"items": [...]
}'
```
#### Delete a Glossary
**Method:** DELETE | **Path:** `/v1/users`
**New Format URL:**
```
https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN
```
**Old Format URL:**
```
https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN
```
**Note:** Include the glossary ID in the request body to identify which glossary to delete.
**Example Request:**
```bash
curl -X DELETE "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "glossary_abc123"
}'
```
## Complete Endpoint Reference
## Response Format
All responses from LowCodeAPI are wrapped in a `data` key:
```json
{
"data": {
// Actual response from provider API
}
}
```
The `data` key contains the raw response from the provider's API.
| Method | New Format Path | Old Format Path | Description |
|--------|----------------|----------------|-------------|
| POST | `/v1/users` | `/v1/users` | Create a glossary |
| GET | `/v1/users` | `/v1/users` | Get a list of glossaries |
| PUT | `/v1/users` | `/v1/users` | Update a specific glossary |
| DELETE | `/v1/users` | `/v1/users` | Delete a specific glossary |
## API Definition Endpoints
To discover all available endpoints for AmberScript:
| Format | URL | Description |
|--------|-----|-------------|
| New Format | `https://backend.lowcodeapi.com/amberscript/openapi` | OpenAPI spec with dynamic path parameters |
| Old Format | `https://backend.lowcodeapi.com/amberscript/definition` | API definition with sanitized paths |
**Example:**
```bash
curl -X GET "https://backend.lowcodeapi.com/amberscript/openapi"
```
## Usage Examples
### Example 1: Create and Manage a Glossary
```bash
# Step 1: Create a new glossary
# No ID needed - we're creating a new glossary
curl -X POST "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Technical Terms",
"items": [
{
"name": "API",
"description": "Application Programming Interface"
},
{
"name": "JSON",
"description": "JavaScript Object Notation"
}
]
}'
# Response returns glossary ID: glossary_xyz789
# We'll use this ID in subsequent update/delete operations
# "id": "glossary_xyz789"
# Step 2: List all glossaries to verify creation
# No ID needed - listing all available glossaries
curl -X GET "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN&sortBy=name&sortDirection=ASC"
# Step 3: Update the glossary
# Include glossary_xyz789 from Step 1 in request body to identify which glossary to update
curl -X PUT "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "glossary_xyz789",
"name": "Technical Terms - Updated",
"items": [
{
"name": "API",
"description": "Application Programming Interface"
},
{
"name": "JSON",
"description": "JavaScript Object Notation"
},
{
"name": "REST",
"description": "Representational State Transfer"
}
]
}'
# Step 4: Delete the glossary when no longer needed
# Include glossary_xyz789 from Step 1 in request body to identify which glossary to delete
curl -X DELETE "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "glossary_xyz789"
}'
```
### Example 2: Create Industry-Specific Glossaries
```bash
# Create a medical glossary
# No ID needed - creating new resource
curl -X POST "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Medical",
"items": [
{"name": "CT scan", "description": "Computed Tomography scan"},
{"name": "MRI", "description": "Magnetic Resonance Imaging"}
]
}'
# Create a legal glossary
# No ID needed - creating new resource
curl -X POST "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Legal",
"items": [
{"name": "Plaintiff", "description": "Person who brings a case"},
{"name": "Defendant", "description": "Person accused in a case"}
]
}'
# List all glossaries sorted by name
# No ID needed - listing resources
curl -X GET "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN?sortBy=name&sortDirection=ASC"
```
### Example 3: Query and Sort Glossaries
```bash
# Get all glossaries with default sorting
# No ID or query params needed
curl -X GET "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN"
# Get glossaries sorted by name in ascending order
# sortBy and sortDirection are query parameters, not IDs
curl -X GET "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN&sortBy=name&sortDirection=ASC"
# Get glossaries sorted by name in descending order
# Same parameters, different sortDirection value
curl -X GET "https://api.lowcodeapi.com/amberscript/v1/users?api_token=YOUR_API_TOKEN&sortBy=name&sortDirection=DESC"
```
## Error Handling
Common HTTP status codes and their meanings:
| Status Code | Meaning |
|-------------|---------|
| 200 | Success |
| 400 | Bad Request - Invalid parameters or request body |
| 401 | Unauthorized - Check your API token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Invalid endpoint or glossary ID |
| 422 | Unprocessable Entity - Validation error in request body |
| 429 | Rate Limit Exceeded - Too many requests |
| 500 | Internal Server Error - Contact AmberScript support |
## Glossary Item Structure
When creating or updating a glossary, items follow this structure:
```json
{
"name": "Glossary Name",
"items": [
{
"name": "Term",
"description": "Description of the term for context"
}
]
}
```
**Guidelines for effective glossaries:**
- Use clear, concise term names
- Provide descriptive explanations for context
- Include common abbreviations and their full forms
- Consider industry-specific jargon your transcriptions might contain
## Best Practices
1. **Create domain-specific glossaries** - Separate glossaries for different industries or topics improve accuracy
2. **Keep glossaries updated** - Regularly add new terms as your vocabulary evolves
3. **Use descriptive explanations** - Help transcribers understand context and proper usage
4. **Review transcriptions** - Use feedback to identify frequently misheard terms to add to glossaries
5. **Limit glossary size** - Keep glossaries focused and relevant to maintain high-quality transcriptions
## Official Documentation
- [AmberScript API Documentation](https://amberscript.github.io/api-docs/)
- [AmberScript Dashboard](https://app.amberscript.com/api)
- [Create API Keys](https://app.amberscript.com/api)
## Notes
- All responses from AmberScript via LowCodeAPI are wrapped in a `data` key
- Glossary management endpoints use request body for identification rather than URL path parameters
- The `/v1/users` endpoint handles multiple operations (create, list, update, delete) based on HTTP method and request body
- Sort parameters (`sortBy`, `sortDirection`) are optional query parameters for listing glossaries