{"openapi":"3.1.0","info":{"title":"Cron Schedule and Runtime Guard API","version":"1.0.0","description":"Inspect strict five-field UNIX cron expressions, return bounded previous or next reference runs, summarize windows, compare schedules, and apply caller policy. The API uses explicit IANA timezones and creates no job, invokes no target, accesses no scheduler, and stores no payload."},"paths":{"/marketplace/rapid/cron/v1/inspect":{"post":{"tags":["Cron Inspection"],"summary":"Inspect Cron Schedule","operationId":"inspectCronSchedule","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InspectCronRequest"},"examples":{"example":{"summary":"Inspect Cron Schedule","value":{"schedule":{"expression":"0 9 * * 1-5","timezone":"America/Denver","dialect":"UNIX_5_FIELD"}}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CronInspectionResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/cron/v1/next-runs":{"post":{"tags":["Next Cron Runs"],"summary":"Get Next Cron Runs","operationId":"getNextCronRuns","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OccurrenceRequest"},"examples":{"example":{"summary":"Get Next Cron Runs","value":{"schedule":{"expression":"0 9 * * 1-5","timezone":"America/Denver","dialect":"UNIX_5_FIELD"},"reference_time":"2026-08-11T12:00:00Z","count":5,"horizon_days":30}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OccurrenceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/cron/v1/previous-runs":{"post":{"tags":["Previous Cron Runs"],"summary":"Get Previous Cron Runs","operationId":"getPreviousCronRuns","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OccurrenceRequest"},"examples":{"example":{"summary":"Get Previous Cron Runs","value":{"schedule":{"expression":"0 9 * * 1-5","timezone":"America/Denver","dialect":"UNIX_5_FIELD"},"reference_time":"2026-08-11T12:00:00Z","count":5,"horizon_days":30}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OccurrenceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/cron/v1/window-summary":{"post":{"tags":["Cron Window Summary"],"summary":"Summarize Cron Window","operationId":"summarizeCronWindow","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowRequest"},"examples":{"example":{"summary":"Summarize Cron Window","value":{"schedule":{"expression":"0 9 * * 1-5","timezone":"America/Denver","dialect":"UNIX_5_FIELD"},"window_start":"2026-08-11T00:00:00Z","window_end":"2026-08-18T00:00:00Z","maximum_occurrences":100}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WindowSummaryResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/cron/v1/compare":{"post":{"tags":["Cron Schedule Comparison"],"summary":"Compare Cron Schedules","operationId":"compareCronSchedules","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompareCronRequest"},"examples":{"example":{"summary":"Compare Cron Schedules","value":{"left":{"expression":"0 9 * * 1-5","timezone":"America/Denver","dialect":"UNIX_5_FIELD"},"right":{"expression":"0 16 * * 1-5","timezone":"UTC","dialect":"UNIX_5_FIELD"},"reference_time":"2026-08-11T12:00:00Z","count":10}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompareCronResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/cron/v1/policy-check":{"post":{"tags":["Cron Schedule Policy"],"summary":"Check Cron Schedule Policy","operationId":"checkCronSchedulePolicy","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CronPolicyRequest"},"examples":{"example":{"summary":"Check Cron Schedule Policy","value":{"schedule":{"expression":"0 9 * * 1-5","timezone":"America/Denver","dialect":"UNIX_5_FIELD"},"window_start":"2026-08-11T00:00:00Z","window_end":"2026-08-18T00:00:00Z","maximum_occurrences":100,"minimum_gap_minutes":60,"maximum_runs_in_window":10,"allowed_local_hours":[9],"allowed_local_weekdays":[0,1,2,3,4],"block_timezone_offset_changes":true}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CronPolicyResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"CompareCronRequest":{"properties":{"left":{"$ref":"#/components/schemas/CronSpec"},"right":{"$ref":"#/components/schemas/CronSpec"},"reference_time":{"type":"string","format":"date-time","title":"Reference Time"},"count":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Count","default":20},"horizon_days":{"type":"integer","maximum":3660.0,"minimum":1.0,"title":"Horizon Days","default":366}},"additionalProperties":false,"type":"object","required":["left","right","reference_time"],"title":"CompareCronRequest"},"CompareCronResult":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"ruleset_version":{"type":"string","const":"UNIX_5_FIELD_REFERENCE_2026","title":"Ruleset Version","default":"UNIX_5_FIELD_REFERENCE_2026"},"scope":{"type":"string","const":"CALLER_SUPPLIED_CRON_FACTS_ONLY","title":"Scope","default":"CALLER_SUPPLIED_CRON_FACTS_ONLY"},"scheduler_accessed":{"type":"boolean","const":false,"title":"Scheduler Accessed","default":false},"job_created":{"type":"boolean","const":false,"title":"Job Created","default":false},"target_invoked":{"type":"boolean","const":false,"title":"Target Invoked","default":false},"delivery_guaranteed":{"type":"boolean","const":false,"title":"Delivery Guaranteed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"left_expression":{"type":"string","title":"Left Expression"},"right_expression":{"type":"string","title":"Right Expression"},"reference_time":{"type":"string","title":"Reference Time"},"left_occurrences":{"items":{"$ref":"#/components/schemas/CronOccurrence"},"type":"array","title":"Left Occurrences"},"right_occurrences":{"items":{"$ref":"#/components/schemas/CronOccurrence"},"type":"array","title":"Right Occurrences"},"overlap_utc_times":{"items":{"type":"string"},"type":"array","title":"Overlap Utc Times"},"same_next_occurrences":{"type":"boolean","title":"Same Next Occurrences"},"first_divergence":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"First Divergence"},"findings":{"items":{"$ref":"#/components/schemas/CronIssue"},"type":"array","title":"Findings"},"next_action":{"type":"string","title":"Next Action"}},"type":"object","required":["decision","left_expression","right_expression","reference_time","left_occurrences","right_occurrences","overlap_utc_times","same_next_occurrences","first_divergence","findings","next_action"],"title":"CompareCronResult"},"CronInspectionResult":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"ruleset_version":{"type":"string","const":"UNIX_5_FIELD_REFERENCE_2026","title":"Ruleset Version","default":"UNIX_5_FIELD_REFERENCE_2026"},"scope":{"type":"string","const":"CALLER_SUPPLIED_CRON_FACTS_ONLY","title":"Scope","default":"CALLER_SUPPLIED_CRON_FACTS_ONLY"},"scheduler_accessed":{"type":"boolean","const":false,"title":"Scheduler Accessed","default":false},"job_created":{"type":"boolean","const":false,"title":"Job Created","default":false},"target_invoked":{"type":"boolean","const":false,"title":"Target Invoked","default":false},"delivery_guaranteed":{"type":"boolean","const":false,"title":"Delivery Guaranteed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"normalized_expression":{"type":"string","title":"Normalized Expression"},"dialect":{"type":"string","title":"Dialect"},"timezone":{"type":"string","title":"Timezone"},"fields":{"additionalProperties":{"type":"string"},"type":"object","title":"Fields"},"day_match_semantics":{"type":"string","title":"Day Match Semantics"},"findings":{"items":{"$ref":"#/components/schemas/CronIssue"},"type":"array","title":"Findings"},"next_action":{"type":"string","title":"Next Action"}},"type":"object","required":["decision","normalized_expression","dialect","timezone","fields","day_match_semantics","findings","next_action"],"title":"CronInspectionResult"},"CronIssue":{"properties":{"code":{"type":"string","title":"Code"},"severity":{"type":"string","enum":["LOW","MEDIUM","HIGH"],"title":"Severity"},"message":{"type":"string","title":"Message"},"evidence":{"additionalProperties":true,"type":"object","title":"Evidence"},"next_action":{"type":"string","title":"Next Action"}},"type":"object","required":["code","severity","message","evidence","next_action"],"title":"CronIssue"},"CronOccurrence":{"properties":{"local_time":{"type":"string","title":"Local Time"},"utc_time":{"type":"string","title":"Utc Time"},"utc_offset":{"type":"string","title":"Utc Offset"},"fold":{"type":"integer","title":"Fold"}},"type":"object","required":["local_time","utc_time","utc_offset","fold"],"title":"CronOccurrence"},"CronPolicyRequest":{"properties":{"schedule":{"$ref":"#/components/schemas/CronSpec"},"window_start":{"type":"string","format":"date-time","title":"Window Start"},"window_end":{"type":"string","format":"date-time","title":"Window End"},"maximum_occurrences":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Maximum Occurrences","default":1000},"minimum_gap_minutes":{"anyOf":[{"type":"integer","maximum":525600.0,"minimum":1.0},{"type":"null"}],"title":"Minimum Gap Minutes"},"maximum_runs_in_window":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Maximum Runs In Window"},"allowed_local_hours":{"anyOf":[{"items":{"type":"integer"},"type":"array","maxItems":24},{"type":"null"}],"title":"Allowed Local Hours"},"allowed_local_weekdays":{"anyOf":[{"items":{"type":"integer"},"type":"array","maxItems":7},{"type":"null"}],"title":"Allowed Local Weekdays"},"block_timezone_offset_changes":{"type":"boolean","title":"Block Timezone Offset Changes","default":false}},"additionalProperties":false,"type":"object","required":["schedule","window_start","window_end"],"title":"CronPolicyRequest"},"CronPolicyResult":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"ruleset_version":{"type":"string","const":"UNIX_5_FIELD_REFERENCE_2026","title":"Ruleset Version","default":"UNIX_5_FIELD_REFERENCE_2026"},"scope":{"type":"string","const":"CALLER_SUPPLIED_CRON_FACTS_ONLY","title":"Scope","default":"CALLER_SUPPLIED_CRON_FACTS_ONLY"},"scheduler_accessed":{"type":"boolean","const":false,"title":"Scheduler Accessed","default":false},"job_created":{"type":"boolean","const":false,"title":"Job Created","default":false},"target_invoked":{"type":"boolean","const":false,"title":"Target Invoked","default":false},"delivery_guaranteed":{"type":"boolean","const":false,"title":"Delivery Guaranteed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"normalized_expression":{"type":"string","title":"Normalized Expression"},"timezone":{"type":"string","title":"Timezone"},"window_start":{"type":"string","title":"Window Start"},"window_end":{"type":"string","title":"Window End"},"occurrence_count":{"type":"integer","title":"Occurrence Count"},"first_occurrence":{"anyOf":[{"$ref":"#/components/schemas/CronOccurrence"},{"type":"null"}]},"last_occurrence":{"anyOf":[{"$ref":"#/components/schemas/CronOccurrence"},{"type":"null"}]},"minimum_gap_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minimum Gap Seconds"},"maximum_gap_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maximum Gap Seconds"},"offset_change_count":{"type":"integer","title":"Offset Change Count"},"truncated":{"type":"boolean","title":"Truncated"},"findings":{"items":{"$ref":"#/components/schemas/CronIssue"},"type":"array","title":"Findings"},"next_action":{"type":"string","title":"Next Action"},"allowed_by_policy":{"type":"boolean","title":"Allowed By Policy"},"evaluated_policy":{"additionalProperties":true,"type":"object","title":"Evaluated Policy"}},"type":"object","required":["decision","normalized_expression","timezone","window_start","window_end","occurrence_count","first_occurrence","last_occurrence","minimum_gap_seconds","maximum_gap_seconds","offset_change_count","truncated","findings","next_action","allowed_by_policy","evaluated_policy"],"title":"CronPolicyResult"},"CronSpec":{"properties":{"expression":{"type":"string","maxLength":128,"minLength":1,"title":"Expression"},"timezone":{"type":"string","maxLength":128,"minLength":1,"title":"Timezone","default":"UTC"},"dialect":{"type":"string","const":"UNIX_5_FIELD","title":"Dialect","default":"UNIX_5_FIELD"}},"additionalProperties":false,"type":"object","required":["expression"],"title":"CronSpec"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InspectCronRequest":{"properties":{"schedule":{"$ref":"#/components/schemas/CronSpec"}},"additionalProperties":false,"type":"object","required":["schedule"],"title":"InspectCronRequest"},"OccurrenceRequest":{"properties":{"schedule":{"$ref":"#/components/schemas/CronSpec"},"reference_time":{"type":"string","format":"date-time","title":"Reference Time"},"count":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Count","default":10},"horizon_days":{"type":"integer","maximum":3660.0,"minimum":1.0,"title":"Horizon Days","default":366}},"additionalProperties":false,"type":"object","required":["schedule","reference_time"],"title":"OccurrenceRequest"},"OccurrenceResult":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"ruleset_version":{"type":"string","const":"UNIX_5_FIELD_REFERENCE_2026","title":"Ruleset Version","default":"UNIX_5_FIELD_REFERENCE_2026"},"scope":{"type":"string","const":"CALLER_SUPPLIED_CRON_FACTS_ONLY","title":"Scope","default":"CALLER_SUPPLIED_CRON_FACTS_ONLY"},"scheduler_accessed":{"type":"boolean","const":false,"title":"Scheduler Accessed","default":false},"job_created":{"type":"boolean","const":false,"title":"Job Created","default":false},"target_invoked":{"type":"boolean","const":false,"title":"Target Invoked","default":false},"delivery_guaranteed":{"type":"boolean","const":false,"title":"Delivery Guaranteed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"direction":{"type":"string","enum":["NEXT","PREVIOUS"],"title":"Direction"},"normalized_expression":{"type":"string","title":"Normalized Expression"},"timezone":{"type":"string","title":"Timezone"},"reference_time":{"type":"string","title":"Reference Time"},"occurrences":{"items":{"$ref":"#/components/schemas/CronOccurrence"},"type":"array","title":"Occurrences"},"findings":{"items":{"$ref":"#/components/schemas/CronIssue"},"type":"array","title":"Findings"},"next_action":{"type":"string","title":"Next Action"}},"type":"object","required":["decision","direction","normalized_expression","timezone","reference_time","occurrences","findings","next_action"],"title":"OccurrenceResult"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WindowRequest":{"properties":{"schedule":{"$ref":"#/components/schemas/CronSpec"},"window_start":{"type":"string","format":"date-time","title":"Window Start"},"window_end":{"type":"string","format":"date-time","title":"Window End"},"maximum_occurrences":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Maximum Occurrences","default":1000}},"additionalProperties":false,"type":"object","required":["schedule","window_start","window_end"],"title":"WindowRequest"},"WindowSummaryResult":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"ruleset_version":{"type":"string","const":"UNIX_5_FIELD_REFERENCE_2026","title":"Ruleset Version","default":"UNIX_5_FIELD_REFERENCE_2026"},"scope":{"type":"string","const":"CALLER_SUPPLIED_CRON_FACTS_ONLY","title":"Scope","default":"CALLER_SUPPLIED_CRON_FACTS_ONLY"},"scheduler_accessed":{"type":"boolean","const":false,"title":"Scheduler Accessed","default":false},"job_created":{"type":"boolean","const":false,"title":"Job Created","default":false},"target_invoked":{"type":"boolean","const":false,"title":"Target Invoked","default":false},"delivery_guaranteed":{"type":"boolean","const":false,"title":"Delivery Guaranteed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"normalized_expression":{"type":"string","title":"Normalized Expression"},"timezone":{"type":"string","title":"Timezone"},"window_start":{"type":"string","title":"Window Start"},"window_end":{"type":"string","title":"Window End"},"occurrence_count":{"type":"integer","title":"Occurrence Count"},"first_occurrence":{"anyOf":[{"$ref":"#/components/schemas/CronOccurrence"},{"type":"null"}]},"last_occurrence":{"anyOf":[{"$ref":"#/components/schemas/CronOccurrence"},{"type":"null"}]},"minimum_gap_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minimum Gap Seconds"},"maximum_gap_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maximum Gap Seconds"},"offset_change_count":{"type":"integer","title":"Offset Change Count"},"truncated":{"type":"boolean","title":"Truncated"},"findings":{"items":{"$ref":"#/components/schemas/CronIssue"},"type":"array","title":"Findings"},"next_action":{"type":"string","title":"Next Action"}},"type":"object","required":["decision","normalized_expression","timezone","window_start","window_end","occurrence_count","first_occurrence","last_occurrence","minimum_gap_seconds","maximum_gap_seconds","offset_change_count","truncated","findings","next_action"],"title":"WindowSummaryResult"}}},"tags":[{"name":"Cron Inspection","description":"Bounded, non-executing cron schedule evidence for DevOps tools, workflow engines, integrations, and AI agents."},{"name":"Next Cron Runs","description":"Bounded, non-executing cron schedule evidence for DevOps tools, workflow engines, integrations, and AI agents."},{"name":"Previous Cron Runs","description":"Bounded, non-executing cron schedule evidence for DevOps tools, workflow engines, integrations, and AI agents."},{"name":"Cron Window Summary","description":"Bounded, non-executing cron schedule evidence for DevOps tools, workflow engines, integrations, and AI agents."},{"name":"Cron Schedule Comparison","description":"Bounded, non-executing cron schedule evidence for DevOps tools, workflow engines, integrations, and AI agents."},{"name":"Cron Schedule Policy","description":"Bounded, non-executing cron schedule evidence for DevOps tools, workflow engines, integrations, and AI agents."}],"servers":[{"url":"https://api-production-9502.up.railway.app"}]}