Update schedule
Change the sync frequency, and optionally the hour it runs at, for a connection. Scheduled frequencies are pushed to Airbyte; manual switches the connection to manual triggering. Requires an agency key (ak_).
Sending sync_frequency alone KEEPS the connection's existing sync_hour_utc rather than resetting it to the default, so changing cadence never silently moves a client's sync to a different time of day. The response returns runs_at_utc, the concrete hours this schedule fires at.
curl -X PATCH "https://mythic-analytics.gulp.workers.dev/client/v1/airbyte/connections/example_string/schedule" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"sync_frequency": "manual",
"sync_hour_utc": 8
}'
import requests
import json
url = "https://mythic-analytics.gulp.workers.dev/client/v1/airbyte/connections/example_string/schedule"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"sync_frequency": "manual",
"sync_hour_utc": 8
}
response = requests.patch(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://mythic-analytics.gulp.workers.dev/client/v1/airbyte/connections/example_string/schedule", {
method: "PATCH",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"sync_frequency": "manual",
"sync_hour_utc": 8
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"sync_frequency": "manual",
"sync_hour_utc": 8
}`)
req, err := http.NewRequest("PATCH", "https://mythic-analytics.gulp.workers.dev/client/v1/airbyte/connections/example_string/schedule", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://mythic-analytics.gulp.workers.dev/client/v1/airbyte/connections/example_string/schedule')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"sync_frequency": "manual",
"sync_hour_utc": 8
}'
response = http.request(request)
puts response.body
{
"success": true,
"sync_frequency": "manual",
"sync_hour_utc": 8,
"runs_at_utc": [
2,
8,
14,
20
]
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Forbidden",
"message": "You don't have permission to access this resource",
"code": 403
}
{
"error": "Not Found",
"message": "The requested resource was not found",
"code": 404
}
/connections/{id}/scheduleTarget server for requests. Edit to use your own host.
Agency key as bearer token, format Bearer ak_.... Grants full read-write access scoped to the agency. Agency-wide scoped keys (mcp_ with no fixed location) are accepted too and need airbyte:read or airbyte:write; a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.
Bearer ak_.... Grants full read-write access scoped to the agency. Agency-wide scoped keys (mcp_ with no fixed location) are accepted too and need airbyte:read or airbyte:write; a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.
Location secret key as bearer token, format Bearer sk_.... Grants read-only access; the agency is resolved from the location. Write endpoints return 403.
Bearer sk_.... Grants read-only access; the agency is resolved from the location. Write endpoints return 403.
Mythic connection record identifier (the local UUID, not the Airbyte connection ID).
The media type of the request body
Sync cadence. 24h, 12h and 6h schedule automatic syncs at sync_hour_utc; manual disables them, and is the DEFAULT — a connection created without this field does not sync on a schedule.
Hour of day, UTC, the cadence is anchored to. Defaults to 2 when unset. Sub-daily cadences anchor on hour % interval, so the hour you ask for is always one of the run times and the runs stay evenly spaced — 6h at 8 runs at 02:00, 08:00, 14:00 and 20:00. Ignored when sync_frequency is manual.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Agency key as bearer token, format Bearer ak_.... Grants full read-write access scoped to the agency. Agency-wide scoped keys (mcp_ with no fixed location) are accepted too and need airbyte:read or airbyte:write; a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.
Bearer token. Location secret key as bearer token, format Bearer sk_.... Grants read-only access; the agency is resolved from the location. Write endpoints return 403.
Path Parameters
Mythic connection record identifier (the local UUID, not the Airbyte connection ID).
Body
Sync cadence. 24h, 12h and 6h schedule automatic syncs at sync_hour_utc; manual disables them, and is the DEFAULT — a connection created without this field does not sync on a schedule.
manual24h12h6hHour of day, UTC, the cadence is anchored to. Defaults to 2 when unset. Sub-daily cadences anchor on hour % interval, so the hour you ask for is always one of the run times and the runs stay evenly spaced — 6h at 8 runs at 02:00, 08:00, 14:00 and 20:00. Ignored when sync_frequency is manual.
8Responses
Sync cadence. 24h, 12h and 6h schedule automatic syncs at sync_hour_utc; manual disables them, and is the DEFAULT — a connection created without this field does not sync on a schedule.
manual24h12h6hHour of day, UTC, the cadence is anchored to. Defaults to 2 when unset. Sub-daily cadences anchor on hour % interval, so the hour you ask for is always one of the run times and the runs stay evenly spaced — 6h at 8 runs at 02:00, 08:00, 14:00 and 20:00. Ignored when sync_frequency is manual.
The hours (UTC) this schedule actually fires at — empty for manual. Provided so a caller never has to decode a cron expression to tell a client when their data lands.