Supported Languages
23blocks is a REST API platform. Any language that can make HTTP requests can use 23blocks. There's no vendor lock-in, no proprietary protocols, no special requirements.
First-Class Support
TypeScript / JavaScript
Our Frontend SDK provides the best developer experience with:
- Full TypeScript types for all API responses
- Auto-completion in your IDE
- Built-in authentication helpers
- Automatic token refresh
- Framework-specific integrations
npm install @23blocks/sdk
import { BlocksClient } from '@23blocks/sdk';
const client = new BlocksClient({
baseUrl: 'https://api.23blocks.com',
appId: 'your-app-id',
apiKey: 'your-api-key'
});
// Full type safety and auto-completion
const user = await client.auth.register({
email: 'user@example.com',
password: 'securePassword123'
});
Server-Side Languages
Since 23blocks uses standard REST APIs, you can integrate with any server-side language.
Python
import requests
headers = {
'Authorization': 'Bearer your-api-key',
'Content-Type': 'application/json',
'X-App-ID': 'your-app-id'
}
# Register a user
response = requests.post(
'https://api.23blocks.com/v1/auth/register',
headers=headers,
json={
'email': 'user@example.com',
'password': 'securePassword123'
}
)
user = response.json()
C# / .NET
using System.Net.Http;
using System.Text.Json;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer your-api-key");
client.DefaultRequestHeaders.Add("X-App-ID", "your-app-id");
var content = new StringContent(
JsonSerializer.Serialize(new {
email = "user@example.com",
password = "securePassword123"
}),
Encoding.UTF8,
"application/json"
);
var response = await client.PostAsync(
"https://api.23blocks.com/v1/auth/register",
content
);
PHP
<?php
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.23blocks.com/v1/auth/register',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer your-api-key',
'Content-Type: application/json',
'X-App-ID: your-app-id'
],
CURLOPT_POSTFIELDS => json_encode([
'email' => 'user@example.com',
'password' => 'securePassword123'
])
]);
$response = curl_exec($ch);
$user = json_decode($response, true);
Ruby
require 'net/http'
require 'json'
uri = URI('https://api.23blocks.com/v1/auth/register')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer your-api-key'
request['Content-Type'] = 'application/json'
request['X-App-ID'] = 'your-app-id'
request.body = {
email: 'user@example.com',
password: 'securePassword123'
}.to_json
response = http.request(request)
user = JSON.parse(response.body)
Go
package main
import (
"bytes"
"encoding/json"
"net/http"
)
func main() {
payload := map[string]string{
"email": "user@example.com",
"password": "securePassword123",
}
body, _ := json.Marshal(payload)
req, _ := http.NewRequest(
"POST",
"https://api.23blocks.com/v1/auth/register",
bytes.NewBuffer(body),
)
req.Header.Set("Authorization", "Bearer your-api-key")
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-App-ID", "your-app-id")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
}
Java
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
String json = """
{
"email": "user@example.com",
"password": "securePassword123"
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.23blocks.com/v1/auth/register"))
.header("Authorization", "Bearer your-api-key")
.header("Content-Type", "application/json")
.header("X-App-ID", "your-app-id")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(
request,
HttpResponse.BodyHandlers.ofString()
);
API Reference
For complete API documentation with all endpoints, request/response schemas, and error codes:
Need Help?
- Check the Getting Started guide
- Browse the Blocks documentation
- Visit our Support Hub