Oyster HR · Schema

employment

Human ResourcesGlobal EmploymentPayrollEmployer of RecordContractorsComplianceRemote Work

Properties

Name Type Description
engagementId string
countryCode stringnull
subdivisionCode stringnull
status string
personalDetails object
manager object
role object
compensation object
documents array
signer objectnull
invitation objectnull
View JSON Schema on GitHub

JSON Schema

oyster-hr-employment-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/oyster-hr/main/json-schema/oyster-hr-employment-schema.json",
  "title": "employment",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/oyster-hr-endpoints-openapi.yml#/components/schemas/employment",
  "type": "object",
  "properties": {
    "engagementId": {
      "type": "string"
    },
    "countryCode": {
      "type": [
        "string",
        "null"
      ]
    },
    "subdivisionCode": {
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "type": "string"
    },
    "personalDetails": {
      "type": "object",
      "nullable": false,
      "$ref": "#/$defs/employmentPersonalDetails"
    },
    "manager": {
      "type": "object",
      "properties": {
        "managerRole": {
          "type": [
            "string",
            "null"
          ]
        },
        "managerName": {
          "type": [
            "string",
            "null"
          ]
        },
        "managerEmailAddress": {
          "type": [
            "string",
            "null"
          ]
        },
        "managerPhoneNumber": {
          "type": [
            "string",
            "null"
          ]
        },
        "managerIsExpenseApprover": {
          "type": "boolean"
        }
      },
      "required": [
        "managerRole",
        "managerName",
        "managerEmailAddress",
        "managerPhoneNumber",
        "managerIsExpenseApprover"
      ]
    },
    "role": {
      "type": "object",
      "properties": {
        "seniorityLevel": {
          "type": [
            "string",
            "null"
          ]
        },
        "roleTypeId": {
          "type": [
            "string",
            "null"
          ]
        },
        "role": {
          "type": [
            "string",
            "null"
          ]
        },
        "jobDescription": {
          "type": [
            "string",
            "null"
          ]
        },
        "startDate": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "initialStartDate": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "endDate": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "employmentType": {
          "type": [
            "string",
            "null"
          ]
        },
        "cbaLevel": {
          "type": [
            "string",
            "null"
          ]
        },
        "probationPeriod": {
          "type": [
            "object",
            "null"
          ]
        },
        "terminationNotice": {
          "type": [
            "object",
            "null"
          ]
        },
        "resignationNotice": {
          "type": [
            "object",
            "null"
          ]
        },
        "fullTimeHoursPerWeek": {
          "type": [
            "number",
            "null"
          ],
          "format": "float"
        },
        "partTimeDaysPerWeek": {
          "type": [
            "number",
            "null"
          ]
        },
        "partTimeHoursPerDay": {
          "type": [
            "number",
            "null"
          ]
        },
        "workSchedule": {
          "type": "array",
          "description": "Per-day work schedule. Present for employments whose country supports work schedules.",
          "items": {
            "type": "object",
            "properties": {
              "day": {
                "type": "string",
                "enum": [
                  "MONDAY",
                  "TUESDAY",
                  "WEDNESDAY",
                  "THURSDAY",
                  "FRIDAY",
                  "SATURDAY",
                  "SUNDAY"
                ]
              },
              "fromTime": {
                "type": "string",
                "format": "time",
                "description": "Working hours start time, in HH:MM format (e.g. 09:00)."
              },
              "toTime": {
                "type": "string",
                "format": "time",
                "description": "Working hours end time, in HH:MM format (e.g. 17:00)."
              }
            },
            "required": [
              "day",
              "fromTime",
              "toTime"
            ]
          }
        }
      },
      "required": [
        "seniorityLevel",
        "roleTypeId",
        "role",
        "jobDescription",
        "startDate",
        "initialStartDate",
        "endDate",
        "employmentType",
        "probationPeriod",
        "terminationNotice",
        "resignationNotice"
      ]
    },
    "compensation": {
      "type": "object",
      "properties": {
        "commissionPlanOffered": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "commissionPlan": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "url": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "salary": {
          "type": "object",
          "properties": {
            "decimal": {
              "type": [
                "string",
                "null"
              ]
            },
            "currencyCode": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "paidHolidayDays": {
          "type": [
            "number",
            "null"
          ]
        },
        "bonuses": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "paymentFrequency": {
                "type": "string"
              },
              "guaranteed": {
                "type": "boolean"
              },
              "statutory": {
                "type": "boolean"
              },
              "amountAsPercentage": {
                "type": "string"
              },
              "amountDecimal": {
                "type": "string"
              },
              "selectedMonths": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "prorated": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "label",
              "paymentFrequency",
              "guaranteed",
              "statutory"
            ]
          }
        },
        "allowances": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "paymentFrequency": {
                "type": "string"
              },
              "statutory": {
                "type": "boolean"
              },
              "amountAsPercentage": {
                "type": "string"
              },
              "amountDecimal": {
                "type": "string"
              },
              "selectedMonths": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "prorated": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "label",
              "paymentFrequency",
              "statutory"
            ]
          }
        },
        "reimbursementBudgets": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "customLabel": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "resetFrequency": {
                "type": "string"
              },
              "amountDecimal": {
                "type": "boolean"
              }
            },
            "required": [
              "label",
              "customLabel",
              "resetFrequency",
              "amountDecimal"
            ]
          }
        },
        "remoteWorkCosts": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "allowancePolicy": {
              "type": "object",
              "properties": {
                "allowancePolicy": {
                  "type": "string",
                  "enum": [
                    "MONTHLY_ALLOWANCE",
                    "ONE_TIME_STIPEND",
                    "BASIC_REIMBURSEMENT",
                    "NO_REIMBURSEMENT"
                  ]
                },
                "amount": {
                  "$ref": "#/$defs/amount",
                  "nullable": true
                },
                "statutoryAmount": {
                  "$ref": "#/$defs/amount",
                  "nullable": true
                }
              },
              "required": [
                "allowancePolicy",
                "amount",
                "statutoryAmount"
              ]
            },
            "equipmentBudget": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "amount": {
                  "$ref": "#/$defs/amount",
                  "nullable": true
                }
              },
              "required": [
                "amount"
              ]
            },
            "equipmentListOwnedByTeamMember": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "equipmentList": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "COMPUTER_MONITOR",
                      "HEADSET",
                      "KEYBOARD",
                      "LAPTOP_COMPUTER",
                      "MOBILE_PHONE",
                      "MOUSE",
                      "PRINTER",
                      "OTHER"
                    ]
                  }
                },
                "equipmentOther": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "equipmentList",
                "equipmentOther"
              ]
            },
            "equipmentListProvidedByCustomer": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "equipmentList": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "COMPUTER_MONITOR",
                      "HEADSET",
                      "KEYBOARD",
                      "LAPTOP_COMPUTER",
                      "MOBILE_PHONE",
                      "MOUSE",
                      "PRINTER",
                      "OTHER"
                    ]
                  }
                },
                "equipmentOther": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "equipmentList",
                "equipmentOther"
              ]
            },
            "equipmentOneTimePayment": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "amount": {
                  "$ref": "#/$defs/amount",
                  "nullable": true
                }
              },
              "required": [
                "amount"
              ]
            }
          },
          "required": [
            "allowancePolicy",
            "equipmentBudget",
            "equipmentListOwnedByTeamMember",
            "equipmentListProvidedByCustomer",
            "equipmentOneTimePayment"
          ]
        },
        "privateNotes": {
          "type": [
            "string",
            "null"
          ]
        },
        "sickPay": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "option": {
              "type": "string"
            },
            "customDuration": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "value": {
                  "type": "integer"
                },
                "unit": {
                  "type": "string",
                  "enum": [
                    "DAYS",
                    "WEEKS",
                    "MONTHS"
                  ]
                }
              }
            }
          },
          "required": [
            "option",
            "customDuration"
          ]
        }
      },
      "required": [
        "commissionPlanOffered",
        "commissionPlan",
        "salary",
        "paidHolidayDays",
        "bonuses",
        "allowances",
        "reimbursementBudgets",
        "remoteWorkCosts",
        "privateNotes",
        "sickPay"
      ]
    },
    "documents": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "documentId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "filename": {
            "type": "string"
          }
        },
        "required": [
          "documentId",
          "title",
          "url",
          "filename"
        ]
      }
    },
    "signer": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "fullName": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "jobTitle": {
          "type": "string"
        },
        "phone": {
          "type": "object",
          "properties": {
            "countryCode": {
              "type": "string"
            },
            "number": {
              "type": "string"
            }
          },
          "required": [
            "countryCode",
            "number"
          ]
        }
      },
      "required": [
        "fullName",
        "email",
        "jobTitle",
        "phone"
      ]
    },
    "invitation": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "email": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "sentAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        }
      },
      "required": [
        "email",
        "name",
        "sentAt"
      ]
    }
  },
  "required": [
    "engagementId",
    "countryCode",
    "subdivisionCode",
    "status",
    "personalDetails",
    "manager",
    "role",
    "compensation",
    "documents",
    "signer",
    "invitation"
  ],
  "$defs": {
    "amount": {
      "type": "object",
      "properties": {
        "decimal": {
          "type": "string",
          "pattern": "^\\d+([.]\\d+)?$"
        },
        "currencyCode": {
          "type": "string",
          "minLength": 3,
          "maxLength": 3
        }
      },
      "required": [
        "decimal",
        "currencyCode"
      ]
    },
    "employmentPersonalDetails": {
      "type": "object",
      "properties": {
        "fullLegalName": {
          "type": [
            "string",
            "null"
          ]
        },
        "email": {
          "type": [
            "string",
            "null"
          ]
        },
        "nationality": {
          "type": [
            "string",
            "null"
          ]
        },
        "workPermit": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "url": {
              "type": "string"
            }
          }
        }
      },
      "required": [
        "fullLegalName",
        "email",
        "nationality",
        "workPermit"
      ]
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/oyster-hr-employment"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.