API Access

Generate and manage your API key for read-only access to Protocols and Experiments

Get Started
Generate an API key to access the Veilbreak API programmatically

No account required: Just provide your email address to generate a key

One key per email: Each email can have one active API key

30-day validity: Keys expire after 30 days and must be regenerated

Read-only access: API keys provide access to view Protocols and Experiments only

Authentication
Include your API key in the Authorization header

Authorization Header

Authorization: Bearer YOUR_API_KEY
Example Request
Sample API call using cURL

Get All Protocols

curl -X GET https://veilbreak.ui/api/protocols \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Get Single Experiment

curl -X GET https://veilbreak.ui/api/experiments/1 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
Example Response
Sample API response with pagination metadata (author information is excluded for API requests)
{
  "data": [
    {
      "id": 4,
      "title": "Code of Reality Protocol",
      "content": "<h2>Protocol Description</h2>...",
      "date": "2024-01-08T12:00:00Z",
      "laser_wavelength": 650,
      "laser_power": 1,
      "substance_dose": 1000,
      "projection_distance": 1.5,
      "substance": "N,N-DMT",
      "equipment": ["Laser Pointer", "Diffraction Grating"],
      "laser_class": "Class 2",
      "tags": ["diffraction", "visual-phenomena"]
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 10,
    "total": 15,
    "total_pages": 2,
    "has_more": true
  }
}
Available Endpoints
Read-only API endpoints accessible with your API key
GET /api/protocols

Retrieve all approved protocols with search, filtering, sorting, and pagination

GET /api/protocols/:id

Retrieve a specific protocol

GET /api/experiments

Retrieve all approved experiments with search, filtering, sorting, and pagination

GET /api/experiments/:id

Retrieve a specific experiment

GET /api/schema

Retrieve API schema and field definitions

Search & Filtering Capabilities
Powerful query parameters for protocols and experiments

Protocols Query Parameters

searchSearch in title and content
substanceFilter by substance (e.g., N,N-DMT, LSD)
equipmentFilter by equipment used
laser_classFilter by laser class (Class 1-4)
tagsFilter by tags (comma-separated)
wavelength_minMin wavelength (400-700nm)
wavelength_maxMax wavelength (400-700nm)
sort_bySort field (created_at, title, laser_wavelength, substance_dose)
sort_orderSort direction (asc, desc)
pagePage number (default: 1)
per_pageItems per page (default: 10, max: 100)

Experiments Query Parameters

searchSearch in title, content, symbols description
protocol_idFilter by protocol ID
observedFilter by code observation (true/false)
substanceFilter by substance
Plus all the same filtering and sorting options as protocols

Example Queries

Search for laser protocols:

/api/protocols?search=laser&per_page=20

Filter by substance and wavelength:

/api/protocols?substance=N,N-DMT&wavelength_min=600&wavelength_max=700

Get experiments that observed the code:

/api/experiments?observed=true&sort_by=created_at&sort_order=desc
Rate Limits & Notes

• No rate limits are currently enforced

• API responses exclude author names and email addresses for privacy

• All timestamps are in ISO 8601 format (UTC)

• Keys can be regenerated at any time, invalidating the previous key

• API keys are for read-only access only - you cannot create or modify data