{"tags":[{"name":"geo","description":"Geospatial data related APIs"},{"description":"Per-client Attributes","name":"client-state"},{"description":"Images APIs","name":"images"},{"name":"pages","description":"Content Pages APIs"},{"name":"settings","description":"Account settings APIs"},{"name":"metadata","description":"Metadata about the API"},{"description":"Calendar and Scheduling APIs","name":"calendar"},{"description":"Messaging and Notification related APIs","name":"messaging"},{"name":"address","description":"Geospatial and address related APIs"},{"description":"Service Request related APIs","name":"service-request"},{"name":"administrator","description":"ReCollect Administrator related APIs"},{"name":"connector","description":"Data Import Connector related APIs"},{"description":"Dashboard reporting metric APIs","name":"metrics"},{"description":"Creating Support Requests","name":"support-request"},{"description":"Recycle Game related APIs","name":"waste-game"},{"name":"watermeter","description":"APIs specific to Watermeter Services"},{"name":"waste","description":"APIs specific to Solid Waste and Recycling"}],"schemes":["https"],"securityDefinitions":{"RecSecurity":{"in":"header","name":"Authorization","type":"apiKey","description":"The Authorization header should contain the word 'Bearer', a space and then your ReCollect Auth Token"}},"host":"api.recollect.net","consumes":["application/json"],"paths":{"/areas/{area_id}/services/{svc_id}/zones/{zone_id}/events":{"put":{"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"},{"in":"body","name":"body","schema":{"properties":{"approve_all":{"type":"boolean","description":"If set to true, all events in the zone will be approved."}},"type":"object"},"description":"a JSON object containing the actions to run"}],"description":"<p>This method lets you approve all Events in the given Zone.</p> <p>Events that are not approved are only visible to administrators, but not residents.  This API call will make the un-approved Events visible to Admins.</p>\n","tags":["calendar"],"summary":"Bulk update Events in a Zone"},"post":{"description":"<p>Create a new Event in the Calendar for a Zone.</p> <p>This method can be used in several ways, for creating one event or several:\n  <ul>\n    <li>If <code>repeat</code> is true, then events will be created for each of the dates listed in the <code>recurring_days</code> array.</li>\n    <li>If <code>copy_from</code> is set to a valid Zone ID, then all of the calendar events from that Zone will be copied into the Zone ID specified in the URL path.</li>\n    <li>Otherwise, a single event is created.</li>\n  </ul>\n</p> <p>When creating a single event, you can specify a <code>title</code> and <code>desc</code>ription that will be used instead of the EventFlag <code>title</code> and <code>desc</code> values.  Alternately, you can specify titles and descriptions for multiple locales using the <code>title_loc</code> and <code>desc_loc</code> parameters, which expect a locale hash.</p>\n","summary":"Create a new Event in a Zone","tags":["calendar"],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"201":{"description":"201 Created - the resource was created."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"},{"description":"a JSON object containing the actions to run","required":true,"schema":{"$ref":"#/definitions/NewEvent"},"name":"body","in":"body"}]},"get":{"tags":["calendar"],"summary":"Return the Events for a given Zone","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"},{"in":"query","type":"string","name":"locale","description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"name":"after","type":"string","in":"query","description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources after the given date."},{"description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources before the given date.","in":"query","type":"string","name":"before"},{"in":"query","name":"holidays","type":"string","description":"A comma separated list of page names to be returned in the response."},{"in":"query","type":"boolean","name":"nomerge","description":"Should we not merge events together into one per day? (Default is false: merge them into one per day)"}],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/EventsZones"}},"404":{"description":"404 Not Found - could not find anything at this path."}}}},"/areas/{area_id}/services/{svc_id}":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/Service"}},"403":{"description":"403 Forbidden - must be a valid admin user."}},"summary":"Get a Service","tags":["settings"],"description":"This method will retrieve attributes for the given Service.\n"},"put":{"tags":["settings"],"summary":"Update a Service","description":"This method will update attributes for the given Service. When you post updated opts_json, it is necessary to provide an opts_checksum field, with the value coming from a previous service GET.  The opts_checksum field is used to avoid edit conflicts.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"required":true,"schema":{"$ref":"#/definitions/Service"},"description":"The attributes you want to update in the Area","in":"body","name":"body"}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."}}}},"/areas/{area_id}/logo.svg":{"get":{"summary":"Get an Area logo","tags":["images"],"description":"This method will return the logo of the given area.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"}],"responses":{"302":{"description":"Redirect to the current image URL"},"400":{"description":"400 Bad Request - could not fulfill this request."}}}},"/places/{place_id}":{"get":{"description":"This method will retrieve a Place object.\n","summary":"Get a Place","tags":["address"],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/Place"}}},"parameters":[{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true}]},"put":{"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true},{"name":"body","in":"body","description":"The attributes you want to update in the Place","required":true,"schema":{"$ref":"#/definitions/Place"}}],"description":"This method will update attributes for the given Place. Admins only.\n","summary":"Update a Place","tags":["address"]}},"/areas/{area_id}/game/config.{locale}.json":{"get":{"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"}],"description":"This method will retrieve the config for the waste game.\n","summary":"Get the game main configuration.","tags":["waste-game"]}},"/metrics/{area_id}/services/{svc_id}/game_cert_printed_stats":{"get":{"description":"Get the numbers of game certificates printed\n","tags":["metrics"],"summary":"Get game certificates print stats","responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}]}},"/areas/{area_id}/services/{svc_id}/pages/{locale}/{page_id}/section/{section_index}/row/{row_index}/{property_name}":{"get":{"responses":{"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"description":"The Page ID you want to fetch","required":true,"name":"page_id","type":"string","in":"path"},{"required":true,"description":"The index of the section","in":"path","name":"section_index","type":"number"},{"description":"The index of the row","required":true,"name":"row_index","type":"string","in":"path"},{"required":true,"description":"The name of the property to return","in":"path","name":"property_name","type":"string"}],"description":"This method will retrieve a specific page in the specified locale and return a single property from a row.\n","summary":"Get a single property for a row in a page","tags":["pages"]}},"/areas/{area_id}/services/{svc_id}/connector/{cname}/{status_id}/{cmd}":{"post":{"responses":{"201":{"description":"201 Created"},"200":{"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"cname","type":"string","in":"path","description":"connector name","required":true},{"in":"path","name":"status_id","type":"string","required":true,"description":"Connector status ID"},{"type":"string","name":"cmd","in":"path","description":"Command","required":true}],"description":"For cancelling or approving a previously started connector","summary":"Send a command to manipulate a connector instance","tags":["connector"]}},"/services/{svc_id}/strings":{"patch":{"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"}},"parameters":[{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"The text strings to update for this Service.  Should be a JSON object of key value pairs.  The key should be the locale name, and the value should be a hash of key value pairs (msgid to msgstr) to override for the given service.\n","required":true,"schema":{"$ref":"#/definitions/ServiceStrings"},"name":"body","in":"body"}],"description":"This method will update the text string customizations that have been setup for this service.  Only the specified strings will be updated, the rest will be preserved.\n","summary":"Update specific text string customizations","tags":["settings"]},"put":{"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK - the request was successful"},"403":{"description":"403 Forbidden - must be a valid admin user."}},"parameters":[{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"The text strings to update for this Service.  Should be a JSON object of key value pairs (msgid to msgstr) to override for the given service.\n","required":true,"schema":{"$ref":"#/definitions/ServiceStrings"},"name":"body","in":"body"}],"description":"This method will update the text string customizations that have been setup for this service.  If you only want to set one or two strings but preserve existing customizations, then look at the corresponding PATCH method.\n","tags":["settings"],"summary":"Update text string customizations"}},"/areas/{area_id}":{"put":{"description":"This method will update attributes for the given Area.\n","summary":"Update an Area","tags":["settings"],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"in":"body","name":"body","schema":{"$ref":"#/definitions/PutArea"},"required":true,"description":"The attributes you want to update in the Area"}]},"get":{"description":"This method will retrieve attributes for the given Area.\n","summary":"Get an Area","tags":["settings"],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/Area"}},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"}]}},"/parcels/{parcel_id}/zones/{zone_id}":{"patch":{"description":"This method will patch the parcel_zones opts for a parcel and zone.\n","tags":["parcel-zones"],"summary":"Patch parcel zones","responses":{"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"required":true,"description":"The ID of the parcel you want to get zones for.","in":"path","name":"parcel_id","type":"string"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"},{"in":"body","name":"body","required":true,"schema":{"type":"object"},"description":"The parcel_zones opts you want to patch"}]},"get":{"description":"This method will retrieve the parcel_zones opts for a parcel and zone.\n","summary":"Get parcel zones","tags":["parcel-zones"],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"required":true,"description":"The ID of the parcel you want to get zones for.","in":"path","name":"parcel_id","type":"string"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"}]},"put":{"summary":"Update parcel zones","tags":["parcel-zones"],"description":"This method will set the parcel_zones opts for a parcel and zone.\n","parameters":[{"required":true,"description":"The ID of the parcel you want to get zones for.","in":"path","name":"parcel_id","type":"string"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"},{"name":"body","in":"body","description":"The parcel_zones opts you want to set","required":true,"schema":{"type":"object"}}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."}}}},"/service_requests/{sr_id}/pull-event/{event_status}":{"post":{"tags":["service-request"],"summary":"POST an event for a ServiceRequest for a given status","description":"<p>POST a status like: cancelled, completed, rescheduled or updated for a given ServiceRequest.</p>\n","parameters":[{"in":"path","name":"sr_id","type":"string","required":true,"description":"Process Request ID is a short 9 character identifier"},{"in":"path","type":"string","name":"event_status","required":true,"description":"The status of the event"},{"name":"body","in":"body","description":"Data to send for the event","schema":{"type":"object"},"required":false}],"responses":{"200":{"description":"200 OK - the request was successful"}}}},"/service_requests/{req_id}/parcel-info":{"get":{"responses":{"200":{"description":"204 No Content - the request was successful, but no content is returned."},"403":{"description":"403 Forbidden - must be a valid admin user."},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"required":true,"description":"Process Request Identifier is a short 9 character identifier or the UUID (routeware_id) of the request","in":"path","name":"req_id","type":"string"}],"description":"<p>You can fetch an existing Service Request's parcel information by an External ID.</p> <p>This request is admin only.</p>\n","tags":["service-request"],"summary":"Get a ServiceRequest's parcel information"}},"/metrics/{area_id}/services/{svc_id}/app_review_stats":{"get":{"description":"Get the numbers of app reviews\n","tags":["metrics"],"summary":"Get app review stats","responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}]}},"/areas/{area_id}/services/{svc_id}/googleActions/materialSearch":{"get":{"description":"Search for Waste Wizard materials from Google Assistant\n","summary":"Google Actions voice material search","tags":["waste"],"responses":{"200":{"description":"200 OK - the request was successful"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"query","type":"string","name":"material","description":"What are you searching for?"}]}},"/metrics/{area_id}/services/{svc_id}/activity/reminders":{"get":{"description":"<p>This endpoint will return time-series data of where reminders were created and when.  It is used by the Geo Dashboard.</p>\n","tags":["metrics"],"summary":"Fetch history of where reminders were created","responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Only return results that have an <code>updated_at</code> after this time.","format":"date-time","in":"query","type":"string","name":"since"}]}},"/areas/{area_id}/services/{svc_id}/calendar_audit":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK"}},"tags":["calendar"],"summary":"Get an audit of calendars running out of events.","description":"Audits the zones in the Service to determine which are running out of events and need updates.\n"}},"/services/{svc_id}/clients/{client_id}":{"put":{"description":"This method will let you store per-client info.  Each client creates a UUID and uses this to record state.\n","summary":"Update a Client","tags":["client-state"],"responses":{"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"client_id","type":"string","in":"path","description":"ID of the given Client. This is a UUID.","required":true},{"schema":{"type":"object","properties":{"page_set_name":{"type":"string"},"page_set_title":{"type":"string"}}},"required":true,"description":"The attributes you want to set for the Client","in":"body","name":"body"}]}},"/metrics/{area_id}/services/{svc_id}/support_requests_forwarded_stats":{"get":{"description":"Get number of Support Requests forwarded out of ReCollect on to other systems, in the given timeframe.\n","tags":["metrics"],"summary":"Get timeseries stats on Support Requests forwarded out of ReCollect","responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}]}},"/areas/{area_id}/services/{svc_id}/pages/{locale}/{page_id}.json":{"get":{"tags":["pages"],"summary":"Get a Page","description":"This method will retrieve a specific page in the specified locale.\n","parameters":[{"description":"return only page variables","type":"boolean","name":"variables_only","in":"query"},{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"description":"The Page ID you want to fetch","required":true,"name":"page_id","type":"string","in":"path"}],"responses":{"200":{"description":"200 OK","schema":{"$ref":"#/definitions/Page"}},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}}}},"/areas/{area_id}/services/{svc_id}/pages/{locale}/stream/export":{"get":{"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"}],"description":"This method will return a JSON structure containing all wizard data about streams.\n","summary":"Export Wizard stream data","tags":["pages"],"produces":["application/json"]}},"/link/{link_id}":{"put":{"responses":{"200":{"description":"200 OK - the request was successful"},"403":{"description":"403 Forbidden - must be a valid admin user."},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"in":"path","name":"link_id","type":"string","required":true,"description":"Link ID"},{"name":"body","in":"body","schema":{"properties":{"url":{"type":"string","description":"The URL of the link to update.\n"}},"type":"object"},"required":true}],"description":"This method will update a link.\n","tags":["links"],"summary":"Update a link"}},"/areas/{area_id}/services/{svc_id}/zones/{zone_id}.kmz":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"}],"responses":{"200":{"description":"200 OK - the request was successful"}},"summary":"Get a Zone","tags":["geo"],"description":"This method will retrieve attributes for the given Zone.\n","produces":["application/vnd.google-earth.kml+xml"]}},"/areas/{area_id}/services/{svc_id}/events":{"get":{"description":"<p>Returns up to 100 events, starting after the current time. The time range can be set using the <code>before</code> and <code>after</code> Query parameters.</p>\n","summary":"Return the Events for a given Service","tags":["calendar"],"responses":{"200":{"schema":{"$ref":"#/definitions/EventsZones"},"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"query","type":"string","name":"locale","description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"name":"after","type":"string","in":"query","description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources after the given date."},{"description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources before the given date.","in":"query","type":"string","name":"before"}]},"delete":{"summary":"Bulk delete calendar events","tags":["calendar"],"description":"Delete calendar events from multiple zones after a given date. (Global admins, only.)\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"body","in":"body","description":"<p>Body JSON specifies two or three parameters:  <code>zones</code> the list of zones to modify, and <code>delete_after</code> (mandatory) and <code>delete_before</code> (optional), which are ISO8601 timestamps that describe the time range to delete events.</p>\n","schema":{"$ref":"#/definitions/BulkDeleteEvents"},"required":true}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}}},"post":{"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"<p>CSV-style content containing the FROM zone and the TO zone, one copy per line.  <br />Example: <pre>FROM-zone1, TO-zone1</pre></p><p>If any of the FROM or TO zones do not exist, the method will fail, and an error message is returned.</p> <p>If the first line matches the pattern <code>/^after=\\d\\d\\d\\d-\\d\\d-\\d\\d$/</code>, then it will be used as a YYYY-MM-DD timestamp. Only events after this date at 00:00:00 in the area's local timezone will be copied.</p>\n","schema":{"$ref":"#/definitions/BulkCopyEvents"},"required":true,"name":"body","in":"body"}],"description":"Bulk copy calendars from one zone to another\n","tags":["calendar"],"summary":"Bulk copy zone calendar events"}},"/areas/{area_id}/services/{svc_id}/place-data-export":{"get":{"responses":{"200":{"description":"200 OK","schema":{"$ref":"#/definitions/PlaceDataList"}},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"query","type":"string","name":"key","description":"Optional, will filter results to only include place data with this key present."},{"in":"query","name":"expand_opts","type":"string","description":"Optional. If true, the opts_json fields will be expanded into separate columns."}],"description":"This endpoint will create a CSV export of the specified place data and send the requesting user an email with the link to the CSV file once it is ready.\n","summary":"Export application PlaceData to a CSV","tags":["address"]}},"/users/me/tokens/{token_id}":{"delete":{"tags":["metadata"],"summary":"Revoke a token","description":"Prevent an AuthToken from being used anymore.","parameters":[{"required":true,"description":"ID of the AuthToken to delete","in":"path","name":"token_id","type":"integer"}],"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}}}},"/metrics/{area_id}/services/{svc_id}/game_average_game_play_stats":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"}},"summary":"Get average game play time stats","tags":["metrics"],"description":"Get the time of game played (seconds)\n"}},"/areas/{area_id}/services/{svc_id}/process/{process_name}":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"process_name","type":"string","in":"path","description":"Process name, eg: BIC","required":true}],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"schema":{"$ref":"#/definitions/ServiceProcess"},"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"tags":["service-request"],"summary":"Fetch a ServiceProcess configuration","description":"Get a given ServiceProcess object."},"put":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"process_name","type":"string","in":"path","description":"Process name, eg: BIC","required":true},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutProcessConfig"},"description":"JSON object defining the opts_json for the process.  The opts_json field should be encoded JSON."}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"schema":{"$ref":"#/definitions/ServiceProcess"},"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"summary":"Update a ServiceProcess configuration","tags":["service-request"],"description":"Update the content, time or target of a campaign"}},"/metrics/{area_id}/services/{svc_id}/wizard_first_timers_over_time":{"get":{"description":"Get the dashboard metrics for the given time period\n","tags":["metrics"],"summary":"Waste wizard first-time users, per day","responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"},{"required":false,"description":"The Page Set name you are interested in results for","in":"query","type":"string","name":"set"}]}},"/places/{place_id}/events/{event_id}":{"get":{"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/PlaceEvent"}}},"parameters":[{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true},{"name":"event_id","type":"integer","in":"path","description":"Event ID","required":true},{"in":"query","type":"string","name":"include_message","description":"Which reminder target type of message would you like? (eg: \"email\" or \"sms\" or \"voice\")"},{"in":"query","type":"string","name":"locale","description":"The locale code for this request. (eg: \"en\" or \"fr\")"}],"tags":["calendar"],"summary":"Render a specific event for a given place."}},"/areas/{area_id}/services/{svc_id}/address-suggest":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"required":true,"description":"Query string - the address you are searching for. (Example: \"123 Main st\")","in":"query","type":"string","name":"q"},{"in":"query","type":"string","name":"locale","description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"description":"Skip this number of results from the beginning of the list","in":"query","type":"integer","name":"offset","minimum":0},{"minimum":0,"name":"limit","type":"integer","in":"query","description":"Return at most this number of results","maximum":100}],"responses":{"200":{"schema":{"type":"array","items":{"$ref":"#/definitions/ParcelResult"}},"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"summary":"Suggest Addresses for the given search term","tags":["address"],"description":"<p>If your municipality has supplied ReCollect with specific address data, then the ReCollect address suggest API can be used to search for addresses to avoid needing geocoding.</p> <p>This method will return an array of possible address matches.  Each match will include a <code>parcel_id</code> attribute.  This attribute can be used to lookup service details, but it should not be used as a permanent identifier, as it may change in the future.  Only the <code>place_id</code> should be used as a permanent, external identifier.</p> <p>Once you have a <code>parcel_id</code>, you can look up service details using the HTTP GET <code>/api/places</code> API.</p>\n"}},"/areas/{area_id}/services/{svc_id}/failed_searches":{"delete":{"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"204 No Content - the request was successful, but no content is returned."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"query","name":"id","type":"integer","description":"The ID of the failed search you want to delete."}],"description":"Use this method to delete waste wizard search suggestions from the list of suggestions.\n","tags":["waste"],"summary":"Mark Waste Wizard search suggestions as deleted"}},"/areas/{area_id}/services/{svc_id}/holidays":{"get":{"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/EventsZones"}},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"after","type":"string","in":"query","description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources after the given date."},{"description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources before the given date.","in":"query","type":"string","name":"before"}],"description":"Holiday events are shared across all zones, and do NOT cause any notifications to be sent out.\n","summary":"Get the list of Holiday events for a Service","tags":["calendar"]},"post":{"tags":["calendar"],"summary":"Create a Holiday event for a service","description":"Holiday events are shared across all zones, and do NOT cause any notifications to be sent out.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/NewHoliday"},"description":"JSON Object with the new Holiday body"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"201":{"description":"201 Created","schema":{"$ref":"#/definitions/Holiday"}},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."}}}},"/areas/{area_id}/game/materials.{locale}.json":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"}],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK"},"404":{"description":"404 Not Found - could not find anything at this path."}},"tags":["waste-game"],"summary":"Get the game materials list","description":"This method will retrieve the playable materials for the waste game.\n"}},"/areas/{area_id}/services/{svc_id}/support-requests/{sr_uuid}/forward":{"post":{"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"409":{"description":"409 Conflict - the request conflicts with the current state of the resource."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"sr_uuid","type":"string","in":"path","description":"The UUID of the Support Request","required":true},{"required":false,"description":"Forward the Support Request even if it was already forwarded successfully","in":"query","type":"boolean","name":"force"}],"description":"<p>If a Support Request forwarding failed, this API can be used to trigger it to be forwarded again.</p> <p>Requests that already forwarded successfully are refused with a 409 unless <code>force=1</code> is passed.</p>\n","summary":"Trigger a Support Request to be forwarded","tags":["support-request"]}},"/metrics/{area_id}/services/{svc_id}/app_download_stats":{"get":{"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"description":"Get the numbers of apps downloaded\n","tags":["metrics"],"summary":"Get app download stats"}},"/reports/{area_id}/services/{svc_id}/historical/{historical_report_name}.csv":{"get":{"description":"<p>This endpoint will schedule delivery of a historical report.  The report will be created and an email will be sent to the user.</p> <p>The following report types are available: usage reminders wizard suggested-materials <ul>\n  <li><code>usage</code> - Widget historical usage report.</li>\n  <li><code>reminders</code> - Reminder historical usage report.</li>\n  <li><code>wizard</code> - Waste Wizard searches historical usage report.</li>\n  <li><code>suggested-materials</code> - Waste Wizard Suggested Materials historical usage report.</li>\n</ul>\n","tags":["metrics"],"summary":"Request email delivery of historical reports.","responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"required":true,"description":"Name of the historical report being requested.","in":"path","name":"historical_report_name","type":"string"}]}},"/areas/{area_id}/services/{svc_id}/event_flags":{"post":{"summary":"Add a new EventFlag","tags":["calendar"],"description":"Add a new EventFlag to the given Service\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"schema":{"$ref":"#/definitions/NewEventFlag"},"required":true,"description":"The details of the EventFlag you want to create.","in":"body","name":"body"}],"responses":{"201":{"description":"201 Created - the resource was created."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}}},"get":{"description":"This method will return the list of all EventFlags in the given Service\n","tags":["calendar"],"summary":"Get the list of EventFlags for a Service","responses":{"200":{"description":"200 OK","schema":{"$ref":"#/definitions/EventFlagList"}},"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}]}},"/service_requests/{sr_id}/opts":{"patch":{"parameters":[{"in":"path","name":"sr_id","type":"string","required":true,"description":"Process Request ID is a short 9 character identifier"},{"required":true,"schema":{"$ref":"#/definitions/ServiceRequestOpts"},"description":"The options to update for this Process Request.  Should be a JSON object of key value pairs (msgid to msgstr) to override for the given request.  Only the top level key is compared - no nested comparisons happen in this action.\n","in":"body","name":"body"}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"tags":["settings"],"summary":"Update specific Process Request options","description":"This method will update the Process Request options.  Only the specified options will be updated, the rest will be preserved.\n"}},"/metrics/{area_id}/services/{svc_id}/wizard_stats":{"get":{"summary":"Get stats about waste wizard usage","tags":["metrics"],"description":"Get the dashboard metrics for the given time period\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"},{"required":false,"description":"The Page Set name you are interested in results for","in":"query","type":"string","name":"set"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}}}},"/links/{area_id}/by_time/{link_id}":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"in":"path","name":"link_id","type":"string","required":true,"description":"Link ID"}],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"summary":"Get time-series data on when a rco.io link was clicked","tags":["metrics"],"description":"<p>This endpoint will return a list of all clicks by day, for the given link.</p>\n"}},"/image-search/{img_class}":{"get":{"description":"This method will retrive the list of Images with in the given class\n","tags":["images"],"summary":"Get a list of Images","responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"schema":{"type":"array","items":{"$ref":"#/definitions/Image"}},"description":"200 OK"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"What class of Image","required":true,"name":"img_class","type":"string","in":"path"}]}},"/areas/{area_id}/services/{svc_id}/zones/{zone_id}":{"put":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/UpdateZone"},"description":"The attributes you want to update in the Zone"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"summary":"Update a Zone","tags":["geo"],"description":"This method will update attributes for the given Zone.\n"},"delete":{"tags":["geo"],"summary":"Delete a Zone","description":"Delete a zone and all the calendar events in it.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"}],"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}}},"get":{"description":"This method will retrieve attributes for the given Zone.\n","tags":["geo"],"summary":"Get a Zone","responses":{"200":{"schema":{"$ref":"#/definitions/Zone"},"description":"200 OK"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"}]}},"/metrics/{area_id}/services/{svc_id}/{metric_tag_name}/{metric_tag_value}/{stat_name}":{"get":{"responses":{"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"The name of the tag you wish to filter on. Must be used with the `metric_tag_value` option as well.","required":true,"type":"string","name":"metric_tag_name","in":"path"},{"description":"The value of the tag you wish to filter on. Must be used with the `metric_tag_name` option as well.","required":true,"type":"string","name":"metric_tag_value","in":"path"},{"required":true,"description":"Name of the stat","in":"path","type":"string","name":"stat_name"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"},{"type":"string","name":"group","in":"query","description":"Group the results by this field.  Eg: \"day\", \"process\", \"zone\", \"request_type\""}],"description":"Get the number of process requests filtered by metric and group on the type of request\n","summary":"Get process request total metrics by request type","tags":["metrics"]}},"/metrics/{area_id}/services/{svc_id}/support_requests_rec_resolved_stats":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"summary":"Get timeseries stats on Support Requests resolved by ReCollect","tags":["metrics"],"description":"Get number of Support Requests resolved by ReCollect Support staff in the given timeframe.\n"}},"/metrics/{area_id}/services/{svc_id}/rem_locale_rem_stats":{"get":{"description":"Get the numbers of active reminders by locale\n","tags":["metrics"],"summary":"Get active reminder's locale stats","responses":{"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}]}},"/places/{place_id}/services/{svc_id}/service/requests":{"post":{"tags":["service-request"],"summary":"Create a new ServiceRequest","description":"<p>This method is used by the ReCollect Widgets and Mobile Apps, and can also be used to integrate ReCollect with other ticketing systems.</p> <p>The <code>{place_id}</code> parameter can reference external ids (such as customer account IDs) using the <code>external:</code> prefix.  Contact ReCollect Support to determine how your external ids are named.</p> <p>When this request is made with a valid API key for a given area, no items need to be supplied, and the <code>counts_towards_limit</code> parameter can be set. This can be useful to record collection requests in ReCollect, so that the system can correctly apply service limits.</p> <p>An optional parameter: <code>skip_emails</code> can be set to a true value, to avoid sending a confirmation and reminder email to the requestor of the BIC.  Useful when updating ReCollect about requests created externally.</p> <p>The <code>process_name</code> parameter can be used to specify which ServiceProcess this request is for.</p> <p>The <code>event_id</code> parameter is the ID of an event in the special collection that is in your places schedule. See `/api/areas/:area_id/services/:service_id/events`.\n","parameters":[{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Details about the request you want to create","schema":{"$ref":"#/definitions/NewServiceRequest"},"required":true,"name":"body","in":"body"}],"responses":{"201":{"description":"201 Created","schema":{"items":{"$ref":"#/definitions/ServiceRequest"},"type":"array"}},"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."}}}},"/areas/{area_id}/services/{svc_id}/campaigns/{campaign_id}":{"delete":{"description":"Delete a campaign permanently.","tags":["messaging"],"summary":"Delete a Campaign","responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","name":"campaign_id","type":"integer","required":true,"description":"ID of the given Campaign"}]},"put":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","name":"campaign_id","type":"integer","required":true,"description":"ID of the given Campaign"},{"description":"JSON Object with the new Campaign body","required":true,"schema":{"$ref":"#/definitions/Campaign"},"name":"body","in":"body"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"schema":{"$ref":"#/definitions/Campaign"},"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"summary":"Update a Campaign","tags":["messaging"],"description":"Update the content, time or target of a campaign"},"get":{"description":"Retrieve a specific campaign by ID","summary":"Get a Campaign","tags":["messaging"],"responses":{"200":{"schema":{"$ref":"#/definitions/Campaign"},"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","name":"campaign_id","type":"integer","required":true,"description":"ID of the given Campaign"}]}},"/metrics/{area_id}/services/{svc_id}/support_requests_first_time_reqs_stats":{"get":{"description":"Get number of first-time Support Requestors who created a ticket in the given timeframe.\n","tags":["metrics"],"summary":"Get timeseries stats on Support Requests creators","responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}]}},"/users/me/options/{opt_name}":{"put":{"parameters":[{"name":"opt_name","type":"string","in":"path","description":"Name of the user option. Should be lowercase [a-z0-9_]","required":true},{"description":"JSON containing the new field to update","schema":{"$ref":"#/definitions/UpdateUserOpt"},"name":"body","in":"body"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"403":{"description":"403 Forbidden - must be a valid admin user."}},"summary":"Set a user option","tags":["metadata"],"description":"Save a user preference for the current user."}},"/metrics/{area_id}/services/{svc_id}/calendar_first_timers_over_time":{"get":{"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"description":"Get the dashboard metrics for the given time period\n","summary":"Calendar first time visitors per day","tags":["metrics"]}},"/areas/{area_id}/services/{svc_id}/zones/{zone_id}.geojson":{"get":{"responses":{"200":{"description":"200 OK - the request was successful"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"}],"description":"This method will retrieve geospatial data for the given Zone as GeoJson.\n","tags":["geo"],"summary":"Get a Zone"}},"/places/{place_id}/services/{svc_id}/events":{"get":{"parameters":[{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"query","type":"string","name":"include_message","description":"Which reminder target type of message would you like? (eg: \"email\" or \"sms\" or \"voice\")"},{"in":"query","type":"boolean","name":"nomerge","description":"Should we not merge events together into one per day? (Default is false: merge them into one per day)"},{"in":"query","type":"string","name":"locale","description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"name":"after","type":"string","in":"query","description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources after the given date."},{"description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources before the given date.","in":"query","type":"string","name":"before"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"schema":{"$ref":"#/definitions/PlaceServiceEvents"},"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"summary":"Return the Events for a place in a given service.","tags":["calendar"],"description":"<p>Returns up to 100 events, starting after the current time. The time range can be set using the <code>before</code> and <code>after</code> Query parameters.</p> <p>If a Client instance ID header is set (<code>X-App-Instance</code>> or <code>X-Widget-Instance</code>), OR if the caller is an administrator, then any Client Events for the given place are also included.</p>\n"}},"/areas/{area_id}/services/{svc_id}/pages/{locale}/material/export":{"get":{"summary":"Export Wizard material data","tags":["pages"],"description":"This method will return a JSON structure containing all wizard data about materials.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"}],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"produces":["application/json"]}},"/areas.json":{"get":{"description":"This method will return a list of all areas. Only available to global admins.\n","tags":["settings"],"summary":"Get list of all Areas","responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK","schema":{"items":{"$ref":"#/definitions/Area"},"type":"array"}},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Optional, if provided will return data describing areas this email address is an administrator for.","type":"string","name":"by_admin_email","in":"query"}]}},"/areas/{area_id}/services/{svc_id}/pages.xml":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"}},"summary":"Export Page data as a sitemap.xml file","tags":["pages"],"description":"This method will Export all of your Wizard page content for search\n","produces":["text/csv"]}},"/areas/{area_id}/services/{svc_id}/templates":{"get":{"tags":["settings"],"summary":"Fetch email templates","description":"Fetch email templates - both system defaults and also templates that have been forked for this specific service.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"type":"string","name":"global","in":"query","description":"Used to request \"global\" resources if true. Otherwise returns resources local to this service."},{"in":"query","name":"name","type":"string","description":"The name of the template."}],"responses":{"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."}}},"post":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"The body should be a JSON object containing two keys: \"locale\" and \"name\".  They should be set to the template name you want to fork, and the locale code you want to fork it in.  Templates are locale specific, so you need to fork them for each locale you want the customization to be in.\n","schema":{"$ref":"#/definitions/NewServiceTemplate"},"name":"body","in":"body"}],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK - the request was successful"}},"tags":["settings"],"summary":"Fork an email template to customize it","description":"Create a custom copy of an email template, so that it can be modified for that specific customer. \n"}},"/links":{"get":{"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"403":{"description":"403 Forbidden - must be a valid admin user."}},"parameters":[{"minimum":0,"name":"limit","type":"integer","in":"query","description":"Return at most this number of results","maximum":100},{"description":"Skip this number of results from the beginning of the list","in":"query","type":"integer","name":"offset","minimum":0},{"description":"The exact URL of the link you want to fetch.","in":"query","type":"string","name":"url"},{"description":"The partial URL of the link you want to fetch.","in":"query","type":"string","name":"like"},{"in":"query","type":"string","name":"short_name","description":"The short name of the link you want to fetch."},{"name":"area_id","type":"string","in":"query","description":"Area ID (name or ID number)"}],"description":"This method will retrieve all inventories for a place.\n","summary":"Get Links","tags":["links"]}},"/areas/{area_id}/services/{svc_id}/connector/{cname}":{"delete":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"cname","type":"string","in":"path","description":"connector name","required":true}],"responses":{"204":{"description":"204 No Content"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"tags":["connector"],"summary":"Delete a connector (Super Admin only)","description":"For permanently deleting a connector. Use with caution!"}},"/metrics/{area_id}/services/{svc_id}/stats/{stat_name}/{days}":{"get":{"description":"<p>Get the list of requested stat</p> <ul>\n  <li>query is the name of stat</li>\n  <li>offset is the number of days</li>\n</ul>\n","tags":["metrics"],"summary":"Get the list of requested stat","responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"required":true,"description":"Name of the stat","in":"path","type":"string","name":"stat_name"},{"description":"Days of the stat","required":true,"name":"days","type":"integer","in":"path","minimum":0}]}},"/metrics/{area_id}/services/{svc_id}/suggested_materials":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"tags":["metrics"],"summary":"Waste wizard materials, ordered by view counts","description":"Get suggested material (failed_searches) list\n"}},"/metrics/{area_id}/services/{svc_id}/wizard_top_materials":{"get":{"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"},{"required":false,"description":"The Page Set name you are interested in results for","in":"query","type":"string","name":"set"},{"minimum":0,"name":"limit","type":"integer","in":"query","description":"Return at most this number of results","maximum":100},{"description":"Skip this number of results from the beginning of the list","in":"query","type":"integer","name":"offset","minimum":0}],"description":"Get the dashboard metrics for the given time period\n","summary":"Waste wizard materials, ordered by view counts","tags":["metrics"]}},"/areas/{area_id}/services/{svc_id}.kmz":{"get":{"produces":["application/vnd.google-earth.kml+xml"],"description":"This method will retrieve all polygons for a given service as KMZ data.\n","summary":"Fetch a services' geodata via KMZ","tags":["geo"],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK - the request was successful"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}]}},"/areas/{area_id}/services/{svc_id}/event_flags/order":{"post":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK"}},"summary":"Set the order of EventFlags","tags":["calendar"],"description":"You can set the order of EventFlags to control how they are rendered. The order is used both in the Admin panel, and also when ordering events on calendars and in notifications.\n"}},"/metrics/{area_id}/services/{svc_id}/support_by_problem_stats":{"get":{"description":"Get the stats on what kind of Support Requests were created and how they were resolved, in the given time period.\n","tags":["metrics"],"summary":"Get stats about support requests, grouped by problem","responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}]}},"/areas/{area_id}/services/{svc_id}/game/incorrect_guesses":{"get":{"summary":"Get bad guesses from the Sorting Game","tags":["waste-game"],"description":"Get the list of the items most commonly played incorrectly in the Sorting Game.","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."}}}},"/areas/{area_id}/services/{svc_id}/parcels/{parcel_id}":{"patch":{"description":"Update a parcel. Only the fields sent in the body are changed. Allowed fields are house, street, city, province, country, unit, external_id, source, and location (lat/lng).\n","tags":["address"],"summary":"Update parcel attributes","responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"required":true,"description":"The ID of the parcel you want to get zones for.","in":"path","name":"parcel_id","type":"string"},{"required":true,"schema":{"properties":{"lat":{"format":"float","type":"number"},"city":{"type":"string"},"street":{"type":"string"},"province":{"type":"string"},"country":{"type":"string"},"external_id":{"type":"string"},"unit":{"type":"string"},"lng":{"type":"number","format":"float"},"house":{"type":"string"},"source":{"type":"string"}},"type":"object"},"description":"JSON object with the parcel fields to update","in":"body","name":"body"}]}},"/metrics/areas/{area_id}/services/{svc_id}/raw":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Which metrics would you like returned? See the Metrics List endpoint for a list of available metrics. Specified using a comma separated list of metric \"codenames\".","name":"metrics","type":"string","in":"query"},{"in":"query","type":"string","name":"period","description":"What time period should results be grouped into? For example: \"1month\", \"1quarter\", \"1year\""},{"description":"If true, only the latest row for each metric will be returned. Useful for fetching metrics that may lag such as Mobile Downloads.","name":"latest","type":"boolean","in":"query"},{"name":"max_only","type":"boolean","in":"query","description":"If true, only return the \"max\" value, and do not include the \"sum\" values for each metric. Useful to simplify the output."},{"description":"Specify time in the past, relative to now, to fetch results for.  Eg: \"14days\", or \"3months\".  Will return data at this relative time.","in":"query","type":"string","name":"ago"},{"description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources on or after the given date.","type":"string","name":"start_ymd","in":"query"},{"in":"query","type":"string","name":"end_ymd","description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources on or before the given date."},{"in":"query","type":"string","name":"tag_name","description":"The name of the tag you wish to filter on. Must be used with the `tag_value` option as well."},{"description":"The value of the tag you wish to filter on. Must be used with the `tag_name` option as well.","in":"query","name":"tag_value","type":"string"},{"in":"query","type":"boolean","name":"accumulate","description":"If True, metrics will be accumulated in each period, to a rolling total."},{"description":"If True, only metrics for apps owned by the service are returned.  Data from enterprise apps is not returned for these services.","in":"query","type":"boolean","name":"own_app_only"},{"in":"query","name":"merge","type":"boolean","description":"Should results be merged together into one datapoint?"},{"type":"boolean","name":"csv","in":"query","description":"If True, results will be returned as a CSV instead of JSON."}],"responses":{"200":{"description":"200 OK"},"404":{"description":"404 Not Found - could not find anything at this path."}},"tags":["metrics"],"summary":"Fetch metrics for a Service"}},"/metrics/{area_id}/services/{svc_id}/wizard_views_over_time":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"},{"required":false,"description":"The Page Set name you are interested in results for","in":"query","type":"string","name":"set"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"tags":["metrics"],"summary":"Waste wizard views per day","description":"Get the dashboard metrics for the given time period\n"}},"/service-metrics.csv":{"get":{"parameters":[{"description":"Account ID","name":"account_id","type":"integer","in":"query"},{"description":"The tags that you would like to break out into separate columns.","type":"string","name":"tags","in":"query"}],"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"tags":["administrator"],"summary":"Fetch adoption related metrics for each service as a CSV.","description":"This method will return a list of services along with detailed metrics related to the usage and adoption levels.  Available to Account Admin users only.  Global Admins can use the <code>account_id</code> query parameter to optionally specify a specific account.\n"}},"/pickups/{routeware_id}":{"get":{"description":"<p>You can fetch an existing Service Request by Routeware ID.</p> <p>This request is admin only.</p>\n","summary":"Get a ServiceRequest","tags":["service-request"],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"required":true,"description":"Routeware ID the UUID for the request","in":"path","type":"string","name":"routeware_id"}]}},"/accounts":{"get":{"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"schema":{"type":"array","items":{"$ref":"#/definitions/Account"}},"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[],"description":"This method will return all Accounts. Only available to global admins.\n","tags":["settings"],"summary":"Get all Accounts"}},"/metrics/{area_id}/services/{svc_id}/calendar_views_over_time":{"get":{"summary":"Calendar views per day","tags":["metrics"],"description":"Get the dashboard metrics for the given time period\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}}}},"/areas/{area_id}/services/{svc_id}/opts":{"patch":{"summary":"Update specific Service options","tags":["settings"],"description":"This method will update the Service options.  Only the specified options will be updated, the rest will be preserved.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"body","name":"body","schema":{"$ref":"#/definitions/ServiceOpts"},"required":true,"description":"The options to update for this Service.  Should be a JSON object of key value pairs (msgid to msgstr) to override for the given service.  Only the top level key is compared - no nested comparisons happen in this action.\n"}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}}}},"/image/{image_id}":{"put":{"responses":{"201":{"description":"201 Created - the resource was created."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."}},"parameters":[{"name":"image_id","type":"string","in":"path","description":"ID or name of the given image","required":true},{"description":"Image content upload","required":true,"type":"file","name":"content","in":"formData"}],"description":"Update an image in ReCollect\n","summary":"Upload an Image","tags":["images"]}},"/service_requests/{sr_id}":{"delete":{"tags":["service-request"],"summary":"Delete a ServiceRequest","description":"<p>You can cancel an existing Service Request with the <code>DELETE /api/service_requests/:id</code> API method. The ID is the 9 digit unique code for this pickup request.</p> <p>The specified Service Request will be marked as cancelled in the database.</p>\n","parameters":[{"in":"path","name":"sr_id","type":"string","required":true,"description":"Process Request ID is a short 9 character identifier"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}}},"put":{"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"in":"path","name":"sr_id","type":"string","required":true,"description":"Process Request ID is a short 9 character identifier"},{"name":"body","in":"body","description":"Details about the request you want to create","required":true,"schema":{"$ref":"#/definitions/UpdateServiceRequest"}}],"description":"<p>You can update an existing Service Request with the <code>PUT /api/service_requests/:id</code> API method. The ID is the 9 digit unique code for this pickup request.</p> <p>At this time, only the <code>day</code> option can be changed. It should be an ISO8601 timestamp with timezone.  For day-long slots, specify midgnight in the correct timezone.</p>\n","tags":["service-request"],"summary":"Update a ServiceRequest"},"get":{"parameters":[{"in":"path","name":"sr_id","type":"string","required":true,"description":"Process Request ID is a short 9 character identifier"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"404":{"description":"404 Not Found - could not find anything at this path."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"204 No Content - the request was successful, but no content is returned."}},"tags":["service-request"],"summary":"Get a ServiceRequest","description":"<p>You can fetch an existing Service Request by an External ID.</p> <p>This request is admin only.</p>\n"}},"/metrics/{area_id}/services/{svc_id}/app_reminder_stats":{"get":{"tags":["metrics"],"summary":"Get app notification stats","description":"Get the numbers of app notifications\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}}}},"/metrics/{area_id}/services/{svc_id}/wizard_unique_postcode_over_time":{"get":{"description":"Get the dashboard metrics for the given time period\n","summary":"Waste wizard unique postcodes","tags":["metrics"],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}]}},"/areas/{area_id}/services/{svc_id}/place-data/{place_id}":{"delete":{"description":"Delete place_data of given place_id. With study_name parameter, you can specify what place_data to delete.\n","tags":["address"],"summary":"Delete place_data of given  place_id","responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true},{"schema":{"$ref":"#/definitions/DeletePlaceData"},"required":true,"description":"The PlaceData key to delete.","in":"body","name":"key"}]}},"/metrics/{area_id}/services/{svc_id}/app_user_session_stats":{"get":{"tags":["metrics"],"summary":"Get app user session stats","description":"Get the numbers of app user sessions\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}}}},"/areas/{area_id}/services/{svc_id}/game/{game_id}/stats":{"post":{"tags":["waste-game"],"summary":"Record game statistics","description":"Various events of the sorting game record stats.  This endpoint is used to record them.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"required":true,"description":"UUID describing the game, from the config.json API call.","in":"path","name":"game_id","type":"string"},{"description":"The details of the statistic to be recorded.  There are 5 event types you can set: <code>incorrect_guess</code>, <code>correct_guess</code>, <code>game_start</code>, <code>game_finish</code> and <code>certificate_print</code>.  For <code>correct_guess</code> and <code>incorrect_guess</code>, then the <code>material_page_id</code> and <code>stream_page_id</code> fields are required as well.\n","required":true,"schema":{"type":"object","properties":{"event":{"type":"string"},"material_page_id":{"type":"integer"},"locale":{"type":"string"},"stream_page_id":{"type":"integer"}}},"name":"body","in":"body"}],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"201":{"description":"204 No Content - the request was successful, but no content is returned."}}}},"/areas/{area_id}/services/{svc_id}/styles/{style_type}/{style_name}":{"get":{"tags":["settings"],"summary":"Fetch a services' widget or PDF style.","description":"This method will retrieve the widget or print styles.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","name":"style_type","type":"string","required":true,"description":"Type of style - must be either \"PDF\" or \"widget\"."},{"type":"string","name":"style_name","in":"path","description":"Style name.  \"Default\" will load the default style.","required":true}],"responses":{"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."}}},"put":{"responses":{"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","name":"style_type","type":"string","required":true,"description":"Type of style - must be either \"PDF\" or \"widget\"."},{"type":"string","name":"style_name","in":"path","description":"Style name.  \"Default\" will load the default style.","required":true},{"in":"body","name":"body","schema":{"$ref":"#/definitions/ServiceStyle"},"description":"The body should be a JSON object containing the new \"style\".  This object should have key-values like \"widget-bg\": \"#ffffff\", and other style configuration. Typically you will first fetch the style using the GET style endpoint, modify it, and then upload the new style.\n"}],"description":"This method update the widget or print styles for the specified style, in the specified service.\n","tags":["settings"],"summary":"Update a services' widget or PDF style."}},"/areas/{area_id}/services/{svc_id}/parcels":{"get":{"summary":"Fetch Parcel address data, query or paged","tags":["address"],"description":"<p>This API will return raw Parcel address data from ReCollect's database.</p> <p>Searches can be done using the <code>query</code> argument, or by paging through the data using <code>offset</code> and <code>limit</code>.</p>\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"query","type":"string","in":"query","description":"Query string - the address you are searching for. (Example: \"123 Main st\")","required":false},{"type":"integer","name":"merged","in":"query","description":"non-zero values merge all of the data into a single record","required":false},{"description":"Skip this number of results from the beginning of the list","in":"query","type":"integer","name":"offset","minimum":0},{"minimum":0,"name":"limit","type":"integer","in":"query","description":"Return at most this number of results","maximum":100}],"responses":{"200":{"schema":{"type":"array","items":{"$ref":"#/definitions/ParcelObject"}},"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."}}}},"/metrics/{area_id}/services/{svc_id}/app_reviews":{"get":{"description":"Pagable API. Get mobile app reviews from mobile_app_reviews\n","tags":["metrics"],"summary":"Get app reviews","responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}]}},"/service_requests/{sr_id}/messaging":{"post":{"parameters":[{"in":"path","name":"sr_id","type":"string","required":true,"description":"Process Request ID is a short 9 character identifier"},{"description":"Details about the request you want to create","required":true,"schema":{"$ref":"#/definitions/ServiceRequestMessaging"},"name":"body","in":"body"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"204 No Content - the request was successful, but no content is returned."},"403":{"description":"403 Forbidden - must be a valid admin user."}},"summary":"Message about a ServiceRequest","tags":["messaging"],"description":"<p>You can send a notification to the requestor of a ServiceRequest, to update them on the status of the request, say.</p> <p>For each of the messaging arguments, you can use either literal text, a hash of localized strings, or you can use Service Process \"text strings\" which can be translated in Radmin.</p> <p>This request is for admins only.</p>\n"}},"/areas/{area_id}/services/{svc_id}/feedback":{"post":{"tags":["support-request"],"summary":"Create a new Support Request","description":"<p>The Need Help button submits support requests using this endpoint.  The <code>image</code> parameter can contain a base64 encoded image associated with the SupportRequest.</p> <p>You can also add attachments using the attachment APIs to create and upload an attachment.</p> <p>Attachments should have form <code>/^attached_file_.+$/</code> with an array of UUIDs.</p> <p>(The format <code>/^attached_file\\d*$/</code> with string UUID should no longer be used, it is being deprecated)</p>\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"schema":{"$ref":"#/definitions/NewSupportRequest"},"required":true,"description":"The parameters to create a new SupportRequest object","in":"body","name":"body"}],"responses":{"200":{"description":"Success, SupportRequest was created."},"400":{"description":"400 Bad Request - could not fulfill this request."}}}},"/metrics/{area_id}/services/{svc_id}/unique_households_over_time":{"get":{"summary":"Calendar dashboard unique households searched","tags":["metrics"],"description":"Get the dashboard metrics for the given time period\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"responses":{"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}}}},"/areas/{area_id}/accounts/{acct_id}/link":{"put":{"parameters":[{"in":"path","type":"string","name":"acct_id","required":true,"description":"Account ID"},{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"name":"body","in":"body","schema":{"type":"object"}}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"tags":["settings"],"summary":"Link Area to Account","description":"This method will link an Area to an Account. Global admins only.\n"}},"/areas/{area_id}/services/{svc_id}/place-data":{"get":{"summary":"Fetch application PlaceData for a service","tags":["address"],"description":"<p>Some services (eg: WaterMeter) may store data per-place, using a system called PlaceData.  This API allows pagination through the PlaceData for a given service.</p>\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"minimum":0,"name":"limit","type":"integer","in":"query","description":"Return at most this number of results","maximum":100},{"description":"Skip this number of results from the beginning of the list","in":"query","type":"integer","name":"offset","minimum":0},{"in":"query","type":"string","name":"key","description":"Optional, will filter results to only include place data with this key present."}],"responses":{"200":{"schema":{"$ref":"#/definitions/PlaceDataList"},"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}}}},"/clients/{client_id}/events":{"get":{"summary":"Return the Events for a given Client","tags":["calendar"],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/EventsZones"}},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"name":"client_id","type":"string","in":"path","description":"ID of the given Client. This is a UUID.","required":true},{"in":"query","type":"string","name":"locale","description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"name":"after","type":"string","in":"query","description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources after the given date."},{"description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources before the given date.","in":"query","type":"string","name":"before"}]}},"/areas/{area_id}/services/{svc_id}/unapproved_calendars":{"get":{"description":"Calendars with unapproved events need to be reviewed and approved by administrators.  This API returns the list of zones with unapproved calendar events.\n","summary":"Get the list of calendars that have unapproved events in them.","tags":["calendar"],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/ZoneList"}}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}]}},"/areas/{area_id}/services":{"post":{"tags":["settings"],"summary":"Add a Service to an Area","description":"This method will add a new Service to an existing Area\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"in":"body","name":"body","schema":{"type":"object","properties":{"name":{"type":"string"}}},"required":true,"description":"The attributes for the new Service."}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"201":{"description":"201 Created","schema":{"$ref":"#/definitions/Service"}}}}},"/images/{img_class}":{"post":{"parameters":[{"description":"What class of Image","required":true,"name":"img_class","type":"string","in":"path"},{"description":"Image content upload","required":true,"name":"content","type":"file","in":"formData"}],"responses":{"201":{"description":"200 Created","schema":{"$ref":"#/definitions/Image"}}},"summary":"Upload an Image","tags":["images"],"description":"Add an image into ReCollect.  Use a multipart form upload for the file contents.\n"}},"/service-metrics.json":{"get":{"tags":["administrator"],"summary":"Fetch adoption related metrics for each service.","description":"This method will return a list of services along with detailed metrics related to the usage and adoption levels.  Available to Account Admin users only.  Global Admins can use the <code>account_id</code> query parameter to optionally specify a specific account.\n","parameters":[{"description":"Account ID","name":"account_id","type":"integer","in":"query"}],"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}}}},"/reminders/{rem_id}/migrate":{"post":{"responses":{"200":{"description":"200 OK"},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"name":"rem_id","type":"string","in":"path","description":"ID of the given Reminder","required":true}],"description":"This will migrate a reminder from one service to another by updating the service of the reminder. We have several conditions:\n  - Handled by the `rule` parameter (optional)\n    - When the `rule` is `parcel-exists`, it checks if the destination service has a place for the reminder.\n    - When the `rule` is `calendar-exists`, it checks if the destination service has events for the reminder.\n  - When the reminder is a mobile reminder, we confirm if the destination service id is the same as the current mobile app's service id. It means that the app needs to be shared by the source service and the destination service.\n","tags":["messaging"],"summary":"Migrate a Reminder"}},"/metrics/{area_id}/services/{svc_id}/rem_type_rem_stats":{"get":{"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"description":"Get the numbers of active reminders by type\n","summary":"Get active reminder's type stats","tags":["metrics"]}},"/by-xy/{long},{lat}":{"get":{"description":"<p>You can lookup a particular address to get a <code>place_id</code> which can be used in subsequent ReCollect API requests to find schedule information or create a reminder.</p> <p>The exact lookup method for your organization's data may differ depending on the type of data in the ReCollect system.  For instance some organizations just have geographic polygons - in this case, a latitude &amp; longitude is necessary along with the address information, in order to accurately place that address in the geographic polygons.  In other cases, your organization may be supplying ReCollect with detailed parcel data for every address served by your municipality.  In this case, you should lookup the address using the address suggest API.</p>\n","summary":"Lookup an address to find a Place object","tags":["address"],"responses":{"302":{"description":"Success - redirect to Place URL in Location header"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"description":"Longitude in WGS84 datum","required":true,"name":"long","type":"number","format":"float","in":"path"},{"description":"Latitude in WGS84 datum","required":true,"name":"lat","type":"number","in":"path","format":"float"},{"type":"string","name":"street_number","in":"query","description":"the house number of the address you are looking up"},{"in":"query","name":"street_name","type":"string","description":"the street name of the address you are looking up"},{"description":"the city or town of the address you are looking up","name":"locality","type":"string","in":"query"},{"type":"string","name":"territory","in":"query","description":"the state or province of the address you are looking up"},{"type":"string","name":"country","in":"query","description":"the country of the address you are looking up"},{"description":"the preferred language for this place","in":"query","name":"locale","type":"string"},{"in":"query","name":"area","type":"string","required":true,"description":"the name or ID of the Area you are searching in."},{"name":"service","type":"string","in":"query","description":"the name or ID of the Service you are searching in.","required":true}]}},"/reminders/{rem_id}":{"get":{"responses":{"200":{"schema":{"$ref":"#/definitions/Reminder"},"description":"200 OK"},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"name":"rem_id","type":"string","in":"path","description":"ID of the given Reminder","required":true}],"description":"This method will retrieve a Reminder or multiple comma delimited reminders by ID.\n","tags":["messaging"],"summary":"Get a Reminder"},"delete":{"description":"This method will delete the given Reminder.\n","tags":["messaging"],"summary":"Delete a Reminder","responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"name":"rem_id","type":"string","in":"path","description":"ID of the given Reminder","required":true}]},"put":{"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"name":"rem_id","type":"string","in":"path","description":"ID of the given Reminder","required":true},{"description":"New fields to set on the Reminder object.","schema":{"$ref":"#/definitions/UpdateReminder"},"name":"body","in":"body"}],"description":"This method will update the given Reminder.\n","summary":"Update a Reminder","tags":["messaging"]}},"/areas/{area_id}/services/{svc_id}/alerts/{alert_id}/detailed-report":{"get":{"description":"Request that the current user be emailed a CSV file containing the delivery status of the given service alert.","summary":"Request a detailed report of the alert's delivery status.","tags":["messaging"],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK - the request was successful"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"alert_id","type":"integer","in":"path","description":"Alert ID.","required":true}]}},"/users/me/tokens":{"get":{"description":"Get the list of active authentication tokens.","summary":"Get current authentication tokens","tags":["metadata"],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/AuthTokenList"}},"403":{"description":"403 Forbidden - must be a valid admin user."}},"parameters":[]},"post":{"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/AuthToken"}},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"name":"body","in":"body","description":"JSON containing parameters for the new authentication token.","schema":{"$ref":"#/definitions/NewAuthToken"}}],"description":"Create a new token that can be used for authentication.  This requires that you be logged in via a browser.  You cannot use this method using a previously created authentication token.","summary":"Create a new authentication token","tags":["metadata"]}},"/areas.txt":{"get":{"produces":["text/plain"],"summary":"Get list of all Areas","tags":["settings"],"description":"This method will return a list of all areas. Only available to global admins.\n","parameters":[],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."}}}},"/messaging/sms":{"post":{"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"201 Created - the resource was created."}},"parameters":[{"name":"recipient","type":"string","in":"formData","description":"Phone number","required":true},{"required":true,"description":"Message to send.  Should be less than 1600 characters.","in":"formData","name":"message","type":"string"},{"required":true,"description":"Name of the Area to send from.","in":"formData","name":"area","type":"string"},{"required":true,"description":"Name of the Area's service that this message is about.","in":"formData","name":"service","type":"string"}],"description":"Send a text message to a specified number.  This API will use local phone numbers assigned to your account, and will attempt to contact residents on the same number used in the past, if possible.\n","tags":["messaging"],"summary":"Send a text message"}},"/areas/{area_id}/services/{svc_id}/reminders":{"delete":{"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."},"403":{"description":"403 Forbidden - must be a valid admin user."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"summary":"Delete all the reminders in a service.a","tags":["messaging"]}},"/service_requests/{req_id}/contact-info":{"get":{"summary":"Get a ServiceRequest's contact information","tags":["service-request"],"description":"<p>You can fetch an existing Service Request's contact information by Routeware ID.</p> <p>This request is admin only.</p>\n","parameters":[{"required":true,"description":"Process Request Identifier is a short 9 character identifier or the UUID (routeware_id) of the request","in":"path","name":"req_id","type":"string"}],"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}}}},"/metrics/{area_id}/services/{svc_id}/support_web_vs_mobile_stats":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}},"summary":"Get stats about support requests by creation","tags":["metrics"],"description":"Get the stats on what kind of client created the support request for the given time period\n"}},"/metrics/{area_id}/services/{svc_id}":{"put":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"query","type":"string","name":"end_ymd","description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources on or before the given date."},{"description":"If true, the service metrics will be enabled regardless of the enabled state.","required":true,"name":"force_enable","type":"boolean","in":"query"},{"schema":{"type":"string"},"description":"Comma separated list of metric names that are needed to be loaded","in":"body","name":"is_only_metrics"}],"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"204 No Content - the request was successful, but no content is returned."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"summary":"Load service metrics","tags":["metrics"],"description":"Load service metrics.  A job is queued to refresh the metrics.  The API returns immediately, with a Job ID.\n","consumes":["text/plain"]}},"/areas/{area_id}/services/{svc_id}/templates/{locale}/{template_name}":{"put":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"required":true,"description":"The name of the template.","in":"path","name":"template_name","type":"string"},{"schema":{"$ref":"#/definitions/ServiceTemplate"},"description":"The body should be a JSON object containing a \"content\" key.  The value of this key should be the updated template.  Typically you will fetch the default template, make a change and then update it.\n","in":"body","name":"body"}],"responses":{"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"summary":"Update a service's email templates.","tags":["settings"],"description":"Update a template used for sending emails.\n"},"delete":{"responses":{"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"required":true,"description":"The name of the template.","in":"path","name":"template_name","type":"string"}],"description":"Delete a forked copy of an email template, to restore the default template to be used instead of the custom template.  The template content will be deleted.\n","tags":["settings"],"summary":"Delete a customized email template"}},"/qualifiers/{qualifier_id}/services/{svc_id}":{"get":{"tags":["address"],"summary":"Fetch Qualifier for a given qualifier_id and service","description":"<p>When we search for a place via a qualifier, our JS Client has the qualifier_id but needs to know the qualifier as well. This API call will look up the PlaceQualifier by id in the Service and return a qualifier object, if possible.</p>\n","parameters":[{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"qualifier_id","type":"string","in":"path","description":"Qualifier ID is the UUID for a given place qualifier within ReCollect","required":true}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK"}}}},"/authorize/me":{"post":{"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[],"description":"Given an array of actions, a resource and an authenticated user this endpoint will return an array of hashes with the actions and boolean indicating if the user can perform the action on the resource. The method relies on the Recollect::Authorize::authorize_me method which is a re-implementation of Adminable::user_can_do.\n","tags":["authorization"],"summary":"Authorize a user to perform an action on a resource"}},"/metrics/accounts/{acct_id}/raw":{"get":{"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK"}},"parameters":[{"in":"path","type":"string","name":"acct_id","required":true,"description":"Account ID"},{"description":"Which metrics would you like returned? See the Metrics List endpoint for a list of available metrics. Specified using a comma separated list of metric \"codenames\".","name":"metrics","type":"string","in":"query"},{"in":"query","type":"string","name":"period","description":"What time period should results be grouped into? For example: \"1month\", \"1quarter\", \"1year\""},{"description":"If true, only the latest row for each metric will be returned. Useful for fetching metrics that may lag such as Mobile Downloads.","name":"latest","type":"boolean","in":"query"},{"name":"max_only","type":"boolean","in":"query","description":"If true, only return the \"max\" value, and do not include the \"sum\" values for each metric. Useful to simplify the output."},{"description":"Specify time in the past, relative to now, to fetch results for.  Eg: \"14days\", or \"3months\".  Will return data at this relative time.","in":"query","type":"string","name":"ago"},{"description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources on or after the given date.","type":"string","name":"start_ymd","in":"query"},{"in":"query","type":"string","name":"end_ymd","description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources on or before the given date."},{"in":"query","type":"string","name":"tag_name","description":"The name of the tag you wish to filter on. Must be used with the `tag_value` option as well."},{"description":"The value of the tag you wish to filter on. Must be used with the `tag_name` option as well.","in":"query","name":"tag_value","type":"string"},{"in":"query","type":"boolean","name":"accumulate","description":"If True, metrics will be accumulated in each period, to a rolling total."},{"description":"If True, only metrics for apps owned by the service are returned.  Data from enterprise apps is not returned for these services.","in":"query","type":"boolean","name":"own_app_only"},{"in":"query","name":"merge","type":"boolean","description":"Should results be merged together into one datapoint?"},{"type":"boolean","name":"csv","in":"query","description":"If True, results will be returned as a CSV instead of JSON."}],"summary":"Fetch metrics for all Services in an Account","tags":["metrics"]}},"/accounts/{acct_id}/admins/{addr}":{"put":{"parameters":[{"in":"path","type":"string","name":"acct_id","required":true,"description":"Account ID"},{"required":true,"description":"Email Address","in":"path","type":"string","name":"addr"}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"tags":["administrator"],"summary":"Add account admin permission","description":"Add account admin permission\n"},"delete":{"description":"Delete account admin permission\n","tags":["administrator"],"summary":"Delete account admin permission","responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"in":"path","type":"string","name":"acct_id","required":true,"description":"Account ID"},{"required":true,"description":"Email Address","in":"path","type":"string","name":"addr"}]}},"/areas/{area_id}/account":{"put":{"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"name":"body","in":"body","description":"The attributes you want to update in the Account","schema":{"$ref":"#/definitions/Account"},"required":true}],"description":"This method will update attributes for the given Account. Global admins only.\n","summary":"Update an Account","tags":["settings"]}},"/services/{svc_id}/clients/{client_id}/{key}":{"delete":{"description":"This method will delete an attribute that we have stored for the given Client.\n","summary":"Delete an attribute stored for a Client","tags":["client-state"],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"client_id","type":"string","in":"path","description":"ID of the given Client. This is a UUID.","required":true},{"required":true,"description":"The specified key you want to delete","in":"path","type":"string","name":"key","enum":["page_set"]}]}},"/version.txt":{"get":{"tags":["metadata"],"summary":"Current API Version (text)","description":"Retrieve the current API version as text/plain","parameters":[],"responses":{"200":{"description":"200 OK - the request was successful"}},"produces":["text/plain"]}},"/version":{"get":{"responses":{"200":{"description":"OK response including the version metadata.","schema":{"$ref":"#/definitions/Version"}}},"parameters":[],"description":"Retrieve the current API version","summary":"Current API Version","tags":["metadata"],"security":[{"RecSecurity":[]}]}},"/areas/{area_id}/services/{svc_id}/alerts":{"post":{"tags":["messaging"],"summary":"Schedule a ServiceAlert to be sent out","description":"<p>Your systems can trigger a Service Alert that will be sent to residents that are signed up for regular reminders, or alert-only reminders.</p>\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"<p>Details about the message you want to send out</p> <p>The <code>message</code> parameter should not contain HTML.</p> <p>The <code>zones</code> parameter can optionally be a list of zone IDs.  Only reminders in these zones will be notified.</p> <p>The <code>send_at</code> parameter can optionally be set to a time in the future when the message should be sent.  Specify this as a ISO8601 timestamp (with timezone!) or Unix Epoch seconds.</p> <p>The <code>target</code> parameter can be used to send a service alert just to one contact. You can use the following formats to specify the target target:<br /><ul><li><code>email:someone@example.com</code> - send email</li><li><code>sms:888-291-0604</code> - send text message</li><li><code>voice:888-291-0604</code> - voice call</li><li><code>service</code> - send to all reminders in this service.</li><li><code>places:<PLACE_ID>,<PLACE_ID>,...</code> - send to all reminders subscribed at these place IDs</ul></p>\n","required":true,"schema":{"$ref":"#/definitions/NewServiceAlert"},"name":"body","in":"body"}],"responses":{"201":{"description":"201 Created - the resource was created."},"400":{"description":"400 Bad Request - could not fulfill this request."}}},"get":{"description":"Fetch past and queued service alerts.","tags":["messaging"],"summary":"Fetch scheduled service alerts","responses":{"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}]}},"/metrics/{area_id}/services/{svc_id}/support_by_resolution_stats":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"tags":["metrics"],"summary":"Get stats about support requests, grouped by resolution","description":"Get the stats on how Support Requests were resolved, in the given time period.\n"}},"/areas/{area_id}/services/{svc_id}/process/{process_name}/items/order":{"put":{"tags":["service-request"],"summary":"Update the order of ServiceRequestItems","description":"This API call updates the display order of the Items in both ReCollect Admin and the order end-users will see.","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"process_name","type":"string","in":"path","description":"Process name, eg: BIC","required":true},{"name":"body","in":"body","description":"JSON Object representing the new item","schema":{"$ref":"#/definitions/ServiceRequestItemOrder"},"required":true}],"responses":{"200":{"description":"200 OK - the request was successful"}}}},"/metrics/{area_id}/services/{svc_id}/calendar_prints_over_time":{"get":{"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"description":"Get the dashboard metrics for the given time period\n","summary":"Calendar prints per day","tags":["metrics"]}},"/image-search":{"get":{"description":"This method will retrive the list of Image classes.\n","summary":"Get the list of all Image classes","tags":["images"],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK","schema":{"items":{"type":"string"},"type":"array"}},"403":{"description":"403 Forbidden - must be a valid admin user."}},"parameters":[]}},"/areas/{area_id}/services/{svc_id}/clients/{client_id}/authenticate":{"post":{"tags":["client-state"],"summary":"Authenticate that a client can access a parcel.","description":"This method will submit a password for a given parcel to validate that this Client is allowed to see and interact with this parcel.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"client_id","type":"string","in":"path","description":"ID of the given Client. This is a UUID.","required":true}],"responses":{"200":{"description":"200 OK"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}}}},"/areas/{area_id}/services/{svc_id}/{locale}/missing-pages":{"post":{"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"}],"description":"Post a missing page and store into missing_wizard_pages\n","tags":["pages"],"summary":"Post a missing page"}},"/metrics/{area_id}/services/{svc_id}/wizard_sessions_over_time":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"},{"required":false,"description":"The Page Set name you are interested in results for","in":"query","type":"string","name":"set"}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}},"summary":"Waste wizard user sessions per day","tags":["metrics"],"description":"Get the dashboard metrics for the given time period\n"}},"/metrics/{area_id}/services/{svc_id}/support_requests_created_stats":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"tags":["metrics"],"summary":"Get timeseries stats on Support Requests created","description":"Get number of Support Requests created by time in the given timeframe.\n"}},"/places/{place_id}/services/{svc_id}/page_set":{"get":{"tags":["address"],"summary":"Resolve the page set for a place within a service","description":"<p>Returns the resolved page set name for a given place and service, using the same resolution logic as the widget (parcel opts, zone opts, then default).</p> <p>Only the <code>place</code> and <code>service</code> inputs are used; client, config, and data branches of page-set resolution do not apply.</p>\n","parameters":[{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"schema":{"properties":{"page_set":{"description":"The resolved page set name","type":"string"}},"type":"object"},"description":"200 OK"}}}},"/metrics/{area_id}/services/{svc_id}/calendar_views_by_language":{"get":{"description":"Get the dashboard metrics for the given time period\n","tags":["metrics"],"summary":"Calendar views grouped by viewer locale.","responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}]}},"/areas/{area_id}/services/{svc_id}/campaigns":{"get":{"tags":["messaging"],"summary":"Get Campaigns for the given service","description":"Retrieve the list of campaigns for the given service.","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"If true, will return all shared campaigns from other services.","in":"query","name":"shared","type":"boolean"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/CampaignList"}},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}}},"post":{"summary":"Create a new Campaign","tags":["messaging"],"description":"Create a new Campaign for the given service","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"body","name":"body","schema":{"$ref":"#/definitions/NewCampaign"},"required":true,"description":"JSON Object with the new Campaign"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"schema":{"$ref":"#/definitions/Campaign"},"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."}}}},"/areas/{area_id}/services/{svc_id}/zones/{zone_id}/event-predictions":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"},{"name":"after","type":"string","in":"query","description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources after the given date."},{"description":"A date timestamp in the format YYYY-MM-DD. Query will be filtered to only show resources before the given date.","in":"query","type":"string","name":"before"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"tags":["calendar"],"summary":"Predict future events, based on past events."}},"/areas/{area_id}/services/{svc_id}/admins/{addr}":{"put":{"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"required":true,"description":"Email Address","in":"path","type":"string","name":"addr"}],"description":"Add service admin permission\n","tags":["administrator"],"summary":"Add service admin permission"},"delete":{"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"required":true,"description":"Email Address","in":"path","type":"string","name":"addr"}],"description":"Delete service admin permission\n","tags":["administrator"],"summary":"Delete service admin permission"}},"/accounts/{acct_id}/address-suggest":{"get":{"tags":["address"],"summary":"Suggest Addresses for the given search term in an Account","description":"<p>If your municipality has supplied ReCollect with specific address data, then the ReCollect address suggest API can be used to search for addresses to avoid needing geocoding.  This method will search across all Services in the given Account.</p> <p>This method will return an array of possible address matches.  Each match will include a <code>parcel_id</code> attribute.  This attribute can be used to lookup service details, but it should not be used as a permanent identifier, as it may change in the future.  Only the <code>place_id</code> should be used as a permanent, external identifier.</p> <p>Once you have a <code>parcel_id</code>, you can look up service details using the HTTP GET <code>/api/places</code> API.</p>\n","parameters":[{"in":"path","type":"string","name":"acct_id","required":true,"description":"Account ID"},{"required":true,"description":"Query string - the address you are searching for. (Example: \"123 Main st\")","in":"query","type":"string","name":"q"},{"in":"query","type":"string","name":"locale","description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"description":"Skip this number of results from the beginning of the list","in":"query","type":"integer","name":"offset","minimum":0},{"minimum":0,"name":"limit","type":"integer","in":"query","description":"Return at most this number of results","maximum":100}],"responses":{"200":{"schema":{"items":{"$ref":"#/definitions/ParcelResult"},"type":"array"},"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."}}}},"/metrics/available":{"get":{"summary":"Fetch all available metrics","tags":["metrics"],"responses":{"200":{"description":"200 OK"},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[]}},"/metrics/{area_id}/services/{svc_id}/rem_active_rem_stats":{"get":{"description":"Get the numbers of active reminders by type\n","tags":["metrics"],"summary":"Get active reminder stats","responses":{"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}]}},"/areas/{area_id}/services/{svc_id}/places/{place_id}/inventories":{"get":{"summary":"Get inventories","tags":["inventory"],"description":"This method will retrieve all inventories for a place.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"403":{"description":"403 Forbidden - must be a valid admin user."}}}},"/areas/{area_id}/services/{svc_id}/replace-events":{"post":{"description":"Bulk replace event flags with other flags for a given zone or service.\n","tags":["calendar"],"summary":"Bulk replace calendar events","responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"schema":{"$ref":"#/definitions/BulkReplaceEvents"},"name":"body","in":"body"}]}},"/metrics/{area_id}/services/{svc_id}/sets":{"delete":{"description":"Reset a given service metric.  This action is not reversable and the query is ran immediately. In the body pass one of (or both) wizard_first_timers_by_set and wizard_user_sessions_by_set (comma separated if both) to reset the metrics\n","tags":["metrics"],"summary":"Delete service metrics","responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"204 No Content - the request was successful, but no content is returned."},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"schema":{"type":"string"},"description":"Comma separated list of metric names that are needed to be loaded","in":"body","name":"is_only_metrics"}]}},"/areas/{area_id}/services/{svc_id}/pages/{locale}/{page_id}.json/actions/{page_action}":{"post":{"tags":["pages"],"summary":"Get a Page","description":"This page is a form page that creates an arbitrary object on POST.\n","parameters":[{"in":"body","name":"body","required":true,"schema":{"type":"object"},"description":"A JSON object representing the form inputs."},{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"description":"The Page ID you want to fetch","required":true,"name":"page_id","type":"string","in":"path"},{"type":"string","name":"page_action","in":"path","description":"The POST action to perform, ie. \"_feedback\" or \"_request\"","required":true}],"responses":{"201":{"description":"201 Created"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}}}},"/areas/{area_id}/services/{svc_id}/event_flags/{event_flag_name}":{"delete":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","name":"event_flag_name","type":"string","required":true,"description":"Event Flag name or ID"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content."},"403":{"description":"403 Forbidden - must be a valid admin user."}},"summary":"Delete an EventFlag","tags":["calendar"],"description":"<p>Delete an EventFlag from a given Service.</p> <p>Note: an EventFlag can only be deleted if it is no longer used on any calendars.</p>\n"},"put":{"description":"Update an EventFlag\n","tags":["calendar"],"summary":"Update an EventFlag","responses":{"200":{"description":"200 OK","schema":{"$ref":"#/definitions/EventFlag"}},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","name":"event_flag_name","type":"string","required":true,"description":"Event Flag name or ID"},{"description":"JSON Object with the new EventFlag body","required":true,"schema":{"$ref":"#/definitions/UpdateEventFlag"},"name":"body","in":"body"}]},"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","name":"event_flag_name","type":"string","required":true,"description":"Event Flag name or ID"},{"in":"query","type":"string","name":"locale","description":"The locale code for this request. (eg: \"en\" or \"fr\")"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/EventFlag"}},"400":{"description":"400 Bad Request - could not fulfill this request."}},"tags":["calendar"],"summary":"Return a ServiceFlag for a given flag name for a service."},"patch":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","name":"event_flag_name","type":"string","required":true,"description":"Event Flag name or ID"},{"name":"body","in":"body","description":"JSON Object with the new EventFlag body.  Only fields specified will be updated.","schema":{"$ref":"#/definitions/UpdateEventFlag"},"required":true}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"schema":{"$ref":"#/definitions/EventFlag"},"description":"200 OK"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"summary":"Update some fields of EventFlag","tags":["calendar"],"description":"Update an EventFlag, but only change the fields that are specified.\n"}},"/reminders/{rem_id}/recent-logs":{"get":{"description":"This method will retrieve a debug logs about the system activity related to this reminder.\n","tags":["messaging"],"summary":"Get activity logs for a Reminder","responses":{"200":{"description":"200 OK","schema":{"$ref":"#/definitions/ReminderLogList"}},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"name":"rem_id","type":"string","in":"path","description":"ID of the given Reminder","required":true}]}},"/metrics/{area_id}/services/{svc_id}/support_stats":{"get":{"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"description":"Get the dashboard metrics for the given time period\n","tags":["metrics"],"summary":"Get stats about support requests"}},"/areas/{area_id}/services/{svc_id}/pages":{"post":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"The page data for creation","required":false,"schema":{"properties":{"links":{"type":"string","description":"JSON string containing an array of page links to create."},"opts_json":{"description":"JSON string containing page options. Must include a 'variables' array with at minimum a 'title' variable containing the localized page title. When using a template, all template variables must be present.\n","type":"string"},"tags":{"description":"Array of tag strings, or a comma-separated string of tags.","type":"string"},"content":{"description":"JSON string containing the page content sections and rows. Defaults to '[]'.","type":"string"},"auto_translate":{"type":"boolean","description":"If true and the service supports auto-translation, the page will be translated."},"locale":{"type":"string","description":"The locale for the page (e.g. en, en-US, fr). Defaults to 'en'."},"scripts":{"description":"Custom scripts for the page.","type":"string"},"script_language":{"type":"string","description":"The scripting language used by the page."},"page_type":{"type":"string","description":"The type of page (e.g. material, stream, depot, app, template, other)."},"name":{"description":"The page name (URL slug). If not provided, derived from the title.","type":"string"},"sets":{"description":"Array of page set names to associate with the page.","type":"array","items":{"type":"string"}}},"type":"object"},"name":"body","in":"body"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/Page"}},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"summary":"Create a Page","tags":["pages"],"description":"This method creates a new page. It supports three modes: 1) Upload an XLSX file for bulk page creation (multipart form data) 2) Process a previously uploaded XLSX file (pass xlsx_path parameter) 3) Create a single page via JSON body. When using a template, all variables defined in the template must be included in opts_json.\n"}},"/areas/{area_id}/services/{svc_id}/process/{process_name}/request-slots":{"post":{"tags":["service-request"],"summary":"Update the list of available ServiceRequestSlots","description":"This API call updates the availability of ServiceRequestSlots.  You can use either the <code>day</code> parameter (a `YYYY-MM-DD` string), or you can provide <code>start_time</code> and <code>end_time</code> as `YYYY-MM-DD HH:MM` strings.  The latter format allows for timeslots more specific than a particular day.  Times are assumed to be in 24 hour time, and in the timezone of the area.","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"process_name","type":"string","in":"path","description":"Process name, eg: BIC","required":true},{"description":"JSON Array of dates and counts of slots.","schema":{"items":{"$ref":"#/definitions/ServiceRequestSlotCreate"},"type":"array"},"required":true,"name":"body","in":"body"}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."}}},"get":{"responses":{"200":{"schema":{"$ref":"#/definitions/ServiceRequestSlot"},"description":"200 OK"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"process_name","type":"string","in":"path","description":"Process name, eg: BIC","required":true}],"description":"ServiceRequests can be scheduled into different date/time slots.  This API returns the list of upcoming ServiceRequestSlots along with the count of free ServiceRequests that can be booked during that time slot.","summary":"Get the list of upcoming ServiceRequestSlots","tags":["service-request"]}},"/areas/{area_id}/services/{svc_id}/zones":{"get":{"description":"This method will return the list of all Zones in the given Service\n","summary":"Get the list of Zones for a Service","tags":["calendar"],"responses":{"200":{"schema":{"$ref":"#/definitions/ZoneList"},"description":"200 OK"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}]},"post":{"description":"Create a new calendar zone. This zone can be associated with geospatial and calendar data.\n","tags":["calendar"],"summary":"Create a new calendar Zone","responses":{"201":{"description":"Success - redirect to Place URL","schema":{"$ref":"#/definitions/Reminder"}},"400":{"description":"Bad Request"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"body","in":"body","description":"The details of the zone you want to create","schema":{"$ref":"#/definitions/NewZone"},"required":true}]}},"/metrics/{area_id}/services/{svc_id}/rem_place_rem_stats":{"get":{"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"description":"Get the numbers of unique place id in reminders\n","summary":"Get created reminder's unuque place stats","tags":["metrics"]}},"/areas/{area_id}/services/{svc_id}/process/{process_name}/items/{item_id}":{"delete":{"tags":["service-request"],"summary":"Delete a ServiceRequestItem","description":"This API call deletes an existing ServiceRequestItem with the values you set.","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"process_name","type":"string","in":"path","description":"Process name, eg: BIC","required":true},{"in":"path","type":"string","name":"item_id","required":true,"description":"ServiceRequestItem ID"},{"schema":{"$ref":"#/definitions/ServiceRequestItem"},"required":true,"description":"JSON Object representing the new item","in":"body","name":"body"}],"responses":{"200":{"description":"200 OK - the request was successful"}}},"put":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"process_name","type":"string","in":"path","description":"Process name, eg: BIC","required":true},{"in":"path","type":"string","name":"item_id","required":true,"description":"ServiceRequestItem ID"},{"required":true,"schema":{"$ref":"#/definitions/ServiceRequestItem"},"description":"JSON Object representing the new item","in":"body","name":"body"}],"responses":{"200":{"description":"200 OK - the request was successful"}},"summary":"Update a ServiceRequestItem","tags":["service-request"],"description":"This API call updates an existing ServiceRequestItem with the values you set."}},"/links/{area_id}":{"get":{"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"minimum":0,"name":"limit","type":"integer","in":"query","description":"Return at most this number of results","maximum":100},{"description":"Skip this number of results from the beginning of the list","in":"query","type":"integer","name":"offset","minimum":0}],"description":"<p>This endpoint will return a paginated list of links for the given area.</p>\n","summary":"Get metrics on rco.io links for this area.","tags":["metrics"]}},"/areas/{area_id}/services/{svc_id}/holidays/{holiday_id}":{"put":{"description":"Holiday events are shared across all zones, and do NOT cause any notifications to be sent out.\n","tags":["calendar"],"summary":"Update a Holiday event for a service","responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"201":{"schema":{"$ref":"#/definitions/Holiday"},"description":"201 Created"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"required":true,"description":"Holiday ID","in":"path","type":"integer","name":"holiday_id"},{"name":"body","in":"body","description":"JSON Object with updated Holiday body","required":true,"schema":{"$ref":"#/definitions/HolidayUpdate"}}]},"delete":{"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"required":true,"description":"Holiday ID","in":"path","type":"integer","name":"holiday_id"}],"summary":"Delete a Holiday event from a service","tags":["calendar"]}},"/metrics/{area_id}/services/{svc_id}/game_play_stats":{"get":{"summary":"Get game play stats","tags":["metrics"],"description":"Get the numbers of game played\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}}}},"/metrics/{area_id}/services/{svc_id}/wizard_views_by_language":{"get":{"description":"Get the dashboard metrics for the given time period\n","summary":"Waste wizard views grouped by viewer locale.","tags":["metrics"],"responses":{"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"},{"required":false,"description":"The Page Set name you are interested in results for","in":"query","type":"string","name":"set"}]}},"/users/{user_id}/tokens":{"get":{"description":"Get the list of active authentication tokens.","tags":["metadata"],"summary":"Get authentication tokens for a machine user","responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/AuthTokenList"}}},"parameters":[{"in":"path","type":"string","name":"user_id","required":true,"description":"User ID"}]}},"/metrics/{area_id}/services/{svc_id}/rem_cumulative_rem_stats":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"summary":"Get cumulative reminder stats","tags":["metrics"],"description":"Get the numbers of cumulative reminders\n"}},"/areas/{area_id}/services/{svc_id}/zone-order":{"post":{"responses":{"200":{"description":"200 OK"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"description":"You can set the order of Zones to control how they are rendered. The order is used in the Admin panel.\n","tags":["geo"],"summary":"Set the order of Zones"}},"/areas/{area_id}/services/{svc_id}/participation-data/{study_name}":{"get":{"produces":["text/csv"],"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"required":true,"description":"Name of the Participation Study","in":"path","name":"study_name","type":"string"},{"description":"Skip this number of results from the beginning of the list","in":"query","type":"integer","name":"offset","minimum":0},{"minimum":0,"name":"limit","type":"integer","in":"query","description":"Return at most this number of results","maximum":100},{"in":"query","type":"boolean","name":"download","description":"If true, the API will set Content-Disposition headers, so that the result will be downloaded as an attachement."}],"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"tags":["waste"],"summary":"Fetch Waste Participation Study results","description":"Fetch results from a Waste Participation Study. You can page through the results using Offset and Limit parameters.\n"}},"/places/{place_id}/services/{svc_id}":{"get":{"parameters":[{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"query","type":"string","name":"include_message","description":"Which reminder target type of message would you like? (eg: \"email\" or \"sms\" or \"voice\")"},{"description":"Should the service homepage Page be included in the response?","type":"boolean","name":"include_homepage","in":"query"},{"description":"If true, other services that are also valid for the given Place will be returned in the <code>related_services</code> response field.","in":"query","type":"boolean","name":"include_related"},{"in":"query","type":"string","name":"locale","description":"The locale code for this request. (eg: \"en\" or \"fr\")"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/PlaceService"}}},"tags":["address"],"summary":"Fetch Service details for a given place and service","description":"<p>When you want to find out how a Place and a Service relate. This API call will look up the Place in the Service and return a service object, if possible.</p> <p>If possible, pass <code>svc_id</code> as an integer representing the Service ID. If you don't know the Service ID, then use the Service Name - eg: <code>waste</code>.</p>\n"}},"/places/{place_id}/services/{svc_id}/reminders":{"post":{"description":"<p>Once you have looked up an address to find a schedule, you can create a reminder.  This reminder will periodically notify you about your collection schedule.</p> <p>The JSON body fields should be as follows: <ul>\n  <li><code>place_id</code> - the ID of the place, from previous lookups</li>\n  <li><code>service</code> - the service_id, from previous lookups</li>\n  <li><code>target</code> - the recipient of the reminder. See below.</li>\n  <li><code>email</code> - the email address of the reminder creator.</li>\n  <li><code>day_offset</code> - The day the reminder should be sent - 0 is same day, 1 is day after, 2 is in 2 days, -1 is day before the event.</li>\n  <li><code>time_of_day</code> - when the reminder should be sent, as specified as a <code>HH:MM:SS</code> 24 hour time of day. Combined with <code>day_offset</code></li>\n  <li><code>locale</code> - the locale the reminder notifications should use.</li>\n</ul> </p> <p>The <code>target</code> parameter should be in one of the following forms, describing the recipient.  <ul>\n  <li><code>email:EMAIL_ADDRESS</code> - Email reminder</li>\n  <li><code>sms:PHONE_NUMBER</code> - SMS / Text Message reminder</li>\n  <li><code>voice:PHONE_NUMBER</code> - Voice call reminder</li>\n  <li><code>ical:email:EMAIL_ADDRESS</code> - iCal \"alert-only\" reminder</li>\n  <li><code>print:email:EMAIL_ADDRESS</code> - PDF \"alert-only\" reminder</li>\n  <li><code>alert:email:EMAIL_ADDRESS</code> - Alert-only reminder</li>\n</ul> </p>\n","summary":"Create a reminder for a place","tags":["messaging"],"responses":{"201":{"schema":{"$ref":"#/definitions/Reminder"},"description":"201 Created"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"schema":{"$ref":"#/definitions/NewReminder"},"required":true,"description":"The details of the reminder you want to create.","in":"body","name":"body"}]}},"/areas/{area_id}/services/{svc_id}/pages/{locale}/{page_id}/render":{"post":{"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/Page"}},"404":{"description":"404 Not Found - could not find anything at this path."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"description":"The Page ID you want to fetch","required":true,"name":"page_id","type":"string","in":"path"}],"description":"This method will retrieve a specific page in the specified locale. This method. mirrors the \"Get a Page\" GET endpoint, except it uses the POST method and receives a JSON body with the same arguments the GET request accepts.  Page data can be passed in as the <code>data</code> key in the JSON body.  This method is useful when the page data exceeds the size supported by GET requests, and to avoid logging form data in the GET request.\n","summary":"Render a Page","tags":["pages"]}},"/service_requests/{sr_id}/features/status":{"put":{"description":"<p>Administrators can use this API to update the \"status\" of a ServiceRequest.</p> <p>Valid `status` states are defined by the ServiceProcess.opts.valid_request_status array.  Defaults to <code>['created'].</p>\n","summary":"Update a ServiceRequest Status","tags":["service-request"],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"in":"path","name":"sr_id","type":"string","required":true,"description":"Process Request ID is a short 9 character identifier"},{"name":"body","in":"body","description":"Details about the request you want to create","required":true,"schema":{"$ref":"#/definitions/UpdateServiceRequestStatus"}}]}},"/areas/{area_id}/services/{svc_id}/page-sets":{"get":{"description":"Fetch a list of Waste Wizard Page Sets for a Service.\n","summary":"Service's Page Sets","tags":["metadata"],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK - the request was successful"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"active","type":"boolean","in":"query","description":"Query string - limit results to only active page sets.","required":false}],"produces":["application/json"]},"post":{"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"201":{"description":"200 OK - the request was successful"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"body","in":"body","schema":{"required":["name","title","user_visible"],"type":"object","properties":{"name":{"description":"Unique name within the service. Must not contain spaces.","type":"string"},"active":{"description":"Whether the page set is active (0 or 1). Defaults to 1.","type":"integer"},"user_visible":{"type":"integer","description":"Whether the page set is visible to end users (0 or 1)."},"title":{"additionalProperties":{"type":"string","description":"Display title in the locale."},"type":"object"},"sort_order":{"type":"integer","description":"Display order. Auto-assigned if omitted."}}}}],"description":"Creates a new page set for the service. `name` is required and must not contain spaces. `title` is required and must be an object keyed by locale code with string values (e.g. `{\"en\": \"My Set\"}`).\n","tags":["metadata"],"summary":"Create a service page set"}},"/users/me":{"get":{"description":"Get attributes about the current logged in user.","tags":["metadata"],"summary":"Get current user details","responses":{"200":{"schema":{"$ref":"#/definitions/User"},"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[]}},"/reminders/{rem_id}/enable":{"put":{"description":"This method will re-enable a Reminder that was previously disabled.\n","tags":["messaging"],"summary":"Enable a disabled Reminder","responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"name":"rem_id","type":"string","in":"path","description":"ID of the given Reminder","required":true}]}},"/areas/{area_id}/services/{svc_id}/neighbours":{"get":{"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"204 No Content - the request was successful, but no content is returned."},"403":{"description":"403 Forbidden - must be a valid admin user."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"description":"This method will return an array of services that are configured as neighbours to this service.  Neighbours are checked when addresses cannot be found in this service.\n","tags":["settings"],"summary":"Fetch the \"Neighbours\" for a service"},"put":{"description":"Update the \"neighbours\" for this service to be the new set that you specify.\n","tags":["settings"],"summary":"Update the \"Neighbours\" for a service","responses":{"200":{"description":"204 No Content - the request was successful, but no content is returned."},"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"body","in":"body","description":"The body should be a JSON array containing service IDs for the new neighbours.\n","schema":{"$ref":"#/definitions/ServiceIdList"}}]}},"/metrics/{area_id}/services/{svc_id}/activity/searches":{"get":{"description":"<p>This endpoint will return time-series data of which addresses were searched and when.  It is used by the Geo Dashboard.</p>\n","summary":"Fetch history of where address searches are done","tags":["metrics"],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Only return results that have an <code>updated_at</code> after this time.","format":"date-time","in":"query","type":"string","name":"since"}]}},"/areas/{area_id}/services/{svc_id}/support-requests/unforwarded/tempest":{"get":{"summary":"List Support Requests that were not forwarded to Tempest","tags":["support-request"],"description":"<p>Lists Support Requests whose problem type is configured for Tempest forwarding (<code>feedback_autoforward_tempest</code>) but that never received a <code>tempest_request_id</code>. These are candidates for re-forwarding via the forward API.</p>\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"query","type":"string","name":"since","required":false,"description":"Only include Support Requests created after this date (YYYY-MM-DD)"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}}}},"/areas/{area_id}/services/{svc_id}/process/{process_name}/requests":{"get":{"produces":["text/csv","application/json"],"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"process_name","type":"string","in":"path","description":"Process name, eg: BIC","required":true},{"minimum":0,"name":"limit","type":"integer","in":"query","description":"Return at most this number of results","maximum":100},{"description":"Skip this number of results from the beginning of the list","in":"query","type":"integer","name":"offset","minimum":0},{"description":"Only return results that have an <code>updated_at</code> after this time.","format":"date-time","in":"query","type":"string","name":"since"},{"type":"string","name":"query","in":"query","description":"Search term for your query"},{"description":"Which format of results? CSV or JSON","enum":["csv","json"],"in":"query","type":"string","name":"format"},{"description":"Only return requests with pickup on the given date (YYYY-MM-DD)","in":"query","type":"string","name":"pickup_on"}],"responses":{"200":{"schema":{"type":"array","items":{"$ref":"#/definitions/ServiceRequest"}},"description":"200 OK"}},"tags":["service-request"],"summary":"Retrieve the list of ServiceRequests","description":"<p>Retrieve ServiceRequests for the given Service.</p> <p>ServiceRequests are ordered by most recently updated requests first. The <code>limit</code> and <code>offset</code> parameters can be used to page through the results.</p> <h4>Polling for recent Service Requests</h4> <p>The service request API makes it easy for you to poll for new or updated requests in a way that is easy to implement correctly.  We call this the \"since\" method.</p> <p>Here's how your system should work:</p> <ul>\n  <li>First, your system should make a request to the Service Request endpoint.  You may wish to use a <code>limit=100</code> to grab the 100 most recent requests.</li>\n  <li>Process the list of requests from oldest to newest. (Reverse order)</li>\n  <li>For each object you process, store the <code>updated_at</code> timestamp verbatim.</li>\n  <li>Once you have processed all requests, immediately make another request to the API, and pass in the <code>since</code> parameter with the value of the latest <code>updated_at</code> timestamp that you saw.</li>\n  <li>The system will return the next set of requests that are NEWER than the <code>updated_at</code> timestamp.</li>\n  <li>Process these results as you did previously.</li>\n  <li>Repeat the process, always using the <code>since</code> parameter, until the system returns an empty response, indicating that there are no newer requests.</li>\n  <li>Once you get the empty dataset, your system can sleep until it is ready to check for newer requests again.</li>\n</ul> <p>This system works well, because you will never skip over requests, as is possible with the <code>limit/offset</code> interface.  It also minimizes the amount of data needed to be transmitted, and minimizes the state needed to be stored.</p>\n"}},"/metrics/{area_id}/services/{svc_id}/calendar_views_by_source":{"get":{"summary":"Calendar views grouped by viewer source.","tags":["metrics"],"description":"Get the dashboard metrics for the given time period\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}}}},"/areas/{area_id}/services/{svc_id}/places/notify":{"post":{"tags":["messaging"],"summary":"Schedule a ServiceAlert to a specific place","description":"<p>Your systems can trigger a Service Alert to a specific place that will be sent to residents that are signed up for regular reminders, or alert-only reminders.</p>\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"<p>Details about the message you want to send out</p> <p>The <code>expires_at</code> parameter is optional. Set to a time in the future to indicate when the message should expire. Specify this as a ISO8601 timestamp (with timezone!) or Unix Epoch seconds. Defaults to 10min from send_at time if no expired_at is included.</p> <p>The <code>subject</code> parameter is required. Is an object with at least one string per language ie. locale hash. The subject will be sent as the service alert's main message.</p> <p>The <code>html_message</code> parameter is optional. Should be a locale hash. Can contain HTML, will be used when HTML can be used.</p> <p>The <code>voice_message</code> parameter is optional. Should be a locale hash. Will be used for voice calls.</p> <p>The <code>short_text_message</code> parameter is optional. Should be a locale hash. Will be used for text messages. Must be short (< 160 chars).</p> <p>The <code>plain_text_message</code> parameter is optional. Should be a locale hash. Will be used when HTML cannot be used. Can be longer.</p> <p>The <code>opts</code> parameter is optional and is an object</p> <p>The <code>places</code> parameter is required and is an array of strings, place ids. Max 100 places can be sent per request.</p> <p>The <code>send_at</code> parameter is required. Set to a time in the future when the message should be sent. Specify this as a ISO8601 timestamp (with timezone!) or Unix Epoch seconds.</p>\n","schema":{"$ref":"#/definitions/NewAlertPlaces"},"name":"body","in":"body"}],"responses":{"201":{"description":"201 Created - the resource was created."},"400":{"description":"400 Bad Request - could not fulfill this request."}}}},"/areas":{"get":{"produces":["text/html"],"description":"This method will return a list of all areas. Only available to global admins.\n","tags":["settings"],"summary":"Get list of all Areas","responses":{"200":{"description":"200 OK - the request was successful"},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[]},"post":{"description":"This method will create a new Area.  Global admins only.\n","summary":"Create an Area","tags":["settings"],"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"201":{"description":"201 Created","schema":{"$ref":"#/definitions/Area"}},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"schema":{"$ref":"#/definitions/NewArea"},"description":"The attributes of the new Area","in":"body","name":"body"}]}},"/areas/{area_id}/services/{svc_id}/participation-studies":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/PlaceDataList"}},"400":{"description":"400 Bad Request - could not fulfill this request."}},"summary":"fetch participation studies in the service","tags":["waste"],"description":"Get participation studies to list up names. study names and zone names appear in radmin based on this data\n"}},"/metrics/{area_id}/services/{svc_id}/wizard_views_by_source":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"},{"required":false,"description":"The Page Set name you are interested in results for","in":"query","type":"string","name":"set"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"tags":["metrics"],"summary":"Waste wizard views grouped by viewer source.","description":"Get the dashboard metrics for the given time period\n"}},"/areas/{area_id}/services/{svc_id}/pages/{locale}/depot/export":{"get":{"description":"This method will return a JSON structure containing all wizard data about depots.\n","tags":["pages"],"summary":"Export Wizard depot data","responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"}],"produces":["application/json"]}},"/service_requests/{sr_id}/forward":{"post":{"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"in":"path","name":"sr_id","type":"string","required":true,"description":"Process Request ID is a short 9 character identifier"}],"description":"<p>If a Service Request forwarding failed, this API can be used to trigger it to be forwarded again.</p>\n","tags":["service-request"],"summary":"Trigger a Service Request to be forwarded"}},"/reminders":{"get":{"parameters":[{"description":"<p>The query string you want to search for.  Typically this is an email address.</p>\n","required":false,"type":"string","name":"query","in":"query"},{"minimum":0,"name":"limit","type":"integer","in":"query","description":"Return at most this number of results","maximum":100},{"description":"Skip this number of results from the beginning of the list","in":"query","type":"integer","name":"offset","minimum":0},{"description":"Account ID","name":"account_id","type":"integer","in":"query"},{"name":"area_id","type":"string","in":"query","description":"Area ID (name or ID number)"},{"description":"Service ID. When used with an Area, a Service name can be used.","in":"query","type":"integer","name":"service_id"},{"description":"The UUID for a Place, or specify a value prefixed with <code>external:</code> to use a Parcel External ID to uniquely identify a specific parcel.","type":"string","name":"place_id","in":"query"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/Reminder"}}},"summary":"Search to find existing reminders (Admin only)","tags":["messaging"],"description":"<p>Whitelisted administrators can search reminders.  Contact ReCollect Support to add or update the list of whitelisted users.</p>\n"},"post":{"parameters":[{"required":true,"schema":{"$ref":"#/definitions/NewReminder"},"description":"The details of the reminder you want to create.","in":"body","name":"body"}],"responses":{"201":{"description":"201 Created","schema":{"$ref":"#/definitions/Reminder"}},"400":{"description":"400 Bad Request - could not fulfill this request."}},"summary":"Create a reminder - direct interface","tags":["messaging"],"description":"<p>Create a reminder for a place or for a zone.</p> <p>The JSON body fields should be as follows: <ul>\n  <li><code>place_id</code> - the ID of the place, from previous lookups</li>\n  <li><code>zone_name</code> - If no <code>place_id</code> is provided, specify a zone for the reminder rather than for a place</li>\n  <li><code>service</code> - the service_id, from previous lookups</li>\n  <li><code>target</code> - the recipient of the reminder. See below.</li>\n  <li><code>email</code> - the email address of the reminder creator.</li>\n  <li><code>day_offset</code> - The day the reminder should be sent - 0 is same day, 1 is day after, 2 is in 2 days, -1 is day before the event.</li>\n  <li><code>time_of_day</code> - when the reminder should be sent, as specified as a <code>HH:MM:SS</code> 24 hour time of day. Combined with <code>day_offset</code></li>\n  <li><code>locale</code> - the locale the reminder notifications should use.</li>\n</ul> </p> <p>The <code>target</code> parameter should be in one of the following forms, describing the recipient.  <ul>\n  <li><code>email:EMAIL_ADDRESS</code> - Email reminder</li>\n  <li><code>sms:PHONE_NUMBER</code> - SMS / Text Message reminder</li>\n  <li><code>voice:PHONE_NUMBER</code> - Voice call reminder</li>\n  <li><code>ical:email:EMAIL_ADDRESS</code> - iCal \"alert-only\" reminder</li>\n  <li><code>print:email:EMAIL_ADDRESS</code> - PDF \"alert-only\" reminder</li>\n  <li><code>alert:email:EMAIL_ADDRESS</code> - Alert-only reminder</li>\n</ul> </p>\n"}},"/areas/{area_id}/services/{svc_id}/job":{"post":{"summary":"Create a service-related job","tags":["administrator"],"description":"Used to create jobs for services. Used by Radmin to queue long-running jobs.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"The details of the job to create.  The \"job\" key is mandatory - it is the name of the job class.  Other parameters can be included - they will be passed to the job.","schema":{"$ref":"#/definitions/NewJob"},"required":true,"name":"body","in":"body"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}}}},"/areas/{area_id}/services/{svc_id}/alerts/{alert_id}":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"alert_id","type":"integer","in":"path","description":"Alert ID.","required":true}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"summary":"Get status of a given alert","tags":["messaging"],"description":"Fetch the status including a summary of the delivery status for a given alert."},"delete":{"description":"Delete a service alert that has not yet been sent.","tags":["messaging"],"summary":"Delete a queued service alert","responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"alert_id","type":"integer","in":"path","description":"Alert ID.","required":true}]},"put":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"alert_id","type":"integer","in":"path","description":"Alert ID.","required":true}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"tags":["messaging"],"summary":"Update a queued service alert","description":"Update a service alert that has not yet been sent."}},"/service_requests/{sr_id}/debug-email/{email_type}":{"get":{"summary":"Send one of our template emails to the requestor","tags":["service-request"],"description":"<p>This API call can either send an email to the configured dispatch email for a given ServiceRequest's ServiceProcess or send an email to the requestor of a given ServiceRequest.</p> <p>This request is for admins only.</p>\n","parameters":[{"in":"path","name":"sr_id","type":"string","required":true,"description":"Process Request ID is a short 9 character identifier"},{"enum":["confirmation","reminder","cancel","dispatch","completed","reschedule"],"name":"email_type","type":"string","in":"path","description":"The type of email related to the request.","required":true},{"type":"string","name":"email","in":"query","description":"The email contact of the requestor used for validation."}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}}}},"/areas/{area_id}/services/{svc_id}/strings":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"summary":"Get text string customizations","tags":["settings"],"description":"This method will return the text string customizations that have been setup for this area.\n"}},"/areas/{area_id}/services/{svc_id}/process/{process_name}/items":{"post":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"process_name","type":"string","in":"path","description":"Process name, eg: BIC","required":true},{"name":"body","in":"body","description":"JSON Object representing the new item","schema":{"$ref":"#/definitions/ServiceRequestItem"},"required":true}],"responses":{"201":{"description":"201 Created - the resource was created."}},"summary":"Update the list of available ServiceRequestItems","tags":["service-request"],"description":"This API call creates a new ServiceRequestItem.  Each Item represents something that can be requested during a ServiceProcess.  If you pass in a <code>category</code> parameter as a LocHash, then the Item will be created inside the category matching that label. The category will be auto-vivified."},"get":{"summary":"Get the list of available ServiceRequestItems","tags":["service-request"],"description":"This API call gets aall ServiceRequestItems.  Each Item represents something that can be requested during a ServiceProcess.","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"process_name","type":"string","in":"path","description":"Process name, eg: BIC","required":true}],"responses":{"200":{"description":"200 OK - the request was successful"}}}},"/metrics/{area_id}/services/{svc_id}/wizard_top_communities":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"},{"required":false,"description":"Optional filter material, stream, or depot page views.","in":"query","type":"string","name":"page_type"}],"responses":{"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"summary":"Waste wizard page sets, ordered by view counts","tags":["metrics"],"description":"Get the dashboard metrics for the given time period.\n"}},"/metrics/{area_id}/services/{svc_id}/reminder-formats":{"get":{"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"description":"<p>Get the number of reminders, and of which type, grouped by zone.</p>\n","tags":["metrics"],"summary":"Get a count of reminders per zone."}},"/areas/{area_id}/services/{svc_id}/zones/{zone_id}/events/{event_id}":{"delete":{"description":"Delete an event from a given zone.\n","tags":["calendar"],"summary":"Delete an Event","responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"},{"name":"event_id","type":"integer","in":"path","description":"Event ID","required":true}]},"put":{"summary":"Update an Event","tags":["calendar"],"description":"Update an event in a given zone.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"Zone ID. Can be an ID or name.","required":true,"name":"zone_id","type":"string","in":"path"},{"name":"event_id","type":"integer","in":"path","description":"Event ID","required":true},{"description":"Fields of the Event that you want to update","schema":{"$ref":"#/definitions/UpdateEvent"},"required":true,"name":"body","in":"body"}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."}}}},"/reminders/{rem_id}/delete_reason":{"put":{"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"parameters":[{"name":"rem_id","type":"string","in":"path","description":"ID of the given Reminder","required":true},{"in":"body","name":"body","schema":{"properties":{"comments":{"type":"string"},"reason":{"type":"string"}},"type":"object"},"description":"List the reason and comments for deleting the reminder."}],"description":"This method will record the \"reason\" for deleting this Reminder.\n","tags":["messaging"],"summary":"Get a Reminder"}},"/metrics/{area_id}/services/{svc_id}/reminder-formats.csv":{"get":{"tags":["metrics"],"summary":"Get a count of reminders per zone as a CSV","description":"<p>Get the number of reminders, and of which type, grouped by zone.</p> <p>Returns a CSV attachment for download.</p>\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"200":{"description":"200 OK"},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}}}},"/areas/{area_id}/services/{svc_id}/places/{place_id}/inventory/{inventory_id}":{"delete":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true},{"required":true,"description":"Inventory ID is the UUID for a given inventory within ReCollect","in":"path","type":"string","name":"inventory_id"}],"responses":{"200":{"description":"200 OK - the request was successful"},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"summary":"Delete an inventory","tags":["inventory"],"description":"This method will delete an inventory.\n"},"put":{"summary":"Update an inventory","tags":["inventory"],"description":"This method will update an inventory.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true},{"required":true,"description":"Inventory ID is the UUID for a given inventory within ReCollect","in":"path","type":"string","name":"inventory_id"},{"required":true,"schema":{"type":"object","properties":{"status":{"type":"string","description":"The status of the inventory item.  Valid values are 'add_item', 'remove_item', and 'schedule_item'.\n"},"inventory_item_id":{"description":"The inventory_item_id of the item to remove or schedule.\n","type":"string"},"start_date":{"description":"The start date of the item to schedule.\n","format":"date-time","type":"string"},"end_date":{"format":"date-time","type":"string","description":"The end date of the item to schedule.\n"},"item_id":{"description":"The item_id of the item to add.\n","type":"integer"}}},"name":"body","in":"body"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"}}}},"/areas/{area_id}/services/{svc_id}/intent/materialSearch":{"get":{"responses":{"200":{"description":"200 OK - the request was successful"}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"query","type":"string","name":"material","description":"What are you searching for?"},{"required":false,"description":"The Page Set name you are interested in results for","in":"query","type":"string","name":"set"}],"description":"Search for Waste Wizard materials from a chatbot-like interface. This works well for voice assistants like Alexa or Google Home, or chatbot applications.\n","summary":"Bot intent API for material search","tags":["waste"]}},"/areas/{area_id}/services/{svc_id}/meter-data/{ymd}":{"get":{"produces":["text/plain"],"summary":"Fetch Water Meter reading data","tags":["watermeter"],"description":"Fetch Water Meter readings for a given day.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"A date in YYYY-MM-DD format","required":true,"name":"ymd","type":"string","in":"path"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."}}}},"/metrics/{area_id}/services/{svc_id}/calendar_stats":{"get":{"tags":["metrics"],"summary":"Get stats about calendar usage","description":"Get the dashboard metrics for the given time period\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}}}},"/areas/{area_id}/admins/{addr}":{"delete":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"required":true,"description":"Email Address","in":"path","type":"string","name":"addr"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"summary":"Delete area admin permission","tags":["administrator"],"description":"Delete area admin permission\n"},"put":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"required":true,"description":"Email Address","in":"path","type":"string","name":"addr"}],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}},"summary":"Add area admin permission","tags":["administrator"],"description":"Add area admin permission\n"}},"/areas/{area_id}/services/{svc_id}/attachment/{attach_uuid}":{"put":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"UUID of the Attachment","required":true,"type":"string","name":"attach_uuid","in":"path"},{"required":true,"schema":{"$ref":"#/definitions/AttachmentUpdateBody"},"description":"Empty JSON hash","in":"body","name":"body"}],"responses":{"200":{"description":"Attachment was marked as uploaded"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"tags":["request-attachment"],"summary":"Mark a request attachment as uploaded successfully.","description":"After uploading a pickup request or support request attachment file to S3, call this method to inform the server that the upload completed successfully. You will not be able to use this attachment until this API call is made.\n"}},"/metrics/{area_id}/services/{svc_id}/game_completed_stats":{"get":{"summary":"Get game complete stats","tags":["metrics"],"description":"Get the numbers of game completed\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"200":{"description":"200 OK - the request was successful"},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"204":{"description":"204 No Content - the request was successful, but no content is returned."}}}},"/areas/{area_id}/services/{svc_id}/admins":{"get":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."}},"tags":["administrator"],"summary":"Get all admin users","description":"Get all admin users\n"}},"/users/{user_id}/is-machine":{"put":{"consumes":["text/plain"],"tags":["administrator"],"summary":"Set user's is_machine boolean field","description":"Allow for migrating humans to machines and vice versa\n","parameters":[{"in":"path","type":"string","name":"user_id","required":true,"description":"User ID"},{"description":"1 makes the user a machine, 0 makes the user a human","schema":{"type":"integer"},"required":true,"name":"is_machine","in":"body"}],"responses":{"403":{"description":"403 Forbidden - must be a valid admin user."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}}}},"/areas/{area_id}/services/{svc_id}/places/{place_id}/inventory":{"post":{"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"200":{"description":"200 OK - the request was successful"},"403":{"description":"403 Forbidden - must be a valid admin user."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"type":"string","name":"place_id","in":"path","description":"Place ID is the UUID for a given place within ReCollect","required":true},{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"end_date":{"description":"The end date of the item to schedule.\n","format":"date-time","type":"string"},"start_date":{"description":"The start date of the item to schedule.\n","type":"string","format":"date-time"},"item_id":{"type":"integer","description":"The item_id of the item to add.\n"}}}}}},"required":true,"in":"body","name":"body"}],"description":"This method will create an inventory.\n","summary":"Create an inventory","tags":["inventory"]}},"/areas/{area_id}/services/{svc_id}/attachments":{"post":{"description":"When you want to upload an attachment for a Request object, use this endpoint to get the credentials for uploading the attachment to S3.  Then you can submit the attachment ID when creating the Request object. After you have uploaded the attachment, PUT to the attachment object to confirm it is uploaded.\n","tags":["request-attachment"],"summary":"Create a new attachment for Request","responses":{"201":{"description":"Attachment object created. Ready for you to upload it.","schema":{"$ref":"#/definitions/Attachment"}},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"body","in":"body","description":"The attributes of the file you want to upload.","required":true,"schema":{"$ref":"#/definitions/NewAttachment"}}]}},"/reports/{area_id}/services/{svc_id}/monthly.html":{"get":{"summary":"View the monthly report for a service","tags":["metrics"],"description":"This will return the email body of the monthly report for a given service.  Use the \"as_of\" query parameter to set the report to be at different dates in the past.\n","parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"description":"A time in ISO-8601 format: YYYY-MM-DD with optional HH:MM:SS precision. Time is assumed to be in the area's local timezone.","type":"string","name":"as_of","in":"query"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"200":{"description":"200 OK - the request was successful"},"403":{"description":"403 Forbidden - must be a valid admin user."}}}},"/areas/{area_id}/services/{svc_id}/bump-events":{"post":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"schema":{"$ref":"#/definitions/BumpEvents"},"name":"body","in":"body"}],"responses":{"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"summary":"Bump calendar events ahead one day","tags":["calendar"],"description":"Move calendar events for the specified zones and times ahead one day.\n"}},"/areas/{area_id}/services/{svc_id}/connector/{cname}/{status_id}/logs":{"post":{"description":"For external connector activity such as FME integration, it is helpful to record log data with the connector run.  This API endpoint accepts an array of log strings.","summary":"Save log data related to the connector run","tags":["connector"],"responses":{"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"202":{"description":"202 Accepted"},"410":{"description":"410 Gone - Indicates that the resource requested is no longer available and will not be available again."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"cname","type":"string","in":"path","description":"connector name","required":true},{"in":"path","name":"status_id","type":"string","required":true,"description":"Connector status ID"},{"description":"An array ref of strings\n","required":true,"schema":{"items":{"type":"string"},"type":"array"},"name":"body","in":"body"}]}},"/metrics/{area_id}/services/{svc_id}/app_stats":{"get":{"description":"Get the numbers of apps downloaded\n","summary":"Get app installed stats","tags":["metrics"],"responses":{"200":{"description":"200 OK - the request was successful"},"404":{"description":"404 Not Found - could not find anything at this path."},"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"name":"start_date","type":"string","in":"query","description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to 2010-01-01","required":false},{"required":false,"description":"A date in ISO-8601 (YYYY-MM-DD) format. Defaults to start of today.","in":"query","type":"string","name":"end_date"}]}},"/places":{"get":{"description":"<p>Assuming the parameters are valid and a schedule can be found, you will receive a HTTP 302 redirect to a URL containing service information. This URL and information will include a <code>place_id</code>, which can be used in subsequent lookups and as a permanent external identifier for this address.</p>\n","tags":["address"],"summary":"Lookup a given place by <code>parcel_id</code>","responses":{"302":{"description":"Success - redirect to Place URL"},"400":{"description":"400 Bad Request - could not fulfill this request."}},"parameters":[{"in":"query","type":"string","name":"locale","description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"in":"query","type":"string","name":"service_id","required":true,"description":"The ID of the Service you are interested in"},{"required":true,"description":"The Parcel ID you are interested in.","in":"query","type":"string","name":"parcel_id"}]}},"/areas/{area_id}/services/{svc_id}/page-sets/{id}":{"delete":{"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","name":"id","type":"integer","required":true}],"responses":{"204":{"description":"204 No Content - the request was successful, but no content is returned."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."}},"tags":["metadata"],"summary":"Deactivate a service page set","description":"Sets `active` to false. The `default` page set cannot be removed.\n"},"put":{"description":"Partial update. `name` cannot be changed after creation. `title` is a locale-keyed object (merged into existing title JSON).\n","tags":["metadata"],"summary":"Update a service page set","responses":{"200":{"description":"200 OK - the request was successful"},"400":{"description":"400 Bad Request - could not fulfill this request."},"404":{"description":"404 Not Found - could not find anything at this path."},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"type":"integer","name":"id","in":"path","required":true},{"name":"body","in":"body","schema":{"type":"object","properties":{"active":{"description":"Whether the page set is active (0 or 1).","type":"integer"},"name":{"description":"Must match the existing name. Cannot be changed.","type":"string"},"title":{"type":"object","additionalProperties":{"type":"string","description":"Display title in the locale."}},"user_visible":{"description":"Whether the page set is visible to end users (0 or 1).","type":"integer"},"sort_order":{"type":"integer","description":"Display order."}}}}]}},"/areas/{area_id}/services/{svc_id}/pages/{locale}/{page_id}":{"put":{"responses":{"404":{"description":"404 Not Found - could not find anything at this path."},"400":{"description":"400 Bad Request - could not fulfill this request."},"403":{"description":"403 Forbidden - must be a valid admin user."},"200":{"description":"200 OK","schema":{"$ref":"#/definitions/Page"}},"401":{"description":"401 Unauthorized - must provide a valid Authorization header."}},"parameters":[{"description":"Area ID or Area name can be used.","required":true,"name":"area_id","type":"string","in":"path"},{"description":"Service ID. When used with an Area, a Service name (like \"waste\") can be used.","required":true,"name":"svc_id","type":"string","in":"path"},{"in":"path","type":"string","name":"locale","required":true,"description":"The locale code for this request. (eg: \"en\" or \"fr\")"},{"description":"The Page ID you want to fetch","required":true,"name":"page_id","type":"string","in":"path"},{"name":"body","in":"body","description":"The page attributes to update","required":true,"schema":{"type":"object","properties":{"scripts":{"description":"Custom scripts for the page.","type":"string"},"script_language":{"description":"The scripting language used by the page (e.g. empty string for none).","type":"string"},"page_type":{"description":"The type of the page (e.g. material, stream, depot, app, template).","type":"string"},"name":{"type":"string","description":"The page name (URL slug). If changed, must be unique and valid."},"sets":{"items":{"type":"string"},"type":"array","description":"Array of page set names to associate with the page."},"links":{"description":"JSON string containing an array of page links to update.","type":"string"},"opts_json":{"description":"JSON string containing page options including variables and template settings.","type":"string"},"tags":{"type":"string","description":"JSON string containing an array of tag strings to set on the page, or an array reference of tag strings."},"content":{"type":"string","description":"JSON string containing the page content sections and rows."},"auto_translate":{"description":"If true and the service supports auto-translation, changed fields will be translated.","type":"boolean"}}}}],"description":"This method will update an existing page. Pages may have a large amount of content and links, so the request body size limit is increased to 512KB.\n","summary":"Update a Page","tags":["pages"]}}},"produces":["application/json"],"definitions":{"NewServiceAlert":{"properties":{"send_at":{"type":"integer"},"target":{"format":"email","type":"string"},"metadata":{"type":"string"},"zones":{"items":{"type":"integer"},"type":"array"},"opts":{"type":"object"}},"type":"object"},"Service":{"type":"object","properties":{"user_is_support":{"type":"boolean"},"user_is_admin":{"type":"boolean"},"opts_json":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"},"opts_checksum":{"type":"string"},"title":{"type":"string"},"area":{"$ref":"#/definitions/Area"}}},"ServiceIdList":{"items":{"type":"integer"},"type":"array"},"ServiceStrings":{"type":"object"},"PlaceDataList":{"items":{"$ref":"#/definitions/PlaceData"},"type":"array"},"Event":{"properties":{"flags":{"type":"array","items":{"$ref":"#/definitions/EventFlag"}},"end_day":{"type":"string","format":"date-time"},"day":{"type":"string","format":"date-time"},"options":{"type":"object"},"id":{"type":"integer"},"zone_id":{"type":"integer"}},"type":"object"},"ParcelObject":{"properties":{"location":{"type":"string"},"city":{"type":"string"},"street":{"type":"string"},"province":{"type":"string"},"area_id":{"type":"integer"},"opts":{"type":"object"},"external_id":{"type":"string"},"country":{"type":"string"},"unit":{"type":"string"},"zones":{"items":{"properties":{"opts":{"type":"object"},"zone_name":{"type":"string"}},"type":"object"},"type":"array"},"service_id":{"type":"integer"},"id":{"type":"integer"},"source":{"type":"string"},"house":{"type":"string"}},"type":"object"},"Version":{"properties":{"Code-Version":{"type":"string"},"API-Version":{"type":"string"}},"type":"object"},"Page":{"type":"object","properties":{"created_by":{"$ref":"#/definitions/User"},"title":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"set":{"type":"string"},"name":{"type":"string"},"page_type":{"type":"string"},"location":{"$ref":"#/definitions/Location"},"updated_by":{"$ref":"#/definitions/User"},"links":{"type":"array","items":{"$ref":"#/definitions/LinkList"}},"service_id":{"type":"integer"},"id":{"type":"integer"},"content":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"locale":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}}},"BulkDeleteEvents":{"type":"object","properties":{"zones":{"type":"string"},"delete_after":{"type":"string","format":"datetime"},"delete_before":{"format":"datetime","type":"string"}}},"ServiceOpts":{"type":"object"},"NewCampaign":{"type":"object","properties":{"subject":{"$ref":"#/definitions/LocHash"},"html_message":{"$ref":"#/definitions/LocHash"},"type":{"type":"string"},"meta":{"type":"object","properties":{"value":{"type":"string"},"field":{"type":"string"}}},"short_text_message":{"$ref":"#/definitions/LocHash"},"end_at":{"type":"string","format":"date-time"},"is_shared":{"type":"boolean"},"zones":{"$ref":"#/definitions/ZoneList"},"start_at":{"format":"date-time","type":"string"},"plain_text_message":{"$ref":"#/definitions/LocHash"},"voice_message":{"$ref":"#/definitions/LocHash"},"label":{"type":"string"},"service_id":{"type":"integer"}}},"HolidayUpdate":{"type":"object","properties":{"colour":{"type":"string"},"text_colour":{"type":"string"},"end_day":{"type":"string","format":"date-time"},"plain_text_message":{"$ref":"#/definitions/L10nHash"},"simple_text_message":{"$ref":"#/definitions/L10nHash"},"voice_message":{"$ref":"#/definitions/L10nHash"},"day":{"type":"string","format":"date-time"},"subject":{"$ref":"#/definitions/L10nHash"},"icon":{"type":"string"},"pattern":{"type":"string"},"html_message":{"$ref":"#/definitions/L10nHash"},"name":{"type":"string"},"type":{"type":"string"},"border_colour":{"type":"string"}}},"ZoneList":{"type":"array","items":{"$ref":"#/definitions/Zone"}},"UpdateEventFlag":{"type":"object","properties":{"name":{"type":"string"},"html_message":{"type":"object"},"subject":{"type":"object"},"icon":{"type":"string"},"color":{"type":"string"},"short_text_message":{"type":"object"},"plain_text_message":{"type":"object"},"opts":{"type":"object"},"event_type":{"type":"string"},"textColor":{"type":"string"},"borderColor":{"type":"string"},"voice_message":{"type":"object"}}},"NewServiceTemplate":{"properties":{"locale":{"type":"string"},"name":{"type":"string"}},"type":"object"},"Location":{"type":"object","properties":{"lng":{"format":"float","type":"number"},"lat":{"format":"float","type":"number"}}},"NewReminder":{"properties":{"locale":{"type":"string"},"zone_name":{"type":"string"},"day_offset":{"type":"integer"},"service":{"type":"integer"},"place_id":{"type":"string"},"target":{"type":"string"},"time_of_day":{"format":"duration","type":"string"},"email":{"type":"string"}},"type":"object"},"UpdateEvent":{"type":"object","properties":{"is_approved":{"type":"boolean"},"end_day":{"type":"string","format":"date-time"},"flags":{"items":{"type":"string"},"type":"array"},"opts":{"type":"object"},"day":{"format":"date-time","type":"string"}}},"ServiceProcess":{"properties":{"service_name":{"type":"string"},"service_id":{"type":"integer"},"opts_json":{"type":"string"},"id":{"type":"integer"},"full_name":{"type":"string"},"widget_page":{"description":"Resolved widget page id for #!rc-page= (matches server page resolution, including opts.page override).","type":"string"},"opts":{"type":"object"},"title":{"type":"string"},"name":{"type":"string"}},"type":"object"},"PutProcessConfig":{"type":"object","properties":{"opts_json":{"type":"string"}}},"PlaceServiceEvents":{"type":"object","properties":{"parcel_opts":{"$ref":"#/definitions/ParcelOpts"},"zones":{"$ref":"#/definitions/ZoneList"},"events":{"$ref":"#/definitions/EventList"}}},"EventFlag":{"type":"object","properties":{"opts_json":{"type":"object"},"id":{"type":"string"},"voice_message":{"type":"object"},"sort_order":{"type":"string"},"plain_text_message":{"type":"object"},"event_type":{"type":"string"},"short_text_message":{"type":"object"},"border_color":{"type":"string"},"name":{"type":"string"},"html_message":{"type":"object"},"text_color":{"type":"string"},"subject":{"type":"object"},"icon":{"type":"string"},"color":{"type":"string"}}},"L10nHash":{"properties":{"en-US":{"type":"string"},"en":{"type":"string"},"fr":{"type":"string"},"es":{"type":"string"},"en-GB":{"type":"string"}},"type":"object"},"UpdateServiceRequest":{"type":"object","properties":{"event_id":{"type":"integer"}}},"Image":{"type":"object","properties":{"host":{"type":"string"},"class":{"type":"string"},"name":{"type":"string"},"filetype":{"type":"string"},"id":{"type":"integer"}}},"NewJob":{"properties":{"job":{"type":"string"}},"type":"object"},"Attachment":{"properties":{"filename":{"type":"string"},"uuid":{"type":"string"},"created_at":{"type":"string"},"s3_region":{"type":"string"},"s3_bucket":{"type":"string"},"service":{"type":"string"},"filesize":{"type":"integer"},"s3_url":{"type":"string"},"service_id":{"type":"integer"},"s3_path":{"type":"string"},"status":{"type":"string"},"s3_creds":{"properties":{"secretAccessKey":{"type":"string"},"sessionToken":{"type":"string"},"accessKeyId":{"type":"string"}},"type":"object"}},"type":"object"},"ReminderLogList":{"type":"array","items":{"properties":{"msg":{"type":"string"},"at":{"format":"date-time","type":"string"},"data":{"type":"string"}},"type":"object"}},"User":{"properties":{"opts":{"type":"object"},"username":{"type":"string"},"id":{"type":"integer","format":"int64"},"last_logon_at":{"type":"string"},"created_at":{"type":"string"},"email":{"type":"string"}},"type":"object"},"ParcelOpts":{"properties":{"anything":{"type":"string"}},"type":"object"},"PutArea":{"type":"object","properties":{"geocoder_suffix":{"type":"string"},"title":{"type":"string"},"logo_alt_text":{"type":"string"},"population":{"type":"integer"},"logo_img":{"type":"string"},"logo_url":{"type":"string"},"locales":{"type":"string"},"country":{"type":"string"},"enable_voice":{"type":"boolean"},"territory":{"type":"string"},"timezone":{"type":"string"},"area_codes":{"type":"string"},"thank_you_msg":{"type":"string"},"city":{"type":"string"},"enable_sms":{"type":"boolean"},"email_banner":{"type":"string"},"households":{"type":"integer"}}},"NewEventFlag":{"properties":{"name":{"type":"string"},"color":{"type":"string"},"subject":{"$ref":"#/definitions/L10nHash"}},"type":"object"},"Zone":{"properties":{"title":{"type":"string"},"id":{"type":"integer"},"name":{"type":"string"}},"type":"object"},"ParcelResult":{"type":"object","properties":{"area_id":{"type":"integer"},"name":{"type":"string"},"parcel_id":{"type":"string"},"place_id":{"type":"string"}}},"Place":{"properties":{"country":{"type":"string"},"unit":{"type":"string"},"id":{"type":"string"},"lng":{"type":"number","format":"float"},"house":{"type":"string"},"source":{"type":"string","enum":["manual","connector"]},"lat":{"type":"number","format":"float"},"name":{"type":"string"},"city":{"type":"string"},"street":{"type":"string"},"province":{"type":"string"}},"type":"object"},"NewSupportRequest":{"type":"object","properties":{"image":{"type":"string"},"email":{"type":"string"},"problem":{"type":"string"},"attachments":{"items":{"type":"string"},"type":"array"},"comments":{"type":"string"},"place_id":{"type":"string"}}},"ServiceStyle":{"type":"object"},"UpdateUserOpt":{"properties":{"new_value":{"type":"string"}},"type":"object"},"NewEvent":{"properties":{"is_approved":{"type":"boolean"},"flags":{"items":{"type":"string"},"type":"array"},"recurring_days":{"format":"date-time","type":"string"},"repeat":{"type":"boolean"},"day":{"type":"string","format":"date-time"},"copy_from":{"type":"integer"}},"type":"object"},"LocHash":{"type":"object","properties":{"es":{"type":"string"},"fr":{"type":"string"},"en":{"type":"string"},"en_US":{"type":"string"}}},"ServiceRequestItemOrder":{"type":"array","items":{"type":"integer"}},"ServiceRequestOpts":{"type":"object"},"EventList":{"type":"array","items":{"$ref":"#/definitions/Event"}},"AuthToken":{"properties":{"created_at":{"type":"string"},"id":{"type":"integer","format":"int64"},"expires_at":{"type":"string"},"jwt":{"type":"string"},"name":{"type":"string"}},"type":"object"},"ServiceRequestSlot":{"type":"object","properties":{"day":{"type":"string","format":"date"},"start_time":{"format":"date-time","type":"string"},"count":{"type":"integer"},"zone":{"type":"string"},"booked_count":{"type":"integer"},"end_time":{"format":"date-time","type":"string"}}},"PlaceData":{"type":"object","properties":{"service_id":{"type":"string"},"stored_at":{"type":"string"},"data":{"type":"object"},"place_id":{"type":"string"},"service":{"$ref":"#/definitions/Service"}}},"Link":{"type":"object","properties":{"shortname":{"type":"string"},"link_type":{"type":"string"},"created_at":{"type":"string"},"area_id":{"type":"integer"},"link_url":{"type":"string"},"link_img":{"type":"string"},"id":{"type":"integer"},"link_text":{"type":"string"}}},"NewHoliday":{"type":"object","properties":{"subject":{"$ref":"#/definitions/L10nHash"},"day":{"format":"date-time","type":"string"},"name":{"type":"string"},"html_message":{"$ref":"#/definitions/L10nHash"},"border_colour":{"type":"string"},"text_colour":{"type":"string"},"colour":{"type":"string"},"plain_text_message":{"$ref":"#/definitions/L10nHash"},"end_day":{"type":"string","format":"date-time"},"simple_text_message":{"$ref":"#/definitions/L10nHash"},"voice_message":{"$ref":"#/definitions/L10nHash"}}},"Area":{"type":"object","properties":{"name":{"type":"string"},"user_is_support":{"type":"boolean"},"user_is_admin":{"type":"boolean"},"title":{"type":"string"},"id":{"type":"integer"}}},"LinkList":{"items":{"$ref":"#/definitions/Link"},"type":"array"},"ServiceTemplate":{"properties":{"id":{"type":"integer"},"service_id":{"type":"integer"},"content":{"type":"string"},"name":{"type":"string"},"locale":{"type":"string"}},"type":"object"},"BulkReplaceEvents":{"type":"object","properties":{"oldflag":{"type":"string"},"newflags":{"items":{"type":"string"},"type":"array"},"after":{"type":"string","format":"datetime"},"before":{"format":"datetime","type":"string"},"zones":{"type":"array","items":{"type":"string"}}}},"ServiceRequest":{"properties":{"counts_towards_limit":{"enum":[1,0],"type":"integer"},"email_contact":{"type":"string"},"comments":{"type":"string"},"place":{"$ref":"#/definitions/Place"},"created_by":{"format":"email","type":"string"},"area_name":{"type":"string"},"pickup_ymd":{"type":"string","format":"date"},"created_at_localtime":{"format":"date-time","type":"string"},"created_at":{"format":"date-time","type":"string"},"parcel_info":{"type":"object"},"opts":{"type":"object"},"items":{"type":"array","items":{"$ref":"#/definitions/ServiceRequestItem"}},"updated_at":{"type":"string","format":"date-time"},"cancelled":{"type":"integer","enum":[1,0]},"external_id":{"type":"string"},"date":{"type":"string","format":"date-time"},"id":{"type":"integer"},"service_id":{"type":"integer"},"request_url":{"type":"string"},"place_url":{"type":"string"},"phone_contact":{"type":"string"},"updated_at_localtime":{"format":"date-time","type":"string"}},"type":"object"},"Reminder":{"type":"object","properties":{"service":{"$ref":"#/definitions/Service"},"zone":{"$ref":"#/definitions/Zone"},"next_event":{"$ref":"#/definitions/Event"},"zone_name":{"type":"string"},"confirmed":{"type":"boolean"},"id":{"type":"string"},"user":{"$ref":"#/definitions/User"},"place":{"$ref":"#/definitions/Place"},"target":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"place_name":{"type":"string"},"time_of_day":{"type":"string"},"last_notified":{"format":"date-time","type":"string"},"locale":{"type":"string"},"day_offset":{"type":"integer"},"disabled":{"type":"boolean"}}},"DeletePlaceData":{"properties":{"key":{"type":"string"}},"type":"object"},"PlaceEvent":{"type":"object","properties":{"place":{"$ref":"#/definitions/Place"},"include_message":{"type":"string"}}},"NewZone":{"properties":{"locale":{"type":"string"},"name":{"type":"string"},"is_empty":{"type":"boolean"},"geom":{"type":"object"},"title":{"type":"string"}},"type":"object"},"ServiceRequestMessaging":{"type":"object","properties":{"html_message":{"type":"string"},"subject":{"type":"string"}}},"BumpEvents":{"properties":{"after":{"format":"datetime","type":"string"},"before":{"type":"string","format":"datetime"},"zones":{"items":{"type":"string"},"type":"array"}},"type":"object"},"NewAlertPlaces":{"type":"object","properties":{"send_at":{"type":"string"},"message":{"type":"string"},"expires_at":{"type":"string"},"subject":{"type":"object"},"opts":{"type":"object"},"places":{"items":{"type":"string"},"type":"array"}}},"AuthTokenList":{"type":"array","items":{"$ref":"#/definitions/AuthToken"}},"Holiday":{"properties":{"subject":{"$ref":"#/definitions/L10nHash"},"icon":{"type":"string"},"day":{"format":"date-time","type":"string"},"type":{"type":"string"},"pattern":{"type":"string"},"html_message":{"$ref":"#/definitions/L10nHash"},"border_colour":{"type":"string"},"colour":{"type":"string"},"text_colour":{"type":"string"},"plain_text_message":{"$ref":"#/definitions/L10nHash"},"end_day":{"type":"string","format":"date-time"},"simple_text_message":{"$ref":"#/definitions/L10nHash"},"id":{"type":"integer"},"voice_message":{"$ref":"#/definitions/L10nHash"}},"type":"object"},"CampaignList":{"items":{"$ref":"#/definitions/Campaign"},"type":"array"},"AttachmentUpdateBody":{"type":"object","properties":{"uploaded":{"type":"boolean"}}},"Campaign":{"properties":{"subject":{"$ref":"#/definitions/LocHash"},"service":{"$ref":"#/definitions/Service"},"type":{"type":"string"},"html_message":{"$ref":"#/definitions/LocHash"},"meta":{"type":"object","properties":{"value":{"type":"string"},"field":{"type":"string"}}},"end_at":{"type":"string","format":"date-time"},"short_text_message":{"$ref":"#/definitions/LocHash"},"start_at":{"format":"date-time","type":"string"},"zones":{"$ref":"#/definitions/ZoneList"},"is_shared":{"type":"boolean"},"plain_text_message":{"$ref":"#/definitions/LocHash"},"label":{"type":"string"},"voice_message":{"$ref":"#/definitions/LocHash"},"id":{"type":"integer"}},"type":"object"},"ServiceRequestSlotCreate":{"properties":{"start_time":{"format":"date-time","type":"string"},"count":{"type":"integer"},"end_time":{"type":"string","format":"date-time"}},"type":"object"},"Account":{"type":"object","properties":{}},"PlaceService":{"type":"object","properties":{"service":{"$ref":"#/definitions/Service"},"place":{"$ref":"#/definitions/Place"}}},"NewAttachment":{"type":"object","properties":{"filename":{"type":"string"},"filesize":{"type":"integer"}}},"ServiceRequestItem":{"properties":{"count":{"type":"integer"},"subject":{"type":"string"},"html_message":{"type":"string"},"category":{"type":"object"},"sort_order":{"type":"integer"},"id":{"type":"integer"},"details":{"type":"string"},"opts":{"properties":{"pickup_location":{"type":"string"}},"type":"object"}},"type":"object"},"UpdateServiceRequestStatus":{"properties":{"status":{"type":"string"}},"type":"object"},"NewServiceRequest":{"type":"object","properties":{"process_name":{"type":"string"},"items":{"items":{"type":"integer"},"type":"array"},"skip_emails":{"type":"boolean"},"email":{"type":"string","format":"email"},"event_id":{"type":"integer"},"account":{"type":"string"},"phone":{"type":"string","format":"phone-number"},"comments":{"type":"string"},"counts_towards_limit":{"type":"boolean"}}},"EventFlagList":{"type":"array","items":{"$ref":"#/definitions/EventFlag"}},"UpdateReminder":{"properties":{"zone_name":{"type":"string"},"day_offset":{"type":"integer"},"confirmed":{"type":"boolean"},"user_email":{"type":"string"},"place_id":{"type":"string"},"target":{"type":"string"},"last_event":{"type":"integer"},"time_of_day":{"format":"duration","type":"string"}},"type":"object"},"BulkCopyEvents":{"type":"string"},"EventsZones":{"properties":{"zones":{"$ref":"#/definitions/ZoneList"},"events":{"$ref":"#/definitions/EventList"}},"type":"object"},"NewArea":{"type":"object","properties":{"name":{"type":"string"},"primary_locale":{"type":"string"},"tz":{"type":"string","format":"timezone"},"account_id":{"type":"integer"},"title":{"type":"string"},"service_title":{"type":"string"},"service_name":{"type":"string"}}},"UpdateZone":{"properties":{"is_empty":{"type":"string"},"description":{"$ref":"#/definitions/LocHash"},"link_uri":{"type":"string"},"title":{"$ref":"#/definitions/LocHash"},"desc_is_alert":{"type":"string"},"pdf_uri":{"type":"string"},"poly_colour":{"type":"string"},"show_when_empty":{"type":"string"},"line_colour":{"type":"string"},"geom":{"type":"string"},"opts":{"type":"string"},"priority":{"type":"integer"}},"type":"object"},"NewAuthToken":{"type":"object","properties":{"expires_at":{"type":"string"},"name":{"type":"string"}}}},"swagger":"2.0","basePath":"/api","info":{"title":"ReCollect API Reference Guide","version":"1.0.2","description":"<p>Visit the <a href=\"/admin/api/docs\" target=\"_blank\">API Docs</a> page for an overview of the api, details on Authentication and much more.</p>\n<p><ul>\n  <li><a href=\"/admin/api/getting-started\" class=\"btn\" target=\"_blank\">Getting Started</a></li>\n  <li><a href=\"/admin/api/docs\" class=\"btn\" target=\"_blank\">API Docs</a></li>\n  <li><a href=\"/admin/api/tokens\" class=\"btn\" target=\"_blank\">Auth Tokens</a></li>\n  <li><a href=\"https://support.routeware.com\" class=\"btn\" target=\"_blank\">Help Center</a></li>\n</ul></p>\n\n<h2>API Reference Guide</h2>\n<p>API Endpoints are grouped by functional area.  Expand and collapse the sections for more info.</p>\n"}}