Eden AI Moderations API

The Moderations API from Eden AI — 2 operation(s) for moderations.

Operations 2

POST /v3/moderations Create Moderation #
GET /v3/moderations/models List Moderation Models #

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/eden-ai-moderations-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

eden-ai-moderations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Eden AI API V3 Moderations API
  version: 3.0.0
servers:
- url: https://api.edenai.run
  description: Production server
tags:
- name: Moderations
paths:
  /v3/moderations:
    post:
      tags:
      - Moderations
      summary: Create Moderation
      description: OpenAI-compatible content moderation endpoint.
      operationId: create_moderation_v3_moderations_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModerationBody'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModerationResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - AuthBearer: []
  /v3/moderations/models:
    get:
      tags:
      - Moderations
      summary: List Moderation Models
      description: List available moderation models.
      operationId: list_moderation_models_v3_moderations_models_get
      parameters:
      - name: view
        in: query
        required: false
        schema:
          enum:
          - endpoints
          - models
          type: string
          description: How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider.
          default: endpoints
          title: View
        description: How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/ListModelsResponse'
                - $ref: '#/components/schemas/ListModelsWithEndpointsResponse'
                title: Response List Moderation Models V3 Moderations Models Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ModerationResponse:
      properties:
        cost:
          anyOf:
          - type: number
          - type: 'null'
          title: Cost
        provider:
          anyOf:
          - type: string
          - type: 'null'
          title: Provider
        id:
          type: string
          title: Id
        model:
          type: string
          title: Model
        results:
          items:
            $ref: '#/components/schemas/OpenAIModerationResult'
          type: array
          title: Results
      additionalProperties: true
      type: object
      required:
      - id
      - model
      - results
      title: ModerationResponse
    ModerationTextInput:
      properties:
        type:
          type: string
          const: text
          title: Type
        text:
          type: string
          title: Text
      type: object
      required:
      - type
      - text
      title: ModerationTextInput
    ModerationImageUrl:
      properties:
        url:
          type: string
          title: Url
      type: object
      required:
      - url
      title: ModerationImageUrl
    Capabilities:
      properties:
        input_modalities:
          items:
            type: string
          type: array
          title: Input Modalities
        output_modalities:
          items:
            type: string
          type: array
          title: Output Modalities
        supports_reasoning:
          type: boolean
          title: Supports Reasoning
          default: false
        supports_web_search:
          type: boolean
          title: Supports Web Search
          default: false
        supports_tool_choice:
          type: boolean
          title: Supports Tool Choice
          default: false
        supports_computer_use:
          type: boolean
          title: Supports Computer Use
          default: false
        supports_prompt_caching:
          type: boolean
          title: Supports Prompt Caching
          default: false
        supports_response_schema:
          type: boolean
          title: Supports Response Schema
          default: false
        supports_system_messages:
          type: boolean
          title: Supports System Messages
          default: false
        supports_function_calling:
          type: boolean
          title: Supports Function Calling
          default: false
        supports_native_streaming:
          type: boolean
          title: Supports Native Streaming
          default: false
        supports_assistant_prefill:
          type: boolean
          title: Supports Assistant Prefill
          default: false
        supports_embedding_image_input:
          type: boolean
          title: Supports Embedding Image Input
          default: false
        supports_parallel_function_calling:
          type: boolean
          title: Supports Parallel Function Calling
          default: false
      additionalProperties: true
      type: object
      title: Capabilities
      description: 'Model capability flags. Unknown flags are preserved so consumers keep working when

        new capabilities are introduced without a coordinated release.'
    ModerationImageInput:
      properties:
        type:
          type: string
          const: image_url
          title: Type
        image_url:
          $ref: '#/components/schemas/ModerationImageUrl'
      type: object
      required:
      - type
      - image_url
      title: ModerationImageInput
    ListModelsResponse:
      properties:
        object:
          type: string
          const: list
          title: Object
          description: Object type
          default: list
        data:
          items:
            $ref: '#/components/schemas/ModelObject'
          type: array
          title: Data
          description: List of models
      type: object
      required:
      - data
      title: ListModelsResponse
      description: List models response.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    OpenAIModerationResult:
      properties:
        categories:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Categories
        category_applied_input_types:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Category Applied Input Types
        category_scores:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Category Scores
        flagged:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Flagged
      additionalProperties: true
      type: object
      required:
      - categories
      - category_applied_input_types
      - category_scores
      - flagged
      title: OpenAIModerationResult
    ModelWithEndpoints:
      properties:
        id:
          type: string
          title: Id
          description: The routable model name, with no provider prefix (e.g. 'gpt-oss-120b'). Send this as `model` to let Eden AI choose which provider serves it.
        object:
          type: string
          const: model
          title: Object
          description: Object type
          default: model
        created:
          type: integer
          title: Created
          description: Unix timestamp of the newest endpoint serving this model
          default: 0
        owned_by:
          type: string
          title: Owned By
          description: Who authored the model, independent of who sells it
          default: ''
        mode:
          anyOf:
          - type: string
          - type: 'null'
          title: Mode
          description: 'What the model does: ''chat'', ''embedding'', ''stt'', ''tts'' or ''image_generation''. Lets a caller tell an LLM from a voice.'
        endpoints:
          items:
            $ref: '#/components/schemas/ModelObject'
          type: array
          title: Endpoints
          description: Every provider endpoint serving this model, each with its own pricing, context length, capabilities and regions.
        endpoint_count:
          type: integer
          title: Endpoint Count
          description: How many provider endpoints serve this model
          readOnly: true
      type: object
      required:
      - id
      - endpoints
      - endpoint_count
      title: ModelWithEndpoints
      description: 'One routable model name and the provider endpoints behind it.


        Deliberately carries NO pricing, context window or capability of its own. Those vary between

        the sellers of one model — `gpt-oss-120b` spans a 9.5x input-price range, two context lengths

        and six distinct capability sets across ten sellers — so a value here would be wrong for most

        of the group. Each endpoint keeps its own, unchanged.


        ``endpoints`` entries are the same :class:`ModelObject` the flat listing returns, field for

        field, which is what makes this view a pure regrouping: a caller reading

        ``data[].endpoints[]`` sees exactly what it reads from ``data[]`` today.'
    RegionObject:
      properties:
        code:
          type: string
          title: Code
          description: Region code (e.g., 'us-east-1')
        name:
          type: string
          title: Name
          description: Region display name
      type: object
      required:
      - code
      - name
      title: RegionObject
      description: Region where a model is available.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ModelObject:
      properties:
        id:
          type: string
          title: Id
          description: Model identifier (e.g., 'openai/gpt-4')
        object:
          type: string
          const: model
          title: Object
          description: Object type
          default: model
        created:
          type: integer
          title: Created
          description: Unix timestamp of model creation/release
        owned_by:
          type: string
          title: Owned By
          description: Provider/organization that owns the model
        model_name:
          type: string
          title: Model Name
          description: Model name without provider prefix
        context_length:
          anyOf:
          - type: integer
          - type: 'null'
          title: Context Length
          description: Maximum context length in tokens
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Model description
        source:
          anyOf:
          - type: string
          - type: 'null'
          title: Source
          description: Model source URL
        capabilities:
          $ref: '#/components/schemas/Capabilities'
          description: Model capabilities
        pricing:
          additionalProperties: true
          type: object
          title: Pricing
          description: Pricing information after any applicable discounts have been applied
        list_pricing:
          additionalProperties: true
          type: object
          title: List Pricing
          description: Provider list pricing, before any discounts are applied
        discount:
          anyOf:
          - type: number
          - type: 'null'
          title: Discount
          description: Discount applied to the model (0-1 range)
        regions:
          items:
            $ref: '#/components/schemas/RegionObject'
          type: array
          title: Regions
          description: Regions where this model is available
        alias_of:
          anyOf:
          - type: string
          - type: 'null'
          title: Alias Of
          description: 'Set when this entry is an alias (e.g. ''gemini-pro-latest''): the real model_id it currently resolves to. None for concrete models.'
      type: object
      required:
      - id
      - created
      - owned_by
      - model_name
      title: ModelObject
      description: Extended model object with full metadata.
    ListModelsWithEndpointsResponse:
      properties:
        object:
          type: string
          const: list
          title: Object
          description: Object type
          default: list
        data:
          items:
            $ref: '#/components/schemas/ModelWithEndpoints'
          type: array
          title: Data
          description: List of routable models
      type: object
      required:
      - data
      title: ListModelsWithEndpointsResponse
      description: '`?view=models` response: routable names, each with its provider endpoints.


        Named for the public vocabulary rather than the internal one: Pydantic class names become

        OpenAPI schema titles and generated SDK classes, and a caller never needs the word

        "canonical" -- to them these are simply models, and the rows behind them endpoints.'
    ModerationBody:
      properties:
        input:
          anyOf:
          - type: string
          - items:
              type: string
            type: array
          - items:
              oneOf:
              - $ref: '#/components/schemas/ModerationTextInput'
              - $ref: '#/components/schemas/ModerationImageInput'
              discriminator:
                propertyName: type
                mapping:
                  image_url: '#/components/schemas/ModerationImageInput'
                  text: '#/components/schemas/ModerationTextInput'
            type: array
          title: Input
          description: Text or multimodal content to classify.
        model:
          type: string
          title: Model
          description: Model identifier in 'provider/model' format, e.g. 'openai/omni-moderation-latest'.
          default: openai/omni-moderation-latest
      type: object
      required:
      - input
      title: ModerationBody
  securitySchemes:
    AuthBearer:
      type: http
      scheme: bearer