Quick Start Guide

Get started with BitMind Enterprise API in 5 minutes.

Quick Start

  • Contact us to set up an enterprise account: https://bitmind.ai/contact

  • Once approved, configure your access in the API Platform: https://app.bitmind.ai/api/enterprise

  • Below is an example of accessing the endpoints with standard OAuth 2.0. See the detailed authentication overview for a full summary of all authentication methods.

0. Configure OAuth Authentication

  1. Contact the BitMind team to get your enterprise account set up

  2. Visit https://app.bitmind.ai/api/enterprise to create your OAuth client. Use standard (non-mTLS) authentication to follow the rest of the steps on this page.

OAuth Flow

1. Get OAuth Token

curl -X POST https://enterprise.bitmind.ai/v1/oauth/token \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET"

Response:

{
  "access_token": "eyJhbGc...",
  "token_type": "Bearer",
  "expires_in": 3600
}

2. Process Image

curl https://enterprise.bitmind.ai/image \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: image/jpeg" \
  --data-binary @test.jpg

Response:

{
  "isAI": true,
  "confidence": 0.8234,
  "processingTime": 0.045
}

Python Client

import requests
import time
import os

class BitMindClient:
    def __init__(self, client_id, client_secret):
        self.client_id = client_id
        self.client_secret = client_secret
        self.base_url = "https://enterprise.bitmind.ai"
        self.token = None
        self.token_expires = 0
    
    def get_token(self):
        """Get OAuth token (auto-refresh)"""
        if self.token and time.time() < self.token_expires - 60:
            return self.token
        
        response = requests.post(
            f"{self.base_url}/v1/oauth/token",
            data={
                "grant_type": "client_credentials",
                "client_id": self.client_id,
                "client_secret": self.client_secret
            }
        )
        response.raise_for_status()
        data = response.json()
        self.token = data["access_token"]
        self.token_expires = time.time() + data["expires_in"]
        return self.token
    
    def process_image(self, image_path):
        """Process single image"""
        with open(image_path, "rb") as f:
            response = requests.post(
                f"{self.base_url}/image",
                headers={
                    "Authorization": f"Bearer {self.get_token()}",
                    "Content-Type": "image/jpeg"
                },
                data=f.read()
            )
        response.raise_for_status()
        return response.json()

# Usage
client = BitMindClient(
    os.getenv("BITMIND_CLIENT_ID"),
    os.getenv("BITMIND_CLIENT_SECRET")
)

result = client.process_image("test.jpg")
print(f"AI: {result['isAI']}, Confidence: {result['confidence']:.2%}")

Available Endpoints

Endpoint
Method
Purpose

/v1/oauth/token

POST

Get access token

/health

GET

Health check (no auth)

/status

GET

Service status

/image

POST

Analyze image

/video

POST

Analyze video

/batch_image

POST

Batch images

/batch_video

POST

Batch videos

Response Format

{
  "isAI": true,
  "confidence": 0.8234,
  "processingTime": 0.045
}
  • isAI: Boolean - True if AI-generated (confidence >= 0.5)

  • confidence: Float - Probability score (0.0 to 1.0)

  • processingTime: Float - Processing time in seconds

Common Issues

Error
Solution

401 Unauthorized

Check credentials, refresh token if expired

403 Forbidden

Permission denied or rate limited

413 Payload Too Large

Reduce file size (max 100 MB)

429 Too Many Requests

Rate limited - wait 60s

Next Steps

  1. Contact: [email protected] for production credentials

Last updated