API Endpoints
Complete reference of all available API endpoints and their usage.
Base URL
https://api.helmbay.com/v1
Rate Limiting
The API is rate limited to 1000 requests per 1 hour. The remaining requests are returned in the X-RateLimit-Remaining header.
curl -I https://api.helmbay.com/v1/repositories
HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1621180800
Common Responses
200 OK
Request successful
{
"data": {},
"meta": {}
}
400 Bad Request
Invalid request parameters
{
"error": {
"code": "invalid_parameter",
"message": "Invalid parameter: name"
}
}
401 Unauthorized
Missing or invalid authentication
{
"error": {
"code": "unauthorized",
"message": "Invalid API key"
}
}
403 Forbidden
Insufficient permissions
{
"error": {
"code": "forbidden",
"message": "Insufficient permissions"
}
}
Repositories
GET
/v1/repositories
List all repositories
Parameters
Name | Type | Description | Required |
---|---|---|---|
page | integer | Page number for pagination | Optional |
limit | integer | Number of items per page | Optional |
Response
{
"data": [
{
"id": "repo-id",
"name": "my-charts",
"description": "My Helm charts",
"created_at": "2024-03-20T12:00:00Z"
}
],
"meta": {
"total": 100,
"page": 1,
"limit": 10
}
}
POST
/v1/repositories
Create a new repository
Parameters
Name | Type | Description | Required |
---|---|---|---|
name | string | Repository name | Required |
description | string | Repository description | Optional |
Request Body
{
"name": "my-charts",
"description": "My Helm charts"
}
Response
{
"data": {
"id": "repo-id",
"name": "my-charts",
"description": "My Helm charts",
"created_at": "2024-03-20T12:00:00Z"
}
}
Charts
GET
/v1/repositories/:repo/charts
List charts in a repository
Parameters
Name | Type | Description | Required |
---|---|---|---|
repo | string | Repository name | Required |
version | string | Filter by version | Optional |
Response
{
"data": [
{
"name": "mychart",
"version": "1.0.0",
"description": "A Helm chart",
"created_at": "2024-03-20T12:00:00Z"
}
]
}
POST
/v1/repositories/:repo/charts
Upload a chart to repository
Parameters
Name | Type | Description | Required |
---|---|---|---|
repo | string | Repository name | Required |
Request Body
Multipart form data with chart archive
Response
{
"data": {
"name": "mychart",
"version": "1.0.0",
"digest": "sha256:...",
"created_at": "2024-03-20T12:00:00Z"
}
}
Teams
GET
/v1/teams
List all teams
Parameters
Name | Type | Description | Required |
---|---|---|---|
organization | string | Organization name | Optional |
Response
{
"data": [
{
"id": "team-id",
"name": "frontend-team",
"description": "Frontend developers",
"member_count": 5
}
]
}
POST
/v1/teams/:team/members
Add member to team
Parameters
Name | Type | Description | Required |
---|---|---|---|
team | string | Team name | Required |
Request Body
{
"email": "user@example.com",
"role": "member"
}
Response
{
"data": {
"id": "member-id",
"email": "user@example.com",
"role": "member",
"added_at": "2024-03-20T12:00:00Z"
}
}