Netcore Cloud Rules API

The Rules API from Netcore Cloud — 3 operation(s) for rules.

Operations 5

POST /rules Create a rule #
GET /rules List all rules #
DELETE /rules/{id} Delete a rule #
PUT /rules/{id} Update a rule #
POST /rules/validate Validate a rule expression #

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-campaign-specific-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-audience-details-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-filter-block-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-output-block-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-conversion-tracking-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-google-analytics-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-route-create-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-route-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-rule-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-rule-create-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-incoming-auth-upsert-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-netcore-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-payment-status-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-template-list-success-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-refund-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-consent-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-refund-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-flow-list-success-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-json-single-api-v2-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/netcorecloud/json-schema/netcorecloud-dlrreport-response-schema.json

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/netcorecloud:netcorecloud-rules-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

netcorecloud-rules-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Orbit Router Rules API
  version: 1.0.0
  description: Complete API specification for the Orbit Router email routing platform.
  contact:
    name: Orbit Engineering
  license:
    name: Proprietary
servers:
- url: https://orbitus.netcorecloud.com
  description: Production — Orbit Engine (HTTP Relay)
- url: https://orbitus.netcorecloud.com/apiorbit
  description: Production — Orbit Backend (Config & Management)
security: []
tags:
- name: Rules
paths:
  /rules:
    post:
      operationId: createRule
      tags:
      - Rules
      summary: Create a rule
      description: Creates a new rule with route assignments. Expression is validated at creation time.
      security:
      - BackendJWT: []
      parameters:
      - $ref: '#/components/parameters/ClientIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleCreate'
      responses:
        '201':
          description: Rule created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '400':
          description: Validation error (invalid expression, missing fields).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackendErrorResponse'
    get:
      operationId: listRules
      tags:
      - Rules
      summary: List all rules
      description: Lists rules for the current client, including associated route assignments with weights.
      security:
      - BackendJWT: []
      parameters:
      - $ref: '#/components/parameters/ClientIdHeader'
      responses:
        '200':
          description: List of rules.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Rule'
  /rules/{id}:
    parameters:
    - $ref: '#/components/parameters/ResourceId'
    delete:
      operationId: deleteRule
      tags:
      - Rules
      summary: Delete a rule
      description: Deletes a rule and all its route/provider associations.
      security:
      - BackendJWT: []
      parameters:
      - $ref: '#/components/parameters/ClientIdHeader'
      responses:
        '200':
          description: Rule deleted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: rule deleted
        '404':
          description: Rule not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackendErrorResponse'
    put:
      operationId: updateRule
      tags:
      - Rules
      summary: Update a rule
      description: Update a rule. If `rule_routes` is provided, existing route mappings are **replaced entirely**.
      security:
      - BackendJWT: []
      parameters:
      - $ref: '#/components/parameters/ClientIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleCreate'
      responses:
        '200':
          description: Rule updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '404':
          description: Rule not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackendErrorResponse'
  /rules/validate:
    post:
      operationId: validateRuleExpression
      tags:
      - Rules
      summary: Validate a rule expression
      description: Validates a rule expression without saving. Uses `expr.Compile()` to verify syntax.
      security:
      - BackendJWT: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - expression
              properties:
                expression:
                  type: string
                  description: Rule expression to validate.
                  example: Contains(from_domain, "example.com") && size > 1024
      responses:
        '200':
          description: Validation result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  valid:
                    type: boolean
                  error:
                    type: string
                    description: Present only when `valid` is `false`.
              examples:
                valid:
                  value:
                    valid: true
                invalid:
                  value:
                    valid: false
                    error: unexpected token EOF (1:42)
components:
  schemas:
    BackendErrorResponse:
      type: object
      properties:
        error:
          type: string
        field:
          type: string
          description: Optional field that caused the error.
    RuleRouteAssignment:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        provider_name:
          type: string
          readOnly: true
        route_id:
          type: integer
        route_name:
          type: string
          readOnly: true
        weight:
          type: integer
          minimum: 0
          maximum: 100
          description: Distribution weight.
        enabled:
          type: boolean
          default: true
    RuleCreate:
      type: object
      required:
      - rule_name
      - expression
      - priority
      - enabled
      properties:
        rule_name:
          type: string
        expression:
          type: string
          description: Must compile with `expr.Compile()`.
        tag:
          type: string
          default: default
        priority:
          type: integer
          description: Lower number = higher priority.
        enabled:
          type: boolean
        rule_routes:
          type: array
          items:
            type: object
            required:
            - route_id
            - weight
            properties:
              route_id:
                type: integer
                description: Must exist for the current client.
              weight:
                type: integer
                minimum: 0
                maximum: 100
              enabled:
                type: boolean
                default: true
    Rule:
      type: object
      properties:
        id:
          type: integer
        client_id:
          type: integer
        rule_name:
          type: string
        tag:
          type: string
        priority:
          type: integer
          description: Lower number = higher priority.
        expression:
          type: string
          description: 'Expression evaluated by `expr.Compile()`. Available variables:

            `from_address`, `from_domain`, `from_local`, `to_address`, `to_domain`,

            `to_local`, `headers`, `remote_ip`, `helo`, `size`.

            Helper functions: `StartsWith()`, `EndsWith()`, `Contains()`, `Matches()`,

            `ToLower()`, `ToUpper()`, `Trim()`.

            '
        enabled:
          type: boolean
        rule_routes:
          type: array
          items:
            $ref: '#/components/schemas/RuleRouteAssignment'
        created_at:
          type: string
          format: date-time
  parameters:
    ResourceId:
      name: id
      in: path
      required: true
      schema:
        type: integer
      description: Resource ID.
    ClientIdHeader:
      name: X-Client-ID
      in: header
      required: false
      schema:
        type: integer
      description: Switch client context (multi-tenant).
  securitySchemes:
    BackendJWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'JWT token obtained from `POST /auth/login`. Access token lifetime: 15 minutes.

        Claims: `user_id`, `client_id`, `role`, `jti`, `exp`, `iat`.

        '
    EngineApiKeyBearer:
      type: http
      scheme: bearer
      description: 'Engine API key via `Authorization: Bearer <api_key>` (priority 1).'
    EngineApiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: Engine API key via `X-API-Key` header (priority 2).
    EngineApiKeyFallback:
      type: apiKey
      in: header
      name: api_key
      description: Engine API key via `api_key` header (priority 3, fallback).
x-readme:
  explorer-enabled: true
  proxy-enabled: true
x-provenance:
  method: searched
  source: https://emaildocs.netcorecloud.com/reference
  note: Verbatim OpenAPI fragments embedded in each ReadMe reference page on emaildocs.netcorecloud.com, merged by path. Not authored by API Evangelist.
  retrieved: '2026-10-13'