REST API Quickstart

REST API Quickstart

Integrate SeeMe.ai with any programming language using our REST API. This guide covers authentication and common endpoints.

What You’ll Accomplish

  • Authenticate with the API
  • Make predictions via HTTP
  • List and manage resources
  • Handle API responses

Prerequisites

Base URL

All API requests use this base URL:

https://api.seeme.ai/api/v1

Authentication

Include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Test Your Connection

Make a Prediction

The most common operation: send data to a model and get predictions.

Image Prediction

Response Format

{
  "id": "pred_abc123",
  "model_id": "model_xyz",
  "predictions": [
    {
      "label": "cat",
      "confidence": 0.9432
    },
    {
      "label": "dog",
      "confidence": 0.0321
    }
  ],
  "inference_time_ms": 45,
  "created_at": "2024-01-15T10:30:00Z"
}

Common Endpoints

Models

MethodEndpointDescription
GET/modelsList your models
GET/models/{id}Get model details
GET/models/{id}/versionsList model versions
POST/models/{id}/predictMake a prediction

Datasets

MethodEndpointDescription
GET/datasetsList your datasets
POST/datasetsCreate a dataset
GET/datasets/{id}Get dataset details
DELETE/datasets/{id}Delete a dataset
POST/datasets/{id}/versions/{vid}/uploadUpload data

Jobs

MethodEndpointDescription
GET/jobsList training jobs
POST/jobsCreate a training job
GET/jobs/{id}Get job status
POST/jobs/{id}/cancelCancel a job

List Models Example

Create a Training Job

Error Handling

The API returns standard HTTP status codes:

CodeMeaning
200Success
201Created
400Bad request (check your parameters)
401Unauthorized (check your API key)
403Forbidden (insufficient permissions)
404Not found
429Rate limited (slow down)
500Server error

Error Response Format

{
  "error": {
    "code": "invalid_request",
    "message": "The 'file' field is required",
    "details": {
      "field": "file"
    }
  }
}

Handle Errors in Code

import requests

response = requests.post(url, headers=headers, files=files)

if response.status_code == 200:
    predictions = response.json()["predictions"]
elif response.status_code == 401:
    print("Invalid API key")
elif response.status_code == 404:
    print("Model not found")
elif response.status_code == 429:
    print("Rate limited - wait and retry")
else:
    error = response.json().get("error", {})
    print(f"Error: {error.get('message', 'Unknown error')}")

Rate Limits

PlanRequests/minuteRequests/day
Free601,000
Pro30050,000
EnterpriseCustomUnlimited

Rate limit headers are included in every response:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1705312800

Pagination

List endpoints support pagination:

GET /models?limit=20&offset=0

Response includes pagination info:

{
  "models": [...],
  "pagination": {
    "total": 45,
    "limit": 20,
    "offset": 0,
    "has_more": true
  }
}

What’s Next?

More REST API Examples

These pages include detailed REST API examples alongside Python SDK code:

Continue Learning