API Documentation
Build seamless, high-performance integrations with Omnyra's reliable REST API. Manage campaigns, automations, and senders programmatically.
Base URL: https://omnyra.marketing/api/v1
Find your Team ID in your Dashboard under Settings > API
Authentication
The Omnyra API requires an API key for authentication. You must include your key in the header of all HTTP requests. Requests without a valid token will be rejected with a 403 Forbidden or 401 Unauthorized error.
Never hardcode your API tokens into frontend applications or publicly accessible repositories. Always proxy requests through your own secure backend.
REST Capabilities
All modules natively support full RESTful interactions. Use standard HTTP verbs on the resource base URLs to achieve bidirectional sync.
Fetch collections of resources. Can include query parameters (e.g., ?startDate for filtering arrays).
Generates a new UUID entity and provisions it securely within your team's workspace.
Targets a specific {id} to update properties securely. You only need to send fields you wish to mutate.
Permanently removes a specific {id} and cascading elements from the ecosystem.
Live API Tester Interactive
Test your API integrations dynamically straight from the browser. Enter your credentials below to orchestrate a dummy GET request and observe the native JSON response.
Campaigns
/teams/{teamId}/campaigns
Create, list, adapt, or remove email campaigns for your teams dynamically. Supports ?startDate=Y-m-d on GET lists.
Payload Reference
-
String label for the campaign.
nameRequired -
String for segmentation categorisation.
nicheOptional -
UUID binding. Must be a template bound to the same team.
templateIdOptional
{
"name": "Black Friday Mega Deal",
"niche": "e-commerce",
"sender": "noreply@myshop.com",
"templateId": "8f9a2e-4b2c..."
}
Importing Contacts into Campaign
/teams/{teamId}/campaigns/{campaignId}/contacts
- If a contact email already exists, it updates their name, url, and merges any custom JSON metadata fields.
- Maximum batch limit is securely set at 500 contacts per request.
Payload Elements
-
Array of objects. Each object must contain an
contactsRequiredemailstring. Optional keys:name,url,metadata. -
If true, unlinks and removes all active contacts mapped to this campaign boundary before iterating the payload payload. Fallback behavior is false (appends).
overwriteBoolean
{
"overwrite": false,
"contacts": [
{
"email": "anna@example.com",
"name": "Anna Smith",
"metadata": {
"source": "api_import"
}
}
]
}
Automations
/teams/{teamId}/automations
Scaffold structural logic trees. Define the automation bundle limits, descriptions, and operational capacity before filling them with scheduled phases.
Payload Reference
-
String title.
nameRequired -
UUID of the bound campaign.
campaignIdRequired -
Internal description of the pipeline.
descriptionOptional -
Whether the automation logic is actually checking and evaluating subscribers. Default stringual false.
isActiveBoolean
{
"name": "B2B Outreach 2026",
"campaignId": "8f9a2e-4b2c...",
"description": "Cold lead activation.",
"isActive": true,
"useAI": false
}
Automation Phases (Scheduling)
/teams/{teamId}/automations/{automationId}/phases
Attach scheduled emails directly into previously generated automations. Complex timezone calculus is abstracted automatically based on payload entries.
Payload Specifics
-
Target Email Framework (UUID).
templateIdRequired -
Must be
triggerTypeEnumimmediate,delayed, orscheduled. -
Mandatory if type involves 'delayed'. Represents physical delay offset in integer.
delayMinutesTrigger Dependent -
Mandatory if type involves 'scheduled'. Syntax
executionTimeTrigger DependentHH:MM. Use alongsidetimezonestring (e.g. Europe/Bucharest).
{
"name": "After 2 days chaser",
"templateId": "2bfd2c...",
"triggerType": "delayed",
"delayMinutes": 2880,
"sortOrder": 2
}
Templates
/teams/{teamId}/templates
Programmatically generate custom Email Templates inside your team workspace prior to linking them into targeted Automations or Campaigns.
Payload Details
-
Internal label for the template identifier.
nameRequired -
The email's title block or subject line.
subjectRequired -
HTML structure or raw text content string.
contentOptional -
Grouping string tag.
categoryOptional -
False by default. Flag to establish workspace availability.
isPublicBoolean
{
"name": "B2B Outreach Intro",
"subject": "Hi {{ name }} - Quick Question",
"content": "Hey.
",
"category": "outbound",
"isPublic": true
}
SMTP Senders
/teams/{teamId}/senders
Bridge direct connections between your app's custom client accounts and Omnyra through API credential loading. Perfect for reseller structures and agencies setting up their sub-client funnels automatically.
-
userRequired -
passwordRequired -
hostRequired -
portRequired (e.g. 587) -
dailyLimitInteger
{
"user": "aws_ses_user_id11",
"password": "aws_ses_password_secret",
"host": "email-smtp.us-east-1.amazonaws.com",
"port": 587,
"name": "Brand A - Amazon SES",
"username": "Brand A Updates",
"dailyLimit": 20000
}
Standard Responses
{
"success": true,
"data": {
"id": "e9b1...",
"name": "Resource label",
"createdAt": "2026-04-04T12:00:00+00:00"
}
}
{
"error": "Campaign name is required"
}