Rachio Program Service API

The ProgramService API from Rachio — 11 operation(s) for programservice.

Operations 11

POST /program/createPlannedRunSkipOverrides Program service create planned run skip overrides #
POST /program/createProgramV2 Program service create program V2 #
POST /program/createSkipOverrides Program service create skip overrides #
POST /program/deletePlannedRunSkipOverrides Program service delete planned run skip overrides #
DELETE /program/deleteProgram/{id} Program service delete program #
POST /program/deleteSkipOverrides Program service delete skip overrides #
GET /program/getProgram/{id} Program service get program #
GET /program/getProgramV2/{id} Program service get program V2 #
GET /program/listPrograms/{entityId} Program service list programs #
GET /program/listProgramsV2 Program service list programs V2 #
PUT /program/updateProgramV2 Program service update program V2 #

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-list-properties-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-find-property-by-entity-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-get-property-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-update-program-v2-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-create-program-v2-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-delete-skip-overrides-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-create-skip-overrides-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-create-planned-run-skip-overrides-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-get-valve-day-views-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-create-lighting-program-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-update-lighting-program-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-update-lighting-zone-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-update-lighting-scene-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-update-lighting-zone-group-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-create-lighting-scene-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-create-webhook-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-update-webhook-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-list-webhook-event-types-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-list-webhooks-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-create-webhook-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/rachio/refs/heads/main/json-schema/rachio-get-webhook-response-schema.json

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/rachio:rachio-programservice-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

rachio-programservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Smart Hose Timer Program Service API
  version: 3.1.0
servers:
- url: https://cloud-rest.rach.io
security:
- bearerAuth: []
tags:
- name: ProgramService
paths:
  /program/createPlannedRunSkipOverrides:
    post:
      tags:
      - ProgramService
      operationId: ProgramService_CreatePlannedRunSkipOverrides
      description: Create manual skips for the program and planned run on a specific date. You can retrieve the run dates and plannedRunId from SummaryService.getValveDayViews
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePlannedRunSkipOverridesRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePlannedRunSkipOverridesResponse'
      summary: Program service create planned run skip overrides
      x-summary-source: derived
  /program/createProgramV2:
    post:
      tags:
      - ProgramService
      operationId: ProgramService_CreateProgramV2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProgramV2Request'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProgramV2Response'
      summary: Program service create program V2
      x-summary-source: derived
  /program/createSkipOverrides:
    post:
      description: Create manual skips for the specific program run time. You can retrieve the runtimes from SummaryService.getValveDayViews
      tags:
      - ProgramService
      operationId: ProgramService_CreateSkipOverrides
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSkipOverridesRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSkipOverridesResponse'
      summary: Program service create skip overrides
      x-summary-source: derived
  /program/deletePlannedRunSkipOverrides:
    post:
      tags:
      - ProgramService
      operationId: ProgramService_DeletePlannedRunSkipOverrides
      description: Cancel manual skips for the program and planned run on a specific date. You can retrieve the run dates and plannedRunId from SummaryService.getValveDayViews
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletePlannedRunSkipOverridesRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletePlannedRunSkipOverridesResponse'
      summary: Program service delete planned run skip overrides
      x-summary-source: derived
  /program/deleteProgram/{id}:
    delete:
      tags:
      - ProgramService
      operationId: ProgramService_DeleteProgram
      description: Supports deleting both V1 and V2 programs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteProgramResponse'
      summary: Program service delete program
      x-summary-source: derived
  /program/deleteSkipOverrides:
    post:
      description: Cancel program skips for the specified program run time. You can retrieve upcoming skips from SummaryService.getValveDayViews
      tags:
      - ProgramService
      operationId: ProgramService_DeleteSkipOverrides
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteSkipOverridesRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteSkipOverridesResponse'
      summary: Program service delete skip overrides
      x-summary-source: derived
  /program/getProgram/{id}:
    get:
      tags:
      - ProgramService
      description: Only supports programs with a single valve and fixed start times
      operationId: ProgramService_GetProgram
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProgramResponse'
      summary: Program service get program
      x-summary-source: derived
  /program/getProgramV2/{id}:
    get:
      tags:
      - ProgramService
      operationId: ProgramService_GetProgramV2
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProgramV2Response'
      summary: Program service get program V2
      x-summary-source: derived
  /program/listPrograms/{entityId}:
    get:
      tags:
      - ProgramService
      description: Only supports programs with a single valve and fixed start times
      operationId: ProgramService_ListPrograms
      parameters:
      - name: entityId
        in: path
        required: true
        description: The entity to retrieve all programs for, which is currently a valve ID
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProgramsResponse'
      summary: Program service list programs
      x-summary-source: derived
  /program/listProgramsV2:
    get:
      tags:
      - ProgramService
      operationId: ProgramService_ListProgramsV2
      parameters:
      - name: resourceId.baseStationId
        in: query
        schema:
          type: string
      - name: resourceId.valveId
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProgramsV2Response'
      summary: Program service list programs V2
      x-summary-source: derived
  /program/updateProgramV2:
    put:
      tags:
      - ProgramService
      operationId: ProgramService_UpdateProgramV2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProgramV2Request'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProgramV2Response'
      summary: Program service update program V2
      x-summary-source: derived
components:
  schemas:
    DailyIntervalCadence:
      type: object
      properties:
        intervalDays:
          type: integer
          format: int32
    PlannedRuns_PlannedRun:
      type: object
      properties:
        startAt:
          $ref: '#/components/schemas/Time'
        durationSec:
          type: integer
          format: int64
    ListProgramsV2Response:
      type: object
      properties:
        programs:
          type: array
          items:
            $ref: '#/components/schemas/ProgramV2'
    GetProgramResponse:
      type: object
      properties:
        program:
          $ref: '#/components/schemas/Program'
    PlannedRuns:
      description: Planned runs for the day
      type: object
      properties:
        runs:
          type: array
          items:
            $ref: '#/components/schemas/PlannedRuns_PlannedRun'
    CreatePlannedRunSkipOverridesRequest:
      type: object
      properties:
        plannedRunId:
          type: string
        date:
          $ref: '#/components/schemas/Date'
    SunStart:
      type: object
      properties:
        sunEvent:
          enum:
          - BEFORE_RISE
          - AFTER_RISE
          - BEFORE_SET
          - AFTER_SET
          type: string
          format: enum
        offsetSeconds:
          type: string
    ProgramSettings:
      type: object
      description: 'NOTE: either provide a startOnDate for a fixed start date, or provide startOn and endOn for annual start and end dates'
      properties:
        startOn:
          $ref: '#/components/schemas/CalendarDate'
        endOn:
          $ref: '#/components/schemas/CalendarDate'
        startOnNotificationsEnabled:
          type: boolean
        endOnNotificationsEnabled:
          type: boolean
        startOnDate:
          $ref: '#/components/schemas/Date'
    EvenDaysCadence:
      type: object
      properties: {}
    ProgramV2:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        color:
          type: string
        enabled:
          type: boolean
        dailyInterval:
          $ref: '#/components/schemas/DailyIntervalCadence'
        daysOfWeek:
          $ref: '#/components/schemas/DaysOfWeekCadence'
        oddDays:
          $ref: '#/components/schemas/OddDaysCadence'
        evenDays:
          $ref: '#/components/schemas/EvenDaysCadence'
        plannedRuns:
          type: array
          items:
            $ref: '#/components/schemas/PlannedRunV2'
        assignments:
          type: array
          items:
            $ref: '#/components/schemas/Assignment'
        rainSkipEnabled:
          type: boolean
        settings:
          $ref: '#/components/schemas/ProgramSettings'
    DaysOfWeekCadence:
      type: object
      properties:
        daysOfWeek:
          type: array
          items:
            enum:
            - MONDAY
            - TUESDAY
            - WEDNESDAY
            - THURSDAY
            - FRIDAY
            - SATURDAY
            - SUNDAY
            type: string
            format: enum
    EntityRun:
      type: object
      properties:
        entityId:
          type: string
        durationSec:
          type: string
    UpdateProgramV2Response:
      type: object
      properties:
        program:
          $ref: '#/components/schemas/ProgramV2'
    DeleteSkipOverridesResponse:
      type: object
      properties: {}
    Time:
      type: object
      properties:
        hour:
          type: integer
          format: int32
        minute:
          type: integer
          format: int32
        second:
          type: integer
          format: int32
    DeletePlannedRunSkipOverridesResponse:
      type: object
      properties: {}
    CreateSkipOverridesRequest:
      type: object
      properties:
        programId:
          type: string
        timestamp:
          type: string
          format: date-time
    CreateSkipOverridesResponse:
      type: object
      properties:
        programId:
          type: string
        timestamp:
          type: string
          format: date-time
        skipOverrides:
          type: array
          items:
            $ref: '#/components/schemas/SkipOverride'
    Program:
      type: object
      description: A program consists of planned runs for a day, as well as a cadence to repeat. A program has either a daily_interval cadence or a days_of_week cadence, but never both
      properties:
        id:
          type: string
        name:
          type: string
        color:
          type: string
        enabled:
          type: boolean
        startOn:
          $ref: '#/components/schemas/Date'
        endOn:
          description: Optional. Programs do not require an end date
          $ref: '#/components/schemas/Date'
        dailyInterval:
          $ref: '#/components/schemas/DailyIntervalCadence'
        daysOfWeek:
          $ref: '#/components/schemas/DaysOfWeekCadence'
        plannedRuns:
          $ref: '#/components/schemas/PlannedRuns'
        assignments:
          description: A list of valve IDs this program controls.
          type: array
          items:
            $ref: '#/components/schemas/Assignment'
        rainSkipEnabled:
          type: boolean
    FixedStart:
      type: object
      properties:
        startAt:
          $ref: '#/components/schemas/Time'
    RainOverrideTrigger:
      type: object
      description: Represents a run override that was due to rain
      properties:
        predictedPrecipMm:
          type: number
          format: double
        observedPrecipMm:
          type: number
          format: double
    DeleteProgramResponse:
      type: object
      properties: {}
    GetProgramV2Response:
      type: object
      properties:
        program:
          $ref: '#/components/schemas/ProgramV2'
    CreatePlannedRunSkipOverridesResponse:
      type: object
      properties:
        plannedRunId:
          type: string
        date:
          $ref: '#/components/schemas/Date'
        skipOverrides:
          type: array
          items:
            $ref: '#/components/schemas/SkipOverride'
    Assignment:
      type: object
      properties:
        entityId:
          description: Represents a (program, valve) relationship. This must be a valve ID.
          type: string
    PlannedRunV2:
      type: object
      properties:
        fixedStart:
          $ref: '#/components/schemas/FixedStart'
        sunStart:
          $ref: '#/components/schemas/SunStart'
        entityRuns:
          type: array
          items:
            $ref: '#/components/schemas/EntityRun'
        runConcurrently:
          type: boolean
        cycleAndSoak:
          type: boolean
    DeletePlannedRunSkipOverridesRequest:
      type: object
      properties:
        plannedRunId:
          type: string
        date:
          $ref: '#/components/schemas/Date'
    UpdateProgramV2Request:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        color:
          type: string
        enabled:
          type: boolean
        dailyInterval:
          $ref: '#/components/schemas/DailyIntervalCadence'
        daysOfWeek:
          $ref: '#/components/schemas/DaysOfWeekCadence'
        oddDays:
          $ref: '#/components/schemas/OddDaysCadence'
        evenDays:
          $ref: '#/components/schemas/EvenDaysCadence'
        plannedRuns:
          $ref: '#/components/schemas/UpdateProgramV2Request_PlannedRunsV2'
        rainSkipEnabled:
          type: boolean
        settings:
          $ref: '#/components/schemas/ProgramSettings'
      description: 'NOTE: This endpoint supports partial updates and only needs the id and the fields to update, not the entire model.'
    ManualOverrideTrigger:
      type: object
      description: Represents a manual run override
      properties: {}
    CreateProgramV2Response:
      type: object
      properties:
        program:
          $ref: '#/components/schemas/ProgramV2'
    OddDaysCadence:
      type: object
      properties: {}
    DeleteSkipOverridesRequest:
      type: object
      properties:
        programId:
          type: string
        timestamp:
          description: if the timestamp is not provided in the request then all skips for a program will be cancelled
          type: string
          format: date-time
    SkipOverride:
      type: object
      description: Represents a run override due to a skip. This is one of rain_override_trigger or manual_override_trigger, but never both
      properties:
        id:
          type: string
        entityId:
          type: string
        rainOverrideTrigger:
          $ref: '#/components/schemas/RainOverrideTrigger'
        manualOverrideTrigger:
          $ref: '#/components/schemas/ManualOverrideTrigger'
    ListProgramsResponse:
      type: object
      properties:
        programs:
          type: array
          items:
            $ref: '#/components/schemas/Program'
    CreateProgramV2Request:
      type: object
      properties:
        name:
          type: string
        color:
          type: string
        dailyInterval:
          $ref: '#/components/schemas/DailyIntervalCadence'
        daysOfWeek:
          $ref: '#/components/schemas/DaysOfWeekCadence'
        oddDays:
          $ref: '#/components/schemas/OddDaysCadence'
        evenDays:
          $ref: '#/components/schemas/EvenDaysCadence'
        plannedRuns:
          type: array
          items:
            $ref: '#/components/schemas/PlannedRunV2'
        rainSkipEnabled:
          type: boolean
        settings:
          $ref: '#/components/schemas/ProgramSettings'
    UpdateProgramV2Request_PlannedRunsV2:
      type: object
      properties:
        runs:
          type: array
          items:
            $ref: '#/components/schemas/PlannedRunV2'
    Date:
      type: object
      properties:
        year:
          type: integer
          format: int32
        month:
          type: integer
          format: int32
        day:
          type: integer
          format: int32
    CalendarDate:
      type: object
      properties:
        month:
          type: integer
          format: int32
        day:
          type: integer
          format: int32
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
x-provenance:
  method: searched
  source: https://rachio.readme.io/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://rachio.readme.io/reference/programservice_createplannedrunskipoverrides.md
  - https://rachio.readme.io/reference/programservice_createprogramv2.md
  - https://rachio.readme.io/reference/programservice_createskipoverrides.md
  - https://rachio.readme.io/reference/programservice_deleteplannedrunskipoverrides.md
  - https://rachio.readme.io/reference/programservice_deleteprogram.md
  - https://rachio.readme.io/reference/programservice_deleteskipoverrides.md
  - https://rachio.readme.io/reference/programservice_getprogram.md
  - https://rachio.readme.io/reference/programservice_getprogramv2.md
  - https://rachio.readme.io/reference/programservice_listprograms.md
  - https://rachio.readme.io/reference/programservice_listprogramsv2.md
  - https://rachio.readme.io/reference/programservice_updateprogramv2.md
  - https://rachio.readme.io/reference/summaryservice_getvalvedayviews.md
  - https://rachio.readme.io/reference/valveservice_getbasestation.md
  - https://rachio.readme.io/reference/valveservice_getvalve.md
  - https://rachio.readme.io/reference/valveservice_listbasestations.md
  - https://rachio.readme.io/reference/valveservice_listvalves.md
  - https://rachio.readme.io/reference/valveservice_setdefaultruntime.md
  - https://rachio.readme.io/reference/valveservice_startwatering.md
  - https://rachio.readme.io/reference/valveservice_stopwatering.md
  merge:
    pages: 19
    deduped: 96
    conflicts_kept_first: 0