Skip to main content

Technical Staff Availability

Retrieve a comprehensive list of active technical staff members including their access passes and vaccination records. This endpoint is used for resource planning and compliance verification.

Get Available Technicals

curl -X GET https://api.mantis.com/api/technicals/avaliables/ \
  -H "Content-Type: application/json"
Retrieve all active technical staff members with their associated passes and vaccination records. The response includes complete profile information and compliance documentation.

Response

data
array
Array of technical staff objects
id
integer
Technical staff ID
first_name
string
First name
last_name
string
Last name
email
string
Email address
work_area
string
Work area code
work_area_display
string
Human-readable work area name
dni
string
National identification number
nro_phone
string
Phone number
date_joined
string
Date joined the company (ISO 8601)
birth_date
string
Birth date (ISO 8601)
license_issue_date
string
Driver’s license issue date (ISO 8601)
license_expiry_date
string
Driver’s license expiration date (ISO 8601)
defensive_driving_certificate_issue_date
string
Defensive driving certificate issue date (ISO 8601)
defensive_driving_certificate_expiry_date
string
Defensive driving certificate expiration date (ISO 8601)
mae_certificate_issue_date
string
MAE (Ministry of Environment) certificate issue date (ISO 8601)
mae_certificate_expiry_date
string
MAE certificate expiration date (ISO 8601)
medical_certificate_issue_date
string
Medical certificate issue date (ISO 8601)
medical_certificate_expiry_date
string
Medical certificate expiration date (ISO 8601)
is_iess_affiliated
boolean
IESS (social security) affiliation status
has_life_insurance_policy
boolean
Life insurance policy status
quest_ncst_code
string
QUEST NCST training code
quest_instructor
string
QUEST training instructor name
quest_start_date
string
QUEST training start date (ISO 8601)
quest_end_date
string
QUEST training end date (ISO 8601)
notes
string
Additional notes
is_active
boolean
Active status flag
is_deleted
boolean
Soft delete flag
passes
array
Array of access passes for oil blocks/facilities
id
integer
Pass ID
bloque
string
Block/company identifier code
bloque_display
string
Human-readable block/company name
fecha_caducidad
string
Expiration date (ISO 8601)
meta
object
Metadata including notes, timestamps, and user tracking
vaccination_records
array
Array of vaccination records
id
integer
Vaccination record ID
vaccine_type
string
Vaccine type code
vaccine_type_display
string
Human-readable vaccine name
batch_number
string
Vaccine batch/lot number
application_date
string
Date administered (ISO 8601)
dose_number
integer
Dose number in series
next_dose_date
string
Next dose date (ISO 8601)
days_to_next_dose
integer
Calculated days until next dose is due
notes
string
Additional notes
meta
object
Metadata including timestamps and user tracking
meta
object
Technical staff metadata including audit trail
{
  "data": [
    {
      "id": 123,
      "first_name": "Juan",
      "last_name": "Pérez",
      "email": "[email protected]",
      "work_area": "FIELD_OPS",
      "work_area_display": "Field Operations",
      "dni": "1234567890",
      "nro_phone": "+593-99-123-4567",
      "date_joined": "2020-01-15",
      "birth_date": "1985-05-20",
      "license_issue_date": "2018-03-10",
      "license_expiry_date": "2028-03-10",
      "defensive_driving_certificate_issue_date": "2023-06-01",
      "defensive_driving_certificate_expiry_date": "2026-06-01",
      "mae_certificate_issue_date": "2024-01-15",
      "mae_certificate_expiry_date": "2027-01-15",
      "medical_certificate_issue_date": "2025-02-01",
      "medical_certificate_expiry_date": "2026-02-01",
      "is_iess_affiliated": true,
      "has_life_insurance_policy": true,
      "quest_ncst_code": "QUEST-2024-001",
      "quest_instructor": "Carlos Mendoza",
      "quest_start_date": "2024-01-10",
      "quest_end_date": "2024-01-25",
      "notes": "Certified for high-altitude operations",
      "is_active": true,
      "is_deleted": false,
      "passes": [
        {
          "id": 456,
          "bloque": "petroecuador",
          "bloque_display": "Tarjeta de Petroecuador",
          "fecha_caducidad": "2026-12-31",
          "meta": {
            "notes": null,
            "created_at": "2025-01-15T10:30:00Z",
            "updated_at": "2025-02-20T14:15:00Z",
            "is_active": true,
            "is_deleted": false,
            "id_user_created": 1,
            "id_user_updated": 1
          }
        },
        {
          "id": 457,
          "bloque": "shaya",
          "bloque_display": "Shaya",
          "fecha_caducidad": "2027-03-15",
          "meta": {
            "notes": null,
            "created_at": "2025-03-01T09:00:00Z",
            "updated_at": "2025-03-01T09:00:00Z",
            "is_active": true,
            "is_deleted": false,
            "id_user_created": 1,
            "id_user_updated": null
          }
        }
      ],
      "vaccination_records": [
        {
          "id": 789,
          "vaccine_type": "YELLOW_FEVER",
          "vaccine_type_display": "Fiebre Amarilla",
          "batch_number": "YF2025-XYZ",
          "application_date": "2025-03-15",
          "dose_number": 1,
          "next_dose_date": "2035-03-15",
          "days_to_next_dose": 3650,
          "notes": "Valid for 10 years",
          "meta": {
            "notes": "Valid for 10 years",
            "created_at": "2025-03-15T11:00:00Z",
            "updated_at": "2025-03-15T11:00:00Z",
            "is_active": true,
            "is_deleted": false,
            "id_user_created": 2,
            "id_user_updated": null
          }
        },
        {
          "id": 790,
          "vaccine_type": "TETANUS",
          "vaccine_type_display": "Tétanos",
          "batch_number": "TET2024-ABC",
          "application_date": "2024-06-10",
          "dose_number": 2,
          "next_dose_date": "2034-06-10",
          "days_to_next_dose": 3378,
          "notes": null,
          "meta": {
            "notes": null,
            "created_at": "2024-06-10T14:30:00Z",
            "updated_at": "2024-06-10T14:30:00Z",
            "is_active": true,
            "is_deleted": false,
            "id_user_created": 2,
            "id_user_updated": null
          }
        }
      ],
      "meta": {
        "notes": "Certified for high-altitude operations",
        "created_at": "2020-01-15T08:00:00Z",
        "updated_at": "2025-03-01T10:00:00Z",
        "is_active": true,
        "is_deleted": false,
        "id_user_created": 1,
        "id_user_updated": 3
      }
    }
  ]
}

Use Cases

Compliance Verification

Check if technical staff have valid passes and up-to-date vaccinations before assigning them to field projects:
response = requests.get("https://api.mantis.com/api/technicals/avaliables/")
technicals = response.json()["data"]

for tech in technicals:
    # Check for active passes
    active_passes = [p for p in tech["passes"] if p["meta"]["is_active"]]
    
    # Check vaccination compliance
    required_vaccines = ["YELLOW_FEVER", "TETANUS", "HEPATITIS_A_B"]
    tech_vaccines = [v["vaccine_type"] for v in tech["vaccination_records"]]
    
    is_compliant = all(v in tech_vaccines for v in required_vaccines)
    
    if is_compliant and len(active_passes) > 0:
        print(f"{tech['first_name']} {tech['last_name']} is ready for deployment")

Resource Planning

Filter technical staff by work area and certification status:
field_ops = [t for t in technicals if t["work_area"] == "FIELD_OPS"]
certified = [t for t in field_ops if t["mae_certificate_expiry_date"] > "2026-01-01"]

print(f"Available certified field operators: {len(certified)}")

Data Prefetching

This endpoint uses Django’s prefetch_related to efficiently load related passes and vaccination records in a single database query, optimizing performance when retrieving large datasets. The query structure:
Technical.get_all().prefetch_related(
    Prefetch('passtechnical_set', queryset=PassTechnical.objects.filter(is_active=True)),
    Prefetch('vaccination_records', queryset=VaccinationRecord.objects.filter(is_active=True))
)

Build docs developers (and LLMs) love