Developer API
RESTful JSON endpoints for trust signals, public profile summaries, and honor-note data — authenticated with API keys you control from your dashboard.
1. Get API Key
Sign in and visit your API Keys dashboard to request a sandbox or production key.
2. Make Request
Include your key in the Authorization header as Bearer bmh_...
3. Get Data
Receive JSON responses with honor scores, profiles, and notes data.
Base URL
https://bymyhonor.com/api
Authentication
Send your API key in the Authorization header:
Authorization: Bearer bmh_your_api_key_here
Rate Limits
| Environment | Limit | Window |
|---|---|---|
| Sandbox | 500 requests | 24 hours |
| Production | 1,000 requests | 24 hours |
Rate limit headers included in responses: X-RateLimit-Remaining, X-RateLimit-Reset
Endpoints
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| GET | /api/public/honor/{accountid} |
Public | Public honor profile (throttled) |
| GET | /api/v1/ping |
API Key | Health check |
| GET | /api/v1/trust/{accountid} |
API Key | Honor score & validation status |
| GET | /api/v1/profile/{accountid} |
API Key | Public profile fields |
| GET | /api/v1/honornotes/{accountid} |
API Key | Recent closed honor notes |
| GET | /api/v1/summary/{accountid} |
API Key | Aggregated honor stats |
Endpoint Details
/api/v1/ping
API Key Required
Health check endpoint. Returns a pong message with your user ID and environment.
Example Request
curl -X GET "https://api.bymyhonor.com/api/v1/ping" \
-H "Authorization: Bearer bmh_your_api_key_here"
Response 200 OK
{
"message": "pong",
"user_id": 123,
"environment": "sandbox"
}
/api/v1/trust/{accountid}
API Key Required
Returns the honor score and validation status for a user. Useful for trust verification integrations.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
accountid | string | User's unique account ID (e.g., NG55RGIULP) |
Example Request
curl -X GET "https://api.bymyhonor.com/api/v1/trust/NG55RGIULP" \
-H "Authorization: Bearer bmh_your_api_key_here"
Response 200 OK
{
"accountid": "NG55RGIULP",
"full_name": "John Smith",
"honor_score": 85,
"validation_status": "validated"
}
Error Responses
| Status | Code | Message |
|---|---|---|
| 404 | NOT_FOUND | User not found |
| 429 | RATE_LIMITED | Too many requests |
/api/v1/profile/{accountid}
API Key Required
Returns limited public profile information for a user.
Response 200 OK
{
"accountid": "NG55RGIULP",
"full_name": "John Smith",
"country_of_residence": "Nigeria",
"validation_status": "validated"
}
/api/v1/honornotes/{accountid}
API Key Required
Returns up to 50 recent closed honor notes for a user. Notes include title, status, and sender info.
Response 200 OK
{
"accountid": "NG55RGIULP",
"honor_notes": [
{
"id": "hn123abc",
"title": "Excellent service delivery",
"status": "accepted",
"closed_format": "positive",
"created_at": "2026-08-01 14:30:00",
"sender_accountid": "AB1234CD"
},
{
"id": "hn456def",
"title": "Fast and reliable",
"status": "accepted",
"closed_format": "positive",
"created_at": "2026-07-15 09:15:00",
"sender_accountid": "EF5678GH"
}
]
}
/api/v1/summary/{accountid}
API Key Required
Returns aggregated honor note statistics including total, positive, and negative counts.
Response 200 OK
{
"accountid": "NG55RGIULP",
"full_name": "John Smith",
"honor_score": 85,
"validation_status": "validated",
"honor_notes": {
"total": 24,
"positive": 20,
"negative": 4
}
}
/api/public/honor/{accountid}
Public (No Auth)
Public endpoint — no API key required. Returns basic honor profile info. Rate limited to 60 requests per minute per IP.
Response 200 OK
{
"name": "John Smith",
"account_id": "NG55RGIULP",
"honor_score": 85,
"honor_score_color": "#10b981",
"completed_honor_notes": 24,
"updated": "2026-08-10T14:30:00+00:00",
"profile_url": "https://bymyhonor.com/profile/NG55RGIULP"
}
Error Codes Reference
| Status | Code | Description | How to Fix |
|---|---|---|---|
| 401 | UNAUTHORIZED |
Missing or invalid API key | Check your Authorization header |
| 403 | FORBIDDEN |
API key revoked or expired | Generate a new key in dashboard |
| 404 | NOT_FOUND |
User or resource not found | Verify the account ID exists |
| 429 | RATE_LIMITED |
Too many requests | Wait until rate limit resets |
| 500 | SERVER_ERROR |
Internal server error | Contact support |