Developer Docs

API Reference

REST API for programmatic contact scheduling, TLE management, pass prediction, and webhook-based event delivery. JSON over HTTPS. API key authentication. No SOAP, no EDI, no proprietary SDK required. Base URL: https://api.orbitvein.com/v1

REST
JSON over HTTPS
100/min
Rate limit (standard)
TLS 1.3
Transport security
Authentication

API Key Authentication

All API requests require an API key passed in the X-API-Key header. API keys are provisioned by Orbitvein after you submit the contact form. Each key is scoped to your organization and associated with your NORAD IDs and spacecraft list.

Request header
X-API-Key: orbv_sk_live_<your_api_key>
Standard rate limit
100 req/min
Custom tier limit
Negotiable
Key provisioning
Via contact form
Endpoints

API Endpoint Reference

MethodPathDescriptionKey Parameters
POST /contacts/schedule Schedule a contact window at a specific station norad_id, station, aos_utc, los_utc, frequency_band, aperture_m, priority
GET /passes/predict Predict all passes for a spacecraft over the next N days norad_id, days (1-7), min_elevation
POST /tle/ingest Ingest or update TLE for a spacecraft norad_id, mission_name, refresh_cadence, auto_update
GET /stations/availability Check station availability for a time window start_utc, end_utc, frequency_band, aperture_min
GET /contacts/{id}/status Get status and post-contact report for a scheduled contact contact_id (path param)
Examples

Schedule a Contact

Python (requests)
import requests

api_key = "orbv_sk_live_..."
base_url = "https://api.orbitvein.com/v1"

# Schedule a contact
response = requests.post(
    f"{base_url}/contacts/schedule",
    headers={"X-API-Key": api_key},
    json={
        "norad_id": 58320,
        "station": "ZA-Alpha",
        "aos_utc": "2025-05-14T03:42:18Z",
        "los_utc": "2025-05-14T03:53:44Z",
        "frequency_band": "X",
        "aperture_m": 5.4,
        "priority": "standard",
        "ccsds_mode": "TM_TC"
    }
)
contact = response.json()
print(contact["contact_id"], contact["status"])
cURL
curl -X POST https://api.orbitvein.com/v1/contacts/schedule \
  -H "X-API-Key: orbv_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "norad_id": 58320,
    "station": "ZA-Alpha",
    "aos_utc": "2025-05-14T03:42:18Z",
    "los_utc": "2025-05-14T03:53:44Z",
    "frequency_band": "X",
    "aperture_m": 5.4,
    "priority": "standard",
    "ccsds_mode": "TM_TC"
  }'

Response

JSON response — 201 Created
{
  "contact_id": "ctct_7aKx29mBnQ",
  "status": "confirmed",
  "station": "ZA-Alpha",
  "aos_utc": "2025-05-14T03:42:18Z",
  "los_utc": "2025-05-14T03:53:44Z",
  "aperture_m": 5.4,
  "frequency_band": "X",
  "delivery_endpoint": "s3://your-bucket/contacts/ctct_7aKx29mBnQ/"
}
Webhooks

Event Notifications

Orbitvein pushes contact lifecycle events to your configured webhook endpoint. Configure your webhook URL via the contact form when requesting your API key.

contact.aos Antenna acquisition of signal — contact started
contact.los Loss of signal — contact ended, data processing begins
contact.data_ready CCSDS-framed packet capture delivered to your endpoint
schedule.conflict_detected Your scheduled contact has a conflict — alternative windows included in payload

Webhook Payload Example

contact.data_ready payload
{
  "event": "contact.data_ready",
  "contact_id": "ctct_7aKx29mBnQ",
  "norad_id": 58320,
  "station": "ZA-Alpha",
  "actual_aos_utc": "2025-05-14T03:42:21Z",
  "actual_los_utc": "2025-05-14T03:53:41Z",
  "contact_duration_s": 680,
  "delivery_endpoint": "s3://your-bucket/contacts/ctct_7aKx29mBnQ/",
  "frame_count": 14280,
  "peak_elevation_deg": 71.3
}

Get Your API Key

Keys are provisioned after a brief operator onboarding — typically within one business day. Contact us with your NORAD ID, spacecraft name, and primary frequency band. No procurement approval process. No 30-day sales cycle.