Wagepoint Time Entries API

The Time Entries API from Wagepoint — 2 operation(s) for time entries.

Operations 4

POST /v1/companies/{company_id}/time-entries Create time entries #
GET /v1/companies/{company_id}/time-entries List time entries #
PATCH /v1/companies/{company_id}/time-entries Update time entries #
PATCH /v1/companies/{company_id}/time-entries/status Update time entry status #

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

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

wagepoint-time-entries-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Wagepoint Public Time Entries API
  description: Public REST API for partners and integrations to access Wagepoint Company, Person, Pay Group, and Time data.
  version: v1
servers:
- url: /api
tags:
- name: Time Entries
paths:
  /v1/companies/{company_id}/time-entries:
    post:
      tags:
      - Time Entries
      operationId: CreateTimeEntries
      parameters:
      - name: company_id
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: Idempotency-Key
        in: header
        description: Optional idempotency key to prevent duplicate writes. Must be unique per request.
        schema:
          type: string
      requestBody:
        description: Time entries to create (1-100)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create_time_entries_request'
        required: true
      responses:
        '201':
          description: Created time entries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/list_items_response_time_entry_response'
        '400':
          description: Invalid request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem_details'
        '401':
          description: Missing or invalid token
      security:
      - bearerAuth: []
      summary: Create time entries
      x-summary-source: derived
    get:
      tags:
      - Time Entries
      operationId: ListTimeEntries
      parameters:
      - name: company_id
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: from_date
        in: query
        description: Start of the date window (ISO YYYY-MM-DD, inclusive).
        required: true
        schema:
          type: string
      - name: to_date
        in: query
        description: End of the date window (ISO YYYY-MM-DD, inclusive). Must be on or after from_date.
        required: true
        schema:
          type: string
      - name: person_id
        in: query
        description: Repeated person id filter, e.g. ?person_id=1&person_id=2.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: integer
            format: int32
      - name: status
        in: query
        description: Repeated status filter (snake_case, e.g. approved).
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: Time entries in the date window
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/list_items_response_time_entry_response'
        '400':
          description: Invalid request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem_details'
        '422':
          description: A value could not be converted to the expected type
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problem_details'
        '401':
          description: Missing or invalid token
      security:
      - bearerAuth: []
      summary: List time entries
      x-summary-source: derived
    patch:
      tags:
      - Time Entries
      operationId: UpdateTimeEntries
      parameters:
      - name: company_id
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: Idempotency-Key
        in: header
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update_time_entries_request'
        required: true
      responses:
        '200':
          description: Payload of UpdateTimeEntriesResponse
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/update_time_entries_response'
      security:
      - bearerAuth: []
      summary: Update time entries
      x-summary-source: derived
  /v1/companies/{company_id}/time-entries/status:
    patch:
      tags:
      - Time Entries
      operationId: UpdateTimeEntryStatus
      parameters:
      - name: company_id
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: Idempotency-Key
        in: header
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update_time_entry_status_request'
        required: true
      responses:
        '200':
          description: Payload of UpdateTimeEntryStatusResponse
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/update_time_entry_status_response'
      security:
      - bearerAuth: []
      summary: Update time entry status
      x-summary-source: derived
components:
  schemas:
    create_time_entry_request:
      type: object
      properties:
        person_id:
          type: integer
          format: int32
        work_date:
          type: string
          format: date
        hours:
          type: number
          format: double
        notes:
          type: string
    update_time_entries_response:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/time_entry_response'
    list_items_response_time_entry_response:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/time_entry_response'
    update_time_entries_request:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/update_time_entry_request'
    time_entry_response:
      type: object
      properties:
        id:
          type: integer
          format: int32
        person_id:
          type: integer
          format: int32
        work_date:
          type: string
          format: date
        hours:
          type: number
          format: double
        notes:
          type: string
        status:
          enum:
          - pending
          - edited
          - approved
          - paid
          - rejected
          type: string
          default: pending
    update_time_entry_status_response:
      type: object
      properties:
        time_entry_ids:
          type: array
          items:
            type: integer
            format: int32
        status:
          enum:
          - pending
          - edited
          - approved
          - paid
          - rejected
          type: string
          default: pending
    problem_details:
      type: object
      properties:
        type:
          type: string
        title:
          type: string
        status:
          type:
          - integer
          - 'null'
          format: int32
        detail:
          type: string
        instance:
          type: string
        extensions:
          type: object
          additionalProperties:
            type: object
    create_time_entries_request:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/create_time_entry_request'
    update_time_entry_request:
      type: object
      properties:
        time_entry_id:
          type: integer
          format: int32
        hours:
          type:
          - number
          - 'null'
          format: double
        notes:
          type: string
    update_time_entry_status_request:
      type: object
      properties:
        time_entry_ids:
          type: array
          items:
            type: integer
            format: int32
        action:
          enum:
          - approve
          - unapprove
          - reject
          type:
          - string
          - 'null'
          default: approve
        notes:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT