API
Identity operations
The authenticated principal and public profiles.
The authenticated principal and public profiles. Paths are relative to https://reuseforge.com/api/v1.
| Operation | Method | Path |
|---|---|---|
| Who am I | GET | /me |
| Get a public profile | GET | /accounts/{handle} |
Who am I
GET /me Enabled on reuseforge.com
The authenticated account, the credential used (scopes, spend limit) and the organizations you can act for.
| Property | Value |
|---|---|
| Operation ID | get_me |
| Authentication | Any valid bearer token. |
| Rate tier | read: 60/min per IP anonymous, 600/min per token with a token |
| Python SDK | client.get_me(...) |
| JavaScript SDK | client.getMe(...) |
| CLI | rf whoami |
| MCP tool | get_me |
| Deployments | reuseforge.com: enabled. Python node: implemented. |
Responses
| Status | Meaning | Body |
|---|---|---|
| 200 OK | The principal. | application/json: Me |
| 401 | Missing, malformed, expired or revoked credentials. | Problem. Codes: unauthorized, invalid_token, token_expired |
| 429 | Rate limit for the operation's tier exceeded. Wait Retry-After seconds. | Problem. Codes: rate_limited |
Example
curl
curl 'https://reuseforge.com/api/v1/me' \
-H "Authorization: Bearer $REUSEFORGE_TOKEN"Python
import reuseforge
client = reuseforge.Client() # token from REUSEFORGE_TOKEN, or the file `rf login` wrote
result = client.get_me()
print(result["id"])JavaScript
import { ReuseForge } from '@reuseforge/sdk';
const client = new ReuseForge({ token: process.env.REUSEFORGE_TOKEN });
const result = await client.getMe();
console.log(result.id);CLI
rf whoami
# rf whoami
# all options: rf whoami --helpResponse 200 OK:
{
"id": "acc_samdevuser22",
"object": "account",
"type": "user",
"handle": "samdev",
"display_name": "Sam Okafor",
"avatar_url": "",
"email": "sam@example.com",
"email_verified": true,
"role": "user",
"created_at": "2026-08-14T07:30:00Z",
"auth": {
"via": "token",
"scopes": [
"items:read",
"items:publish",
"orders:create",
"orders:pay"
],
"token_id": "tok_agentreader2",
"spend_limit_cents": 5000,
"spent_cents": 1200
},
"orgs": [
{
"account": {
"id": "acc_acmelabsorg2",
"type": "org",
"handle": "acme",
"display_name": "Acme Labs",
"verified": true,
"avatar_url": ""
},
"role": "write"
}
]
}Get a public profile
GET /accounts/{handle} Enabled on reuseforge.com
Public profile of a user or organization.
| Property | Value |
|---|---|
| Operation ID | get_account |
| Authentication | None required. A token raises your rate limits and shows your private items. |
| Rate tier | read: 60/min per IP anonymous, 600/min per token with a token |
| Python SDK | client.get_account(...) |
| JavaScript SDK | client.getAccount(...) |
| CLI | rf accounts get |
| MCP tool | get_account |
| Deployments | reuseforge.com: enabled. Python node: implemented. |
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
handle | path | string | yes |
Responses
| Status | Meaning | Body |
|---|---|---|
| 200 OK | The profile. | application/json: Account |
| 404 | No such resource, or it is private and the caller may not know it exists. | Problem. Codes: not_found |
| 429 | Rate limit for the operation's tier exceeded. Wait Retry-After seconds. | Problem. Codes: rate_limited |
Example
curl
curl 'https://reuseforge.com/api/v1/accounts/acme'Python
import reuseforge
client = reuseforge.Client() # token from REUSEFORGE_TOKEN, or the file `rf login` wrote
result = client.get_account("acme")
print(result["id"])JavaScript
import { ReuseForge } from '@reuseforge/sdk';
const client = new ReuseForge({ token: process.env.REUSEFORGE_TOKEN });
const result = await client.getAccount("acme");
console.log(result.id);CLI
rf accounts get acme
# rf accounts get <handle>
# all options: rf accounts get --helpResponse 200 OK:
{
"id": "acc_acmelabsorg2",
"object": "account",
"type": "org",
"handle": "acme",
"display_name": "Acme Labs",
"bio": "Document automation building blocks for agents.",
"avatar_url": "",
"website": "https://acme.example",
"location": "Berlin",
"links": {
"github": "acme",
"huggingface": "acme-labs"
},
"verified": true,
"followers_count": 318,
"following_count": 4,
"stats": {
"items": 14,
"stars_received": 2210
},
"created_at": "2026-01-11T09:00:00Z"
}