7shifts Time Punches API

Clock-in and clock-out time tracking records.

Operations 3

GET /v2/company/{company_id}/time_punches List Time Punches #
POST /v2/company/{company_id}/time_punches Create Time Punch #
GET /v2/company/{company_id}/time_punches/{time_punch_id} Retrieve Time Punch #

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/7shifts-time-punches-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

7shifts-time-punches-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 7shifts Availability Time Punches API
  version: '2.0'
  description: 7shifts is a restaurant employee scheduling, time-tracking, and team management platform. The 7shifts API v2 is a REST API for managing companies, locations, departments, roles, users (employees), schedules, shifts, time punches, wages, time off, availability, sales receipts, forecasts, tasks, tip pools, and webhooks. Authentication uses Bearer access tokens for internal access or OAuth 2.0 client credentials for partner integrations. Endpoints documented here were confirmed from the 7shifts developer reference (developers.7shifts.com) and its llms.txt index. Most resources are scoped to a company via the /v2/company/{company_id} path prefix. Collection endpoints use cursor-based pagination via the cursor and limit query parameters. Date-based API versions are selected with the x-api-version header (YYYY-MM-DD).
  contact:
    name: 7shifts Developer Portal
    url: https://developers.7shifts.com/reference/introduction
  license:
    name: 7shifts API Terms
    url: https://www.7shifts.com/legal/terms-of-service
servers:
- url: https://api.7shifts.com
  description: 7shifts API production base URL
tags:
- name: Time Punches
  description: Clock-in and clock-out time tracking records.
paths:
  /v2/company/{company_id}/time_punches:
    get:
      tags:
      - Time Punches
      operationId: listTimePunches
      summary: List Time Punches
      parameters:
      - $ref: '#/components/parameters/CompanyIdPath'
      - name: location_id
        in: query
        required: false
        description: Filter by location.
        schema:
          type: integer
          format: int64
      - name: department_id
        in: query
        required: false
        description: Filter by department.
        schema:
          type: integer
          format: int64
      - name: user_id
        in: query
        required: false
        description: Filter by user.
        schema:
          type: integer
          format: int64
      - name: approved
        in: query
        required: false
        description: Filter by approval status.
        schema:
          type: boolean
      - name: clocked_in[gte]
        in: query
        required: false
        description: Filter by clock-in time greater than or equal to (ISO8601).
        schema:
          type: string
          format: date-time
      - name: clocked_in[lte]
        in: query
        required: false
        description: Filter by clock-in time less than or equal to (ISO8601).
        schema:
          type: string
          format: date-time
      - name: modified_since
        in: query
        required: false
        description: Return time punches modified after the specified datetime.
        schema:
          type: string
          format: date-time
      - $ref: '#/components/parameters/Cursor'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TimePunch'
                  meta:
                    $ref: '#/components/schemas/CursorMeta'
      security:
      - bearerAuth: []
    post:
      tags:
      - Time Punches
      operationId: createTimePunch
      summary: Create Time Punch
      parameters:
      - $ref: '#/components/parameters/CompanyIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TimePunch'
      responses:
        '201':
          description: Created
      security:
      - bearerAuth: []
  /v2/company/{company_id}/time_punches/{time_punch_id}:
    get:
      tags:
      - Time Punches
      operationId: retrieveTimePunch
      summary: Retrieve Time Punch
      parameters:
      - $ref: '#/components/parameters/CompanyIdPath'
      - name: time_punch_id
        in: path
        required: true
        description: Time punch identifier.
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/TimePunch'
        '404':
          description: Not found
      security:
      - bearerAuth: []
components:
  schemas:
    Break:
      title: Break
      type: object
      properties:
        id:
          type: integer
          format: int64
        in:
          type: string
          format: date-time
        out:
          type: string
          format: date-time
          nullable: true
        paid:
          type: boolean
    CursorMeta:
      title: Cursor Meta
      type: object
      description: Cursor-based pagination metadata.
      properties:
        cursor:
          type: object
          properties:
            current:
              type: string
            next:
              type: string
              nullable: true
            prev:
              type: string
              nullable: true
        count:
          type: integer
    TimePunch:
      title: Time Punch
      type: object
      properties:
        id:
          type: integer
          format: int64
        user_id:
          type: integer
          format: int64
        location_id:
          type: integer
          format: int64
        department_id:
          type: integer
          format: int64
        role_id:
          type: integer
          format: int64
        clocked_in:
          type: string
          format: date-time
          description: Clock-in timestamp (UTC, ISO8601).
        clocked_out:
          type: string
          format: date-time
          nullable: true
          description: Clock-out timestamp (UTC, ISO8601).
        approved:
          type: boolean
        hourly_wage:
          type: integer
          description: Calculated wage in cents.
        tips:
          type: integer
          description: Declared tips in cents.
        auto_clocked_out:
          type: boolean
        deleted:
          type: boolean
        breaks:
          type: array
          items:
            $ref: '#/components/schemas/Break'
        created:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
  parameters:
    CompanyIdPath:
      name: company_id
      in: path
      required: true
      description: Company identifier.
      schema:
        type: integer
        format: int64
    Limit:
      name: limit
      in: query
      required: false
      description: Results per page (1-500, default 100; 20 for some collections).
      schema:
        type: integer
        minimum: 1
        maximum: 500
        default: 100
    Cursor:
      name: cursor
      in: query
      required: false
      description: Pagination cursor for the next or previous page.
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Access token obtained from /oauth2/token passed as a Bearer token.
    oauth2:
      type: oauth2
      description: OAuth 2.0 with client_credentials, password, authorization_code, and refresh_token grant types.
      flows:
        clientCredentials:
          tokenUrl: https://api.7shifts.com/oauth2/token
          scopes: {}