CESNET Rules API

Endpoints for managing IPv4, IPv6, and RTBH rules.

Operations 10

GET /rules Get all rules #
POST /rules/ipv4 Create IPv4 rule #
POST /rules/ipv6 Create IPv6 rule #
POST /rules/rtbh Create RTBH rule #
GET /rules/ipv4/{rule_id} Get IPv4 rule #
DELETE /rules/ipv4/{rule_id} Delete IPv4 rule #
GET /rules/ipv6/{rule_id} Get IPv6 rule #
DELETE /rules/ipv6/{rule_id} Delete IPv6 rule #
GET /rules/rtbh/{rule_id} Get RTBH rule #
DELETE /rules/rtbh/{rule_id} Delete RTBH rule #

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/cesnet:cesnet-rules-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

cesnet-rules-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cesnet Rules API
  version: '3.0'
  description: 'Operations tagged Rules across 2 of this provider''s published API definitions: cesnet-exafs-swagger.yml, cesnet-exafs-openapi.yml. Each path carries the servers of the definition it was published in.'
security:
- TokenAuth: []
tags:
- name: Rules
  description: Endpoints for managing IPv4, IPv6, and RTBH rules.
paths:
  /rules:
    get:
      tags:
      - Rules
      summary: Get all rules
      description: Returns all flow rules accessible to the authenticated user
      parameters:
      - name: time_format
        in: query
        required: false
        description: Preferred time format for dates in response
        schema:
          type: string
      responses:
        '200':
          description: List of all rules
          content:
            application/json:
              schema:
                type: object
                properties:
                  flowspec_ipv4_rw:
                    type: array
                    items:
                      $ref: '#/components/schemas/IPv4Rule'
                  flowspec_ipv6_rw:
                    type: array
                    items:
                      $ref: '#/components/schemas/IPv6Rule'
                  rtbh_any_rw:
                    type: array
                    items:
                      $ref: '#/components/schemas/RTBHRule'
                  flowspec_ipv4_ro:
                    type: array
                    items:
                      $ref: '#/components/schemas/IPv4Rule'
                  flowspec_ipv6_ro:
                    type: array
                    items:
                      $ref: '#/components/schemas/IPv6Rule'
      operationId: getRules
      x-operation-id-source: derived
  /rules/ipv4:
    post:
      tags:
      - Rules
      summary: Create IPv4 rule
      description: Create a new IPv4 flow rule
      responses:
        '201':
          description: Rule created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  rule:
                    $ref: '#/components/schemas/IPv4Rule'
        '400':
          description: Invalid input data
        '403':
          description: Rule limit reached or read-only token
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IPv4RuleInput'
        required: true
      operationId: postRulesIpv4
      x-operation-id-source: derived
  /rules/ipv6:
    post:
      tags:
      - Rules
      summary: Create IPv6 rule
      description: Create a new IPv6 flow rule
      responses:
        '201':
          description: Rule created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  rule:
                    $ref: '#/components/schemas/IPv6Rule'
        '400':
          description: Invalid input data
        '403':
          description: Rule limit reached or read-only token
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IPv6RuleInput'
        required: true
      operationId: postRulesIpv6
      x-operation-id-source: derived
  /rules/rtbh:
    post:
      tags:
      - Rules
      summary: Create RTBH rule
      description: Create a new RTBH rule
      responses:
        '201':
          description: Rule created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  rule:
                    $ref: '#/components/schemas/RTBHRule'
        '400':
          description: Invalid input data
        '403':
          description: Rule limit reached or read-only token
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RTBHRuleInput'
        required: true
      operationId: postRulesRtbh
      x-operation-id-source: derived
  /rules/ipv4/{rule_id}:
    parameters:
    - name: rule_id
      in: path
      required: true
      description: ID of the IPv4 rule
      schema:
        type: integer
    get:
      tags:
      - Rules
      summary: Get IPv4 rule
      description: Get details of a specific IPv4 rule
      responses:
        '200':
          description: Rule details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IPv4Rule'
        '401':
          description: Not allowed to view this rule
        '404':
          description: Rule not found
      operationId: getRulesIpv4ByRuleId
      x-operation-id-source: derived
    delete:
      tags:
      - Rules
      summary: Delete IPv4 rule
      description: Delete a specific IPv4 rule
      responses:
        '201':
          description: Rule deleted successfully
        '401':
          description: Not allowed to delete this rule
        '403':
          description: Read-only token
        '404':
          description: Rule not found
      operationId: deleteRulesIpv4ByRuleId
      x-operation-id-source: derived
  /rules/ipv6/{rule_id}:
    parameters:
    - name: rule_id
      in: path
      required: true
      description: ID of the IPv6 rule
      schema:
        type: integer
    get:
      tags:
      - Rules
      summary: Get IPv6 rule
      description: Get details of a specific IPv6 rule
      responses:
        '200':
          description: Rule details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IPv6Rule'
        '401':
          description: Not allowed to view this rule
        '404':
          description: Rule not found
      operationId: getRulesIpv6ByRuleId
      x-operation-id-source: derived
    delete:
      tags:
      - Rules
      summary: Delete IPv6 rule
      description: Delete a specific IPv6 rule
      responses:
        '201':
          description: Rule deleted successfully
        '401':
          description: Not allowed to delete this rule
        '403':
          description: Read-only token
        '404':
          description: Rule not found
      operationId: deleteRulesIpv6ByRuleId
      x-operation-id-source: derived
  /rules/rtbh/{rule_id}:
    parameters:
    - name: rule_id
      in: path
      required: true
      description: ID of the RTBH rule
      schema:
        type: integer
    get:
      tags:
      - Rules
      summary: Get RTBH rule
      description: Get details of a specific RTBH rule
      responses:
        '200':
          description: Rule details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RTBHRule'
        '401':
          description: Not allowed to view this rule
        '404':
          description: Rule not found
      operationId: getRulesRtbhByRuleId
      x-operation-id-source: derived
    delete:
      tags:
      - Rules
      summary: Delete RTBH rule
      description: Delete a specific RTBH rule
      responses:
        '201':
          description: Rule deleted successfully
        '401':
          description: Not allowed to delete this rule
        '403':
          description: Read-only token
        '404':
          description: Rule not found
      operationId: deleteRulesRtbhByRuleId
      x-operation-id-source: derived
components:
  schemas:
    IPv4Rule:
      allOf:
      - $ref: '#/components/schemas/IPv4RuleInput'
      - type: object
        properties:
          id:
            type: integer
          rstate_id:
            type: integer
          user_id:
            type: integer
          org_id:
            type: integer
    RTBHRuleInput:
      type: object
      required:
      - expires
      - community
      properties:
        ipv4:
          type: string
          description: IPv4 address
        ipv4_mask:
          type: integer
          description: IPv4 network mask
        ipv6:
          type: string
          description: IPv6 address
        ipv6_mask:
          type: integer
          description: IPv6 network mask
        community:
          type: integer
          description: Community ID
        expires:
          type: string
          format: date-time
          description: Rule expiration time
        comment:
          type: string
          description: Rule comment
    IPv4RuleInput:
      type: object
      required:
      - source
      - source_mask
      - dest
      - dest_mask
      - expires
      - action
      properties:
        source:
          type: string
          description: Source IP address
        source_mask:
          type: integer
          description: Source network mask
        source_port:
          type: string
          description: Source port(s)
        dest:
          type: string
          description: Destination IP address
        dest_mask:
          type: integer
          description: Destination network mask
        destination_port:
          type: string
          description: Destination port(s)
        protocol:
          type: string
          description: Protocol
        flags:
          type: array
          items:
            type: string
          description: TCP flags
        packet_len:
          type: string
          description: Packet length
        fragment:
          type: array
          items:
            type: string
          description: Fragment types
        expires:
          type: string
          format: date-time
          description: Rule expiration time
        comment:
          type: string
          description: Rule comment
        action:
          type: integer
          description: Action ID
    RTBHRule:
      allOf:
      - $ref: '#/components/schemas/RTBHRuleInput'
      - type: object
        properties:
          id:
            type: integer
          rstate_id:
            type: integer
          user_id:
            type: integer
          org_id:
            type: integer
    IPv6Rule:
      allOf:
      - $ref: '#/components/schemas/IPv6RuleInput'
      - type: object
        properties:
          id:
            type: integer
          rstate_id:
            type: integer
          user_id:
            type: integer
          org_id:
            type: integer
    IPv6RuleInput:
      type: object
      required:
      - source
      - source_mask
      - dest
      - dest_mask
      - expires
      - action
      properties:
        source:
          type: string
          description: Source IPv6 address
        source_mask:
          type: integer
          description: Source network mask
        source_port:
          type: string
          description: Source port(s)
        dest:
          type: string
          description: Destination IPv6 address
        dest_mask:
          type: integer
          description: Destination network mask
        destination_port:
          type: string
          description: Destination port(s)
        next_header:
          type: string
          description: Next header
        flags:
          type: array
          items:
            type: string
          description: TCP flags
        packet_len:
          type: string
          description: Packet length
        expires:
          type: string
          format: date-time
          description: Rule expiration time
        comment:
          type: string
          description: Rule comment
        action:
          type: integer
          description: Action ID
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for initial authentication
    TokenAuth:
      type: apiKey
      in: header
      name: x-access-token
      description: auth token received from /auth endpoint
x-refined-from:
- cesnet-exafs-swagger.yml
- cesnet-exafs-openapi.yml