Skip to content

API Reference

The Guts REST API provides programmatic access to all platform features.

Base URL

https://api.guts.network

For self-hosted nodes, replace with your node's URL.

Authentication

Include your token in the Authorization header:

bash
curl -H "Authorization: Bearer guts_xxx" https://api.guts.network/api/user

See Authentication for details.

API Sections

SectionDescription
AuthenticationTokens and auth methods
RepositoriesRepository CRUD operations
Pull RequestsPRs and code review
IssuesIssue tracking
OrganizationsOrgs and teams
ConsensusBFT consensus status
ReleasesRelease management

Quick Reference

Repositories

MethodEndpointDescription
GET/api/reposList all repositories
POST/api/reposCreate a repository
GET/api/repos/{owner}/{name}Get a repository
PATCH/api/repos/{owner}/{name}Update a repository
DELETE/api/repos/{owner}/{name}Delete a repository

Issues

MethodEndpointDescription
GET/api/repos/{owner}/{name}/issuesList issues
POST/api/repos/{owner}/{name}/issuesCreate an issue
GET/api/repos/{owner}/{name}/issues/{number}Get an issue
PATCH/api/repos/{owner}/{name}/issues/{number}Update an issue

Pull Requests

MethodEndpointDescription
GET/api/repos/{owner}/{name}/pullsList pull requests
POST/api/repos/{owner}/{name}/pullsCreate a pull request
GET/api/repos/{owner}/{name}/pulls/{number}Get a pull request
PATCH/api/repos/{owner}/{name}/pulls/{number}Update a pull request
POST/api/repos/{owner}/{name}/pulls/{number}/mergeMerge a pull request

Reviews

MethodEndpointDescription
GET/api/repos/{owner}/{name}/pulls/{number}/reviewsList reviews
POST/api/repos/{owner}/{name}/pulls/{number}/reviewsCreate a review

Releases

MethodEndpointDescription
GET/api/repos/{owner}/{name}/releasesList releases
POST/api/repos/{owner}/{name}/releasesCreate a release
GET/api/repos/{owner}/{name}/releases/{id}Get a release
DELETE/api/repos/{owner}/{name}/releases/{id}Delete a release

Organizations

MethodEndpointDescription
GET/api/orgsList organizations
POST/api/orgsCreate an organization
GET/api/orgs/{org}Get an organization
GET/api/orgs/{org}/teamsList teams

Consensus

MethodEndpointDescription
GET/api/consensus/statusGet consensus status
GET/api/consensus/blocksList recent blocks
GET/api/consensus/blocks/{height}Get block by height
GET/api/consensus/validatorsList validators

Response Format

All responses are JSON:

json
{
  "name": "my-repo",
  "owner": "alice",
  "description": "My awesome project",
  "private": false,
  "created_at": "2025-01-01T00:00:00Z"
}

Pagination

List endpoints support pagination:

GET /api/repos?page=2&per_page=50

Response includes pagination info:

json
{
  "items": [...],
  "total_count": 100,
  "page": 2,
  "per_page": 50,
  "total_pages": 2
}

Errors

Errors follow this format:

json
{
  "error": "not_found",
  "message": "Repository not found",
  "details": null
}
StatusError CodeDescription
400bad_requestInvalid request parameters
401unauthorizedMissing or invalid token
403forbiddenInsufficient permissions
404not_foundResource not found
422validation_errorValidation failed
429rate_limitedRate limit exceeded
500internal_errorServer error

Rate Limits

Headers included in every response:

X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4999
X-RateLimit-Reset: 1234567890
X-RateLimit-Used: 1
  • Authenticated: 5000 requests/hour
  • Unauthenticated: 60 requests/hour

Released under the MIT License.