Welcome to the ChannelSeal API documentation. This API allows you to integrate ChannelSeal's powerful features into your applications.
Base URL
Code
where
env would be api for production and uat for UAT
capability would be platform or catalog
Authentication
ℹ️ Info All API requests require authentication using OAuth 2.0 Client Credentials flow.
OAuth 2.0 Client Credentials
ChannelSeal uses the OAuth 2.0 Client Credentials grant type for server-to-server authentication. This flow is ideal for applications that need to access API resources without user interaction.
Step 1: Obtain Client Credentials
- Log in to your ChannelSeal Portal dashboard
- Navigate to Settings → API Credentials
- Click Create OAuth Client
- Copy your
client_idandclient_secret
⚠️ Warning Never share your client credentials or commit them to version control. Use environment variables to store sensitive credentials.
Step 2: Request Access Token
Exchange your client credentials for an access token:
Code
Response:
Code
Step 3: Use Access Token
Include the access token in all API requests:
Code
Token Expiration
Access tokens expire after 1 hour (3600 seconds). When a token expires, request a new one using the same client credentials. Implement token refresh logic in your application to handle expiration automatically.
Example (JavaScript):
Code
Available Scopes
| Scope | Description |
|---|---|
read | Read access to resources |
write | Create and update resources |
delete | Delete resources |
admin | Full administrative access |
Request only the scopes your application needs. Multiple scopes can be space-separated: scope=read write delete
Rate Limiting
The API implements rate limiting to ensure fair usage:
- Free tier: 100 requests per hour
- Pro tier: 1,000 requests per hour
- Enterprise tier: Custom limits
Rate limit information is included in response headers:
Code
Error Handling
The API returns errors using the RFC 9457 Problem Details specification. All error responses use the application/problem+json content type.
HTTP Status Codes
| Code | Description |
|---|---|
200 | Success |
201 | Created |
204 | No Content |
400 | Bad Request - Invalid parameters |
401 | Unauthorized - Invalid or missing access token |
403 | Forbidden - Insufficient permissions |
404 | Not Found - Resource doesn't exist |
409 | Conflict - Resource state conflict |
422 | Unprocessable Entity - Validation failed |
429 | Too Many Requests - Rate limit exceeded |
500 | Internal Server Error |
503 | Service Unavailable |
Problem Details Response Format
All errors follow the RFC 7807 standard with these fields:
| Field | Type | Description |
|---|---|---|
type | string | URI reference identifying the problem type |
title | string | Short, human-readable summary |
status | integer | HTTP status code |
detail | string | Human-readable explanation specific to this occurrence |
instance | string | URI reference identifying the specific occurrence |
errors | array | (Optional) Validation errors for 422 responses |
Error Examples
400 Bad Request
Code
401 Unauthorized
Code
403 Forbidden
Code
404 Not Found
Code
409 Conflict
Code
422 Unprocessable Entity (Validation Errors)
Code
429 Rate Limit Exceeded
Code
Response Headers:
Code
500 Internal Server Error
Code
ℹ️ Info Include the
trace_idwhen contacting support to help us investigate the issue.
Error Handling Best Practices
- Always check the status code before processing the response
- Parse the Problem Details to understand what went wrong
- Handle 401 errors by refreshing your access token
- Respect 429 responses and implement exponential backoff
- Log trace_id values from 500 errors for support requests
- Display validation errors from 422 responses to users
Example Error Handling (JavaScript):
Code
Common Parameters
Pagination
List endpoints support pagination using the following parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
number | integer | 1 | Page number |
size | integer | 20 | Elements/ items per page or page size (max: 100) |
sortBy | string | updatedAt | Sort by property name of resource |
sortOrder | string | DESC | Sort order, ASC (ascending) or DESC (descending) |
totalElements | integer | 1 | Total number of elements/ items |
totalPages | integer | 1 | Total number of pages |
Response includes:
Code
Filtering
Many endpoints support filtering using query parameters:
Code
Sorting
Use the sort parameter to order results:
Code
Changelog
Version 0.1.0 (2026-02-11)
- Initial API release
- Added Resources endpoints
Support
Need Help?
- Documentation: docs.channelseal.com
- Email: support@channelseal.com
Report Issues
Found a bug or have a feature request? Open an issue on our GitHub repository.
Terms and Compliance
By using the ChannelSeal API, you agree to our:
Data Security
All API requests must use HTTPS. Requests made over HTTP will fail.
GDPR Compliance
ChannelSeal is GDPR compliant. For data deletion requests, contact privacy@channelseal.com.
ℹ️ Info Questions? This API documentation is constantly evolving. For the latest updates and detailed guides, visit our developer portal.