{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/motaword/json-schema/motaword-filter-vendor-request-schema.json",
  "title": "FilterVendorRequest",
  "x-generated": "2026-10-28",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/motaword-api-openapi.yml#/components/schemas/FilterVendorRequest",
  "type": "object",
  "properties": {
    "id": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "search": {
      "type": "string"
    },
    "first_name": {
      "type": "string"
    },
    "last_name": {
      "type": "string"
    },
    "email_address": {
      "type": "string"
    },
    "country": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "last_online": {
      "type": "string"
    },
    "created_at": {
      "type": "string"
    },
    "status": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "user_working_timezone": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "source_languages": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "destination_languages": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "language_pairs": {
      "type": "array",
      "items": {
        "type": "array",
        "items": {
          "type": "integer"
        }
      }
    },
    "vendor_type": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "vendor_tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "vendor_groups": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "clients": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "corporates": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "quote_file_subjects": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "project_count": {
      "type": "integer"
    },
    "last_worked": {
      "type": "string"
    },
    "min_tqs": {
      "type": "number"
    },
    "word_count": {
      "type": "integer"
    },
    "corporate_ids_for_auth": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "experience": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "vendor_working_timezone": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "daily_translation_capacity": {
      "type": "integer"
    },
    "daily_proofreading_capacity": {
      "type": "integer"
    },
    "translator_association": {
      "type": "string"
    },
    "is_certified_translator": {
      "type": "boolean"
    },
    "is_sworn_translator": {
      "type": "boolean"
    },
    "proofreader_experience": {
      "type": "integer"
    },
    "provides_postedit_service": {
      "type": "boolean"
    },
    "provides_creative_writing_service": {
      "type": "boolean"
    },
    "current_services": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sdl_trados": {
      "type": "integer"
    },
    "memsource": {
      "type": "integer"
    },
    "smartling": {
      "type": "integer"
    },
    "smartcat": {
      "type": "integer"
    },
    "subtitle_edit": {
      "type": "integer"
    },
    "subtitle_workshop": {
      "type": "integer"
    },
    "wordbee": {
      "type": "integer"
    },
    "xtm": {
      "type": "integer"
    },
    "transsuite_2000": {
      "type": "integer"
    },
    "xbench": {
      "type": "integer"
    },
    "omegat": {
      "type": "integer"
    },
    "dtp_software": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "specialization": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "work_with": {
      "type": "string"
    },
    "work_type": {
      "type": "string"
    },
    "working_as": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "vendor_profile_lsp": {
      "type": "string"
    },
    "reference": {
      "type": "string"
    },
    "communication_channel": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "skype_id": {
      "type": "string"
    },
    "memoq": {
      "type": "integer"
    },
    "wordfast": {
      "type": "integer"
    },
    "is_export": {
      "type": "boolean"
    },
    "online_only": {
      "description": "Restrict results to vendors with an active presence heartbeat\n(PresenceService). Resolved server-side via Redis SCAN ∩ the\nexisting id filter. Powers the admin \"Online vendors\" view.\n",
      "type": "boolean"
    },
    "profile_complete": {
      "description": "Filter vendors by profile completion status. Null = no filter,\ntrue = only profile-complete vendors, false = only incomplete.\nSame predicate as the `vendor.profile_completed` flag on /me\n(VendorProfileSurvey::isVendorQuestionAnsweredAllRequired).\nResolved server-side by iterating candidate vendors — apply\nnarrowing filters (status, country, language) alongside it\nfor acceptable latency on the admin vendor list.\n",
      "type": [
        "boolean",
        "null"
      ]
    },
    "near_address": {
      "description": "Free-form address to sort vendors by proximity. Server geocodes\nonce per request. Prefer near_latitude/near_longitude when the\ncaller already has them (e.g. from Places autocomplete).\nPowers the admin vendor list \"Near…\" filter.\nDesign: 2026-05-22-vendor-proximity-search-design.md.\n",
      "type": "string"
    },
    "near_latitude": {
      "description": "Optional. If both lat and lng are present, server geocoding is skipped.",
      "type": "number"
    },
    "near_longitude": {
      "type": "number"
    },
    "near_radius_km": {
      "description": "Optional. If set, only vendors within this great-circle radius\nare returned. Omit to sort by distance without restricting.\n",
      "type": "number"
    }
  }
}