Appearance
Quick Start
Get started with Solenoid Meter in minutes.
Prerequisites
Get an API key from solenoid.systems/meter.
Your key will be prefixed with sm_ and should be kept secure.
Base URL
All API requests are made to:
https://api.solenoid.systemsAuthentication
Include your API key in the Authorization header with Bearer token format:
Authorization: Bearer sm_your_api_key_hereBasic Usage
1. Check Balance
Get the current balance for a user:
bash
curl -X GET https://api.solenoid.systems/v1/meter/balance \
-H "Authorization: Bearer sm_your_api_key_here"javascript
const response = await fetch('https://api.solenoid.systems/v1/meter/balance', {
headers: {
'Authorization': 'Bearer sm_your_api_key_here'
}
})
const data = await response.json()
console.log(data.balance) // Current balancepython
import requests
response = requests.get(
'https://api.solenoid.systems/v1/meter/balance',
headers={'Authorization': 'Bearer sm_your_api_key_here'}
)
data = response.json()
print(data['balance']) # Current balanceResponse:
json
{
"balance": 100,
"user_id": "usr_..."
}2. Deduct Credits
Atomically deduct credits from a user's balance:
bash
curl -X POST https://api.solenoid.systems/v1/meter/deduct \
-H "Authorization: Bearer sm_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"amount": 1}'javascript
const response = await fetch('https://api.solenoid.systems/v1/meter/deduct', {
method: 'POST',
headers: {
'Authorization': 'Bearer sm_your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({ amount: 1 })
})
if (response.status === 402) {
const error = await response.json()
console.log('Insufficient balance:', error.balance)
} else {
const data = await response.json()
console.log('New balance:', data.balance)
}python
import requests
response = requests.post(
'https://api.solenoid.systems/v1/meter/deduct',
headers={'Authorization': 'Bearer sm_your_api_key_here'},
json={'amount': 1}
)
if response.status_code == 402:
error = response.json()
print('Insufficient balance:', error['balance'])
else:
data = response.json()
print('New balance:', data['balance'])Success Response (200):
json
{
"balance": 99,
"user_id": "usr_..."
}Insufficient Balance Response (402):
json
{
"error": {
"code": "insufficient_balance",
"message": "Insufficient balance for this operation"
},
"balance": 0,
"user_id": "usr_..."
}3. Refill Credits
Add credits to a user's balance:
bash
curl -X POST https://api.solenoid.systems/v1/meter/refill \
-H "Authorization: Bearer sm_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"amount": 100}'javascript
const response = await fetch('https://api.solenoid.systems/v1/meter/refill', {
method: 'POST',
headers: {
'Authorization': 'Bearer sm_your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({ amount: 100 })
})
const data = await response.json()
console.log('New balance:', data.balance)python
import requests
response = requests.post(
'https://api.solenoid.systems/v1/meter/refill',
headers={'Authorization': 'Bearer sm_your_api_key_here'},
json={'amount': 100}
)
data = response.json()
print('New balance:', data['balance'])Response:
json
{
"balance": 100,
"user_id": "usr_..."
}Next Steps
- Read the API Reference for complete endpoint documentation
- Learn about Authentication best practices
- Integrate Solenoid Meter into your application