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"
  }
}

Next Steps

Learn about rate limits and best practices for using the API.