Skedulo Offers API

The Offers API from Skedulo — 7 operation(s) for offers.

Operations 7

POST /offer/job/resource/{resource_job_offer_id}/accept Accept a job offer
POST /offer/job/resource/{resource_job_offer_id}/decline Decline a job offer
POST /offer/job/{job_offer_id}/notify Notify associated resources about a job offer
POST /offer/shift/resource/{resource_shift_offer_id}/accept Accept a shift offer
POST /offer/job/{job_offer_id}/cancel Cancel a job offer
POST /offer/shift/resource/{resource_shift_offer_id}/decline Decline a shift offer
POST /offer/shift/{shift_offer_id}/notify Notify associated resources about a shift offer

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/skedulo-offers-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

skedulo-offers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Authentication Admin Offers API
  description: Skedulo Authentication API
  version: 1.0.0
servers:
- url: https://api.skedulo.com/auth
- url: https://api.uk.skedulo.com/auth
- url: https://api.ca.skedulo.com/auth
- url: https://api.au.skedulo.com/auth
tags:
- name: Offers
paths:
  /offer/job/resource/{resource_job_offer_id}/accept:
    post:
      security:
      - Authorization: []
      summary: Accept a job offer
      tags:
      - Offers
      description: The offered job will be automatically allocated if the `autoAllocateJobOffers` org preference is enabled. Schedulers and Admins can accept any offer. Resources can only accept an offer that is assigned to them. Stores the time the response was sent as either the given timestamp or the current time if a time is not provided.
      parameters:
      - name: resource_job_offer_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AllocationActionTimestamp'
        required: true
      responses:
        '200':
          description: Result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessAndStatus'
        default:
          description: 'Error. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /offer/job/resource/{resource_job_offer_id}/decline:
    post:
      security:
      - Authorization: []
      summary: Decline a job offer
      tags:
      - Offers
      description: Closes the offer. After an offer is declined, it cannot be subsequently accepted. Schedulers and Admins can decline any offer. Resources can only decline an offer that is assigned to them. Stores the time the response was sent as either the given timestamp or the current time if a time is not provided.
      parameters:
      - name: resource_job_offer_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AllocationActionTimestamp'
        required: true
      responses:
        '200':
          description: Result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessAndStatus'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /offer/job/{job_offer_id}/notify:
    post:
      security:
      - Authorization: []
      summary: Notify associated resources about a job offer
      tags:
      - Offers
      description: Send a notification to some or all resources who have an open offer on the given job. Resources who have declined will not be notified. Each resource's preferred notification method (push or SMS) will be used, if set. If job offer notifications are disabled then no notifications will be sent and an appropriate message will be returned in the response.
      parameters:
      - name: job_offer_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: List of Resource Job Offer IDs to notify. This is optional -- if not present, all resources will be notified.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotifyResources'
        required: false
      responses:
        '200':
          description: The results of notifying each resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotifyResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /offer/shift/resource/{resource_shift_offer_id}/accept:
    post:
      security:
      - Authorization: []
      summary: Accept a shift offer
      tags:
      - Offers
      description: The offered shift will be automatically allocated if the `autoAllocateShiftOffers` org preference is enabled. Schedulers and Admins can accept any offer. Resources can only accept an offer that is assigned to them. Stores the time the response was sent as either the given timestamp or the current time if a time is not provided.
      parameters:
      - name: resource_shift_offer_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AllocationActionTimestamp'
        required: true
      responses:
        '200':
          description: Result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessAndStatus'
        default:
          description: 'Error. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /offer/job/{job_offer_id}/cancel:
    post:
      security:
      - Authorization: []
      summary: Cancel a job offer
      tags:
      - Offers
      description: Cancels the job offer. After an offer is cancelled, it cannot be subsequently accepted. Also cancels any associated pending resource jobs offers
      parameters:
      - name: job_offer_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The IDs of the ResourceJobOffers that were cancelled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelOfferResponse'
        default:
          description: 'Error. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /offer/shift/resource/{resource_shift_offer_id}/decline:
    post:
      security:
      - Authorization: []
      summary: Decline a shift offer
      tags:
      - Offers
      description: Closes the offer. After an offer is declined, it cannot be subsequently accepted. Schedulers and Admins can decline any offer. Resources can only decline an offer that is assigned to them. Stores the time the response was sent as either the given timestamp or the current time if a time is not provided.
      parameters:
      - name: resource_shift_offer_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AllocationActionTimestamp'
        required: true
      responses:
        '200':
          description: Result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessAndStatus'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /offer/shift/{shift_offer_id}/notify:
    post:
      security:
      - Authorization: []
      summary: Notify associated resources about a shift offer
      tags:
      - Offers
      description: Send a notification to some or all resources who have an open offer on the given shift. Resources who have declined will not be notified. Each resource's preferred notification method (push or SMS) will be used, if set.
      parameters:
      - name: shift_offer_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: 'List of Resource Shift Offer IDs to notify. This is optional: if not present, all resources will be notified.'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotifyResources'
        required: false
      responses:
        '200':
          description: The results of notifying each resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotifyResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ResourceResult:
      type: object
      properties:
        resourceId:
          type: string
        protocol:
          type: string
        error:
          description: null if the notification was sent successfully
          $ref: '#/components/schemas/Error'
    SuccessAndStatus:
      type: object
      properties:
        success:
          type: boolean
          default: true
        status:
          type: string
          enum:
          - Accepted
          - Declined
          - Allocated
    NotifyResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ResourceResult'
    CancelOfferResponse:
      type: object
      properties:
        result:
          type: object
          required:
          - result
          properties:
            cancelledResourceJobOfferIds:
              type: array
              items:
                type: string
              example:
              - 001449b0-1130-4e8c-9b8d-d30d812db84b
              - 001334b0-1130-5e8c-9b8d-d30d812db84b
    NotifyResources:
      type: object
      properties:
        resourceOfferIds:
          type: array
          items:
            type: string
    AllocationActionTimestamp:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
    Error:
      type: object
      required:
      - errorType
      - message
      properties:
        errorType:
          type: string
        message:
          type: string
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      bearerFormat: JWT