Skip to main content

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:

View Full API Reference


Need Help?