{"components":{"responses":{},"schemas":{"RequestType":{"description":"A helpdesk form (request type): what the portal offers, who may send it, and the fields it asks for, in order.","properties":{"archived":{"description":"Retired: no longer offered","type":"boolean"},"description":{"nullable":true,"type":"string"},"fields":{"items":{"$ref":"#/components/schemas/FormField"},"type":"array"},"help_text":{"nullable":true,"type":"string"},"hidden":{"description":"Hidden from the portal","type":"boolean"},"id":{"format":"uuid","type":"string"},"key":{"type":"string"},"name":{"type":"string"},"portal_group":{"nullable":true,"type":"string"},"position":{"type":"integer"},"submission":{"description":"authenticated: people signed in; open: anyone, with no account","enum":["authenticated","open"],"type":"string"},"ticket_type":{"nullable":true,"type":"string"}},"required":["id","key","name","description","help_text","portal_group","hidden","submission","ticket_type","position","archived","fields"],"title":"RequestType","type":"object"},"PageRequest":{"description":"A page's words and settings; a change leaves out what it does not give.","properties":{"body":{"description":"Markdown","type":"string"},"draft":{"description":"Seen only by its author and those who manage the space until published","type":"boolean"},"message":{"description":"A note for the page's history","type":"string"},"published":{"description":"Customers may read it, where the space allows","type":"boolean"},"title":{"type":"string"}},"title":"PageRequest","type":"object"},"StopActivityRequest":{"description":"When the activity ended; now when the body is empty.","properties":{"end":{"description":"When it ended: ISO 8601 with an offset, a local time in timezone, or HH:MM on the start's day; now when left out","type":"string"},"timezone":{"description":"An IANA time zone such as Europe/Berlin: required with a day or a local time, not with a time that carries an offset","type":"string"}},"title":"StopActivityRequest","type":"object"},"BoardDetail":{"allOf":[{"$ref":"#/components/schemas/Board"},{"properties":{"columns":{"items":{"$ref":"#/components/schemas/Column"},"type":"array"},"done_retention_days":{"description":"How many days done tickets stay on the board; null keeps them always","nullable":true,"type":"integer"},"hidden_done":{"description":"Done tickets left off for being done longer than done_retention_days","type":"integer"},"sprint":{"allOf":[{"$ref":"#/components/schemas/Sprint"}],"nullable":true},"unmapped":{"type":"integer"}},"required":["sprint","columns","unmapped","hidden_done","done_retention_days"],"type":"object"}],"description":"A board's columns and cards.","title":"BoardDetail","type":"object"},"PageSummary":{"description":"A page in a list: enough to choose one, without its body.","properties":{"archived":{"description":"In answer to a delete","type":"boolean"},"edited_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["page","folder","blog_post"],"type":"string"},"passage":{"description":"In search results: where the words were found","type":"string"},"slug":{"type":"string"},"space":{"type":"string"},"status":{"enum":["current","draft","archived","trashed"],"type":"string"},"title":{"type":"string"},"version":{"type":"integer"}},"required":["id","space","slug","title","kind","status","version","edited_at"],"title":"PageSummary","type":"object"},"CreatePageRequest":{"allOf":[{"$ref":"#/components/schemas/PageRequest"},{"properties":{"kind":{"description":"page when left out","enum":["page","folder","blog_post"],"type":"string"},"parent":{"description":"A page's slug or id; the top of the space when left out","nullable":true,"type":"string"}},"type":"object"}],"description":"A new page, folder or blog post, and where in the space it goes.","required":["title"],"title":"CreatePageRequest","type":"object"},"Ticket":{"allOf":[{"$ref":"#/components/schemas/TicketSummary"},{"properties":{"affected_versions":{"items":{"type":"string"},"type":"array"},"components":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"date-time","nullable":true,"type":"string"},"deal":{"$ref":"#/components/schemas/Deal"},"description":{"allOf":[{"$ref":"#/components/schemas/RichText"}],"nullable":true},"due_date":{"format":"date","nullable":true,"type":"string"},"environment":{"allOf":[{"$ref":"#/components/schemas/RichText"}],"nullable":true},"fields":{"additionalProperties":{"type":"string"},"description":"The ticket's custom fields that have a value, by key, as its page shows them","type":"object"},"fix_versions":{"items":{"type":"string"},"type":"array"},"original_estimate_seconds":{"nullable":true,"type":"integer"},"parent":{"nullable":true,"type":"string"},"remaining_estimate_seconds":{"nullable":true,"type":"integer"},"reporter":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"request_type":{"nullable":true,"type":"string"},"resolution":{"nullable":true,"type":"string"},"resolved_at":{"format":"date-time","nullable":true,"type":"string"},"security_level":{"nullable":true,"type":"string"},"time_spent_seconds":{"nullable":true,"type":"integer"}},"required":["description","environment","resolution","reporter","parent","components","fix_versions","affected_versions","security_level","request_type","due_date","created_at","resolved_at","original_estimate_seconds","remaining_estimate_seconds","time_spent_seconds"],"type":"object"}],"description":"A ticket with every field its page shows.","title":"Ticket","type":"object"},"ErrorDetail":{"description":"","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"title":"ErrorDetail","type":"object"},"SprintRequest":{"description":"A sprint's fields.","properties":{"end_date":{"description":"YYYY-MM-DD or an ISO 8601 time","type":"string"},"goal":{"nullable":true,"type":"string"},"name":{"type":"string"},"start_date":{"description":"YYYY-MM-DD or an ISO 8601 time","type":"string"}},"title":"SprintRequest","type":"object"},"FormField":{"description":"A field a helpdesk form can ask for: summary, description, priority or a custom field's key.","properties":{"displayed":{"type":"boolean"},"field":{"type":"string"},"label":{"nullable":true,"type":"string"},"name":{"nullable":true,"type":"string"},"required":{"type":"boolean"}},"required":["field","name","displayed","required","label"],"title":"FormField","type":"object"},"TransitionRequest":{"description":"A move through the workflow.","properties":{"assignee":{"description":"For a transition whose screen asks for one: me, a name, an email address or an id","type":"string"},"comment":{"description":"Markdown","type":"string"},"comment_internal":{"description":"In a helpdesk project, makes the comment an internal note the customer does not see","type":"boolean"},"fields":{"additionalProperties":true,"description":"Custom fields the transition asks for, by key, such as {\"lost_reason\": \"Price\"} when a deal is lost: a choice by its words, anything else as it would be typed","type":"object"},"resolution":{"description":"For a transition that asks for one, such as Done","type":"string"},"transition":{"description":"A transition's name or id, or the status it leads to","type":"string"}},"required":["transition"],"title":"TransitionRequest","type":"object"},"ContactDetail":{"allOf":[{"$ref":"#/components/schemas/Contact"},{"properties":{"consent":{"description":"Their latest answer for each purpose they were asked about; a purpose absent here was never asked, which counts as no","items":{"properties":{"granted":{"type":"boolean"},"purpose":{"type":"string"},"recorded_at":{"format":"date-time","type":"string"}},"required":["purpose","granted","recorded_at"],"type":"object"},"type":"array"},"created_at":{"format":"date-time","type":"string"},"emails":{"items":{"properties":{"address":{"type":"string"},"label":{"type":"string"},"primary":{"type":"boolean"}},"required":["address","label","primary"],"type":"object"},"type":"array"},"fields":{"additionalProperties":{"type":"string"},"description":"Their custom fields that have a value, by the field's name","type":"object"},"has_account":{"description":"Whether the person has an account here, as a helpdesk customer does","type":"boolean"},"notes":{"allOf":[{"$ref":"#/components/schemas/RichText"}],"nullable":true},"phones":{"items":{"properties":{"label":{"type":"string"},"number":{"type":"string"},"primary":{"type":"boolean"}},"required":["number","label","primary"],"type":"object"},"type":"array"},"postal_addresses":{"items":{"properties":{"label":{"type":"string"},"lines":{"items":{"type":"string"},"type":"array"}},"required":["label","lines"],"type":"object"},"type":"array"},"source":{"type":"string"}},"required":["emails","phones","postal_addresses","notes","source","has_account","created_at","fields","consent"],"type":"object"}],"description":"A contact with every address and number, their notes, their custom fields and what they have agreed to.","title":"ContactDetail","type":"object"},"ActivityDetail":{"allOf":[{"$ref":"#/components/schemas/Activity"},{"properties":{"history":{"items":{"properties":{"actor":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"at":{"format":"date-time","type":"string"},"changes":{"items":{"properties":{"field":{"type":"string"},"from":{"nullable":true},"to":{"nullable":true}},"required":["field"],"type":"object"},"type":"array"},"kind":{"type":"string"},"via":{"description":"The agent that made the change, when one did","nullable":true,"type":"string"}},"required":["kind","at","actor","via","changes"],"type":"object"},"type":"array"}},"required":["history"],"type":"object"}],"description":"An activity and every change made to it, oldest first.","title":"ActivityDetail","type":"object"},"Space":{"description":"A knowledge base space, and what the member may do in it.","properties":{"can_edit":{"description":"Holds knowledge:edit","type":"boolean"},"can_manage":{"description":"Holds knowledge:manage","type":"boolean"},"home_page":{"description":"The home page's slug","nullable":true,"type":"string"},"key":{"type":"string"},"kind":{"enum":["global","personal"],"type":"string"},"name":{"type":"string"},"project":{"description":"The project's key, for a project's space","nullable":true,"type":"string"},"source":{"enum":["native","confluence","git","import"],"type":"string"}},"required":["key","name","kind","project","source","home_page","can_edit","can_manage"],"title":"Space","type":"object"},"Sprint":{"description":"A sprint.","properties":{"completed_at":{"format":"date-time","nullable":true,"type":"string"},"end_at":{"format":"date-time","nullable":true,"type":"string"},"goal":{"nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"start_at":{"format":"date-time","nullable":true,"type":"string"},"state":{"enum":["future","active","closed"],"type":"string"}},"required":["id","name","goal","state","start_at","end_at","completed_at"],"title":"Sprint","type":"object"},"DeletedSprint":{"description":"The sprint that was deleted.","properties":{"deleted":{"$ref":"#/components/schemas/Sprint"}},"required":["deleted"],"title":"DeletedSprint","type":"object"},"Activity":{"description":"An activity: what was done, when it started and ended (UTC), how long it took, and what it belongs to.","properties":{"author":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"billable":{"type":"boolean"},"created_at":{"format":"date-time","nullable":true,"type":"string"},"customer":{"nullable":true,"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"description":{"nullable":true,"type":"string"},"edited_at":{"format":"date-time","nullable":true,"type":"string"},"ended_at":{"format":"date-time","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"locked":{"type":"boolean"},"note":{"allOf":[{"$ref":"#/components/schemas/RichText"}],"nullable":true},"project":{"nullable":true,"properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"type":"object"},"running":{"type":"boolean"},"started_at":{"format":"date-time","type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"ticket":{"nullable":true,"properties":{"key":{"type":"string"},"summary":{"type":"string"}},"required":["key","summary"],"type":"object"},"time_spent":{"description":"The same, in words: \"1h 30m\"","nullable":true,"type":"string"},"time_spent_seconds":{"nullable":true,"type":"integer"}},"required":["id","description","started_at","ended_at","running","time_spent_seconds","time_spent","tags","project","customer","ticket","note","billable","locked","author","created_at","edited_at"],"title":"Activity","type":"object"},"Transition":{"description":"A workflow transition the member can take.","properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"to_status":{"$ref":"#/components/schemas/Status"}},"required":["id","name","to_status"],"title":"Transition","type":"object"},"RichText":{"description":"Text with the format it was written in. `markdown` is present for jira_wiki text: the Markdown an edit starts from.","properties":{"format":{"enum":["markdown","jira_wiki","html","plain","confluence_storage"],"type":"string"},"markdown":{"type":"string"},"text":{"type":"string"}},"required":["format","text"],"title":"RichText","type":"object"},"Comment":{"description":"A comment the member may read.","properties":{"author":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"body":{"allOf":[{"$ref":"#/components/schemas/RichText"}],"nullable":true},"created_at":{"format":"date-time","nullable":true,"type":"string"},"edited_at":{"format":"date-time","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"visibility":{"enum":["public","internal","restricted"],"type":"string"}},"required":["id","author","body","visibility","created_at","edited_at"],"title":"Comment","type":"object"},"Error":{"description":"Why a request was refused: a code for programs and a sentence for people.","properties":{"error":{"description":"","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"title":"ErrorDetail","type":"object"}},"required":["error"],"title":"Error","type":"object"},"TicketDetail":{"allOf":[{"$ref":"#/components/schemas/Ticket"},{"properties":{"comments":{"items":{"$ref":"#/components/schemas/Comment"},"type":"array"},"links":{"items":{"$ref":"#/components/schemas/Link"},"type":"array"},"subtasks":{"items":{"$ref":"#/components/schemas/TicketSummary"},"type":"array"},"transitions":{"items":{"$ref":"#/components/schemas/Transition"},"type":"array"},"worklogs":{"items":{"$ref":"#/components/schemas/Worklog"},"type":"array"}},"required":["comments","worklogs","links","subtasks","transitions"],"type":"object"}],"description":"A ticket with its comments, logged activities, links, sub-tasks and the transitions the member can take now.","title":"TicketDetail","type":"object"},"RequestTypeList":{"description":"A project's helpdesk forms in portal order, and what the member may do to them.","properties":{"can_manage":{"description":"Holds helpdesk:forms","type":"boolean"},"can_publish":{"description":"Holds helpdesk:publish","type":"boolean"},"project":{"type":"string"},"request_types":{"items":{"$ref":"#/components/schemas/RequestType"},"type":"array"}},"required":["project","can_manage","can_publish","request_types"],"title":"RequestTypeList","type":"object"},"PhaseList":{"description":"The phases (billing periods) the member may see, newest first. A rate is given only where the member may see billing.","properties":{"phases":{"items":{"properties":{"contract":{"nullable":true,"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"currency":{"nullable":true,"type":"string"},"customer":{"nullable":true,"type":"string"},"end_date":{"format":"date","type":"string"},"hours_per_day":{"type":"string"},"id":{"format":"uuid","type":"string"},"max_days_available":{"nullable":true,"type":"integer"},"name":{"type":"string"},"project":{"description":"A project key","nullable":true,"type":"string"},"rate":{"description":"An hourly rate, as a decimal string","nullable":true,"type":"string"},"start_date":{"format":"date","type":"string"}},"required":["id","name","start_date","end_date","contract","customer","project","rate","currency","max_days_available","hours_per_day"],"type":"object"},"type":"array"}},"required":["phases"],"title":"PhaseList","type":"object"},"StartSprintRequest":{"description":"When the sprint runs.","properties":{"end_date":{"description":"YYYY-MM-DD or an ISO 8601 time","type":"string"},"start_date":{"description":"YYYY-MM-DD or an ISO 8601 time","type":"string"}},"title":"StartSprintRequest","type":"object"},"ActivityList":{"description":"A page of activities, newest first, and the zone their days were counted in.","properties":{"activities":{"items":{"$ref":"#/components/schemas/Activity"},"type":"array"},"limit":{"type":"integer"},"offset":{"type":"integer"},"timezone":{"type":"string"}},"required":["activities","limit","offset","timezone"],"title":"ActivityList","type":"object"},"Backlog":{"description":"Open sprints with their tickets, then the backlog.","properties":{"backlog":{"items":{"$ref":"#/components/schemas/TicketSummary"},"type":"array"},"board":{"type":"integer"},"sprints":{"items":{"$ref":"#/components/schemas/SprintWithTickets"},"type":"array"}},"required":["board","sprints","backlog"],"title":"Backlog","type":"object"},"DeletedActivity":{"description":"The activity is deleted: it leaves every list and total, and its history says so.","properties":{"deleted":{"type":"boolean"},"id":{"format":"uuid","type":"string"}},"required":["id","deleted"],"title":"DeletedActivity","type":"object"},"Status":{"description":"A workflow status and its category.","properties":{"category":{"enum":["todo","in_progress","done"],"nullable":true,"type":"string"},"name":{"type":"string"}},"required":["name","category"],"title":"Status","type":"object"},"InteractionList":{"description":"A page of the interactions about a contact, a company or a ticket, newest first.","properties":{"interactions":{"items":{"$ref":"#/components/schemas/Interaction"},"type":"array"},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["interactions","limit","offset"],"title":"InteractionList","type":"object"},"Company":{"description":"A company the workspace knows: an organization, which may or may not be a customer.","properties":{"archived":{"type":"boolean"},"customer":{"type":"boolean"},"domains":{"items":{"type":"string"},"type":"array"},"id":{"format":"uuid","type":"string"},"industry":{"nullable":true,"type":"string"},"name":{"type":"string"},"owner":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"size":{"nullable":true,"type":"string"},"stage":{"enum":["lead","prospect","customer","former"],"type":"string"},"url":{"format":"uri","type":"string"},"website":{"nullable":true,"type":"string"}},"required":["id","name","domains","stage","industry","size","website","owner","customer","archived","url"],"title":"Company","type":"object"},"Worklog":{"description":"An activity logged on a ticket; Jira calls it a worklog.","properties":{"author":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"body":{"allOf":[{"$ref":"#/components/schemas/RichText"}],"nullable":true},"created_at":{"format":"date-time","nullable":true,"type":"string"},"edited_at":{"format":"date-time","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"started_at":{"format":"date-time","type":"string"},"time_spent":{"description":"The same, in words: \"1h 30m\"","type":"string"},"time_spent_seconds":{"type":"integer"}},"required":["id","author","started_at","time_spent_seconds","time_spent","body","created_at","edited_at"],"title":"Worklog","type":"object"},"OrganizationList":{"description":"The organizations (customers) of the workspace, by name.","properties":{"organizations":{"items":{"properties":{"domains":{"items":{"type":"string"},"type":"array"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"}},"required":["id","name","domains"],"type":"object"},"type":"array"}},"required":["organizations"],"title":"OrganizationList","type":"object"},"Project":{"description":"A project.","properties":{"description":{"nullable":true,"type":"string"},"key":{"type":"string"},"kind":{"enum":["software","helpdesk","business","sales"],"type":"string"},"name":{"type":"string"}},"required":["key","name","kind","description"],"title":"Project","type":"object"},"Me":{"description":"The member a token acts for, and the token.","properties":{"agent":{"description":"The token's name and access.","properties":{"access":{"enum":["read","write"],"type":"string"},"name":{"type":"string"}},"required":["name","access"],"title":"Agent","type":"object"},"user":{"$ref":"#/components/schemas/Person"}},"required":["user","agent"],"title":"Me","type":"object"},"Board":{"description":"A board, named by its number.","properties":{"kind":{"enum":["scrum","kanban"],"type":"string"},"name":{"type":"string"},"number":{"type":"integer"},"owner":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"projects":{"items":{"type":"string"},"type":"array"},"url":{"format":"uri","type":"string"}},"required":["number","name","kind","projects","owner","url"],"title":"Board","type":"object"},"RequestTypeOrderRequest":{"description":"Forms by key, name or id in the order the portal shows them; others follow.","properties":{"order":{"description":"Forms by key, name or id; those not named follow","items":{"type":"string"},"type":"array"}},"required":["order"],"title":"RequestTypeOrderRequest","type":"object"},"ContactRequest":{"description":"A new contact, with a first address and number if they are known.","properties":{"company":{"description":"A company's name or id","nullable":true,"type":"string"},"email":{"description":"Their first address, made primary","type":"string"},"job_title":{"nullable":true,"type":"string"},"name":{"maxLength":255,"type":"string"},"notes":{"description":"Markdown","nullable":true,"type":"string"},"owner":{"description":"me, a member's name or id","nullable":true,"type":"string"},"phone":{"description":"Their first number, made primary","type":"string"},"stage":{"enum":["lead","qualified","customer","former"],"type":"string"}},"required":["name"],"title":"ContactRequest","type":"object"},"SprintList":{"description":"Every sprint of a board.","properties":{"board":{"type":"integer"},"can_manage":{"type":"boolean"},"sprints":{"items":{"$ref":"#/components/schemas/Sprint"},"type":"array"}},"required":["board","can_manage","sprints"],"title":"SprintList","type":"object"},"PageTree":{"description":"A space's current pages and folders in the tree's order, each with its parent's slug and its depth.","properties":{"pages":{"items":{"properties":{"depth":{"type":"integer"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["page","folder"],"type":"string"},"parent":{"nullable":true,"type":"string"},"slug":{"type":"string"},"title":{"type":"string"}},"required":["id","slug","title","kind","parent","depth"],"type":"object"},"type":"array"},"space":{"type":"string"}},"required":["space","pages"],"title":"PageTree","type":"object"},"PageSearchResults":{"description":"The pages that match, best first, each with the passage it matched.","properties":{"pages":{"items":{"$ref":"#/components/schemas/PageSummary"},"type":"array"}},"required":["pages"],"title":"PageSearchResults","type":"object"},"Page":{"allOf":[{"$ref":"#/components/schemas/PageSummary"},{"properties":{"author":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"backlinks":{"items":{"$ref":"#/components/schemas/PageSummary"},"type":"array"},"body":{"allOf":[{"$ref":"#/components/schemas/RichText"}],"nullable":true},"created_at":{"format":"date-time","type":"string"},"editor":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"labels":{"items":{"type":"string"},"type":"array"},"parent":{"description":"The parent's slug","nullable":true,"type":"string"},"path":{"description":"The titles above it, top first","items":{"type":"string"},"type":"array"},"published":{"type":"boolean"},"text":{"description":"The page's words, whatever its format","type":"string"},"tickets":{"items":{"properties":{"key":{"type":"string"},"summary":{"type":"string"}},"required":["key","summary"],"type":"object"},"type":"array"}},"required":["created_at","body","text","published","author","editor","parent","path","labels","backlinks","tickets"],"type":"object"}],"description":"A page whole: its body as stored with its format (never converted), its words as text, its place in the tree, what links to it and the tickets it mentions. Give its version back with a change to refuse a lost update.","title":"Page","type":"object"},"ContactList":{"description":"A page of contacts, newest first, and how many match in all.","properties":{"contacts":{"items":{"$ref":"#/components/schemas/Contact"},"type":"array"},"limit":{"type":"integer"},"offset":{"type":"integer"},"total":{"type":"integer"}},"required":["contacts","total","limit","offset"],"title":"ContactList","type":"object"},"Link":{"description":"A link to another ticket, read from this one.","properties":{"relation":{"type":"string"},"status":{"allOf":[{"$ref":"#/components/schemas/Status"}],"nullable":true},"summary":{"type":"string"},"ticket":{"type":"string"}},"required":["relation","ticket","summary","status"],"title":"Link","type":"object"},"RequestTypeRequest":{"description":"A helpdesk form's settings; a change leaves out what it does not give.","properties":{"description":{"nullable":true,"type":"string"},"fields":{"description":"The form's fields in order (summary, description, priority or a custom field's key); given, it replaces them","items":{"properties":{"displayed":{"default":true,"type":"boolean"},"field":{"type":"string"},"label":{"nullable":true,"type":"string"},"required":{"default":false,"type":"boolean"}},"required":["field"],"type":"object"},"type":"array"},"help_text":{"description":"Shown above the form","nullable":true,"type":"string"},"hidden":{"description":"Hidden from the portal","type":"boolean"},"key":{"description":"Letters, digits, dashes and underscores","type":"string"},"name":{"type":"string"},"portal_group":{"nullable":true,"type":"string"},"submission":{"description":"authenticated: people signed in; open: anyone with no account, which needs helpdesk:publish","enum":["authenticated","open"],"type":"string"},"ticket_type":{"description":"The ticket type's name","type":"string"}},"title":"RequestTypeRequest","type":"object"},"MoveToSprintRequest":{"description":"A ticket planned into a sprint or the backlog.","properties":{"after":{"type":"string"},"before":{"type":"string"},"key":{"type":"string"},"sprint":{"description":"An open sprint's name or id, or backlog","type":"string"}},"required":["key","sprint"],"title":"MoveToSprintRequest","type":"object"},"ContactEmailRequest":{"description":"An email address for a contact. An address belongs to one contact.","properties":{"address":{"type":"string"},"label":{"default":"work","enum":["work","home","other"],"type":"string"},"primary":{"description":"Make it their first address","type":"boolean"}},"required":["address"],"title":"ContactEmailRequest","type":"object"},"ContactPhoneRequest":{"description":"A phone number for a contact, kept as it is written.","properties":{"label":{"default":"work","enum":["work","home","mobile","other"],"type":"string"},"number":{"type":"string"},"primary":{"description":"Make it their first number","type":"boolean"}},"required":["number"],"title":"ContactPhoneRequest","type":"object"},"TicketSummary":{"description":"A ticket in a list: enough to choose one.","properties":{"assignee":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"key":{"type":"string"},"labels":{"items":{"type":"string"},"type":"array"},"priority":{"nullable":true,"type":"string"},"project":{"nullable":true,"type":"string"},"status":{"allOf":[{"$ref":"#/components/schemas/Status"}],"nullable":true},"summary":{"type":"string"},"type":{"nullable":true,"type":"string"},"updated_at":{"format":"date-time","nullable":true,"type":"string"},"url":{"format":"uri","type":"string"}},"required":["key","summary","project","type","status","priority","assignee","labels","updated_at","url"],"title":"TicketSummary","type":"object"},"UpdateActivityRequest":{"allOf":[{"$ref":"#/components/schemas/ActivityRequest"}],"description":"The fields to change; the rest stay. null (or \"\") for project, customer or ticket clears it.","title":"UpdateActivityRequest","type":"object"},"UpdateCompanyRequest":{"description":"The CRM details to change; the rest stay. Billing details and whether it is a customer are an administrator's.","properties":{"description":{"description":"Markdown","nullable":true,"type":"string"},"domains":{"description":"Its email domains, which replace those it had","items":{"type":"string"},"type":"array"},"industry":{"nullable":true,"type":"string"},"name":{"maxLength":255,"type":"string"},"owner":{"description":"me, a member's name or id","nullable":true,"type":"string"},"size":{"enum":["1-10","11-50","51-200","201-1000","1000+",null],"nullable":true,"type":"string"},"stage":{"enum":["lead","prospect","customer","former"],"type":"string"},"website":{"nullable":true,"type":"string"}},"title":"UpdateCompanyRequest","type":"object"},"CompanyList":{"description":"A page of companies, by name, and how many match in all.","properties":{"companies":{"items":{"$ref":"#/components/schemas/Company"},"type":"array"},"limit":{"type":"integer"},"offset":{"type":"integer"},"total":{"type":"integer"}},"required":["companies","total","limit","offset"],"title":"CompanyList","type":"object"},"Column":{"description":"A board column with its cards in board order.","properties":{"index":{"type":"integer"},"max":{"nullable":true,"type":"integer"},"min":{"nullable":true,"type":"integer"},"name":{"nullable":true,"type":"string"},"statuses":{"items":{"type":"string"},"type":"array"},"tickets":{"items":{"$ref":"#/components/schemas/TicketSummary"},"type":"array"}},"required":["index","name","statuses","min","max","tickets"],"title":"Column","type":"object"},"Person":{"description":"Someone, by id and name. Never an email address.","properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}},"required":["id","name"],"title":"Person","type":"object"},"InteractionRequest":{"description":"An interaction to log about a contact, a company or a ticket: give at least one. With a ticket or a company, contact says who it was with. A moment with an offset stands alone; a local one needs timezone.","properties":{"assignee":{"description":"For a task: me, a member's name or id; the member when left out","type":"string"},"body":{"description":"Markdown","type":"string"},"company":{"description":"A company's id or name","type":"string"},"contact":{"description":"A contact's id","type":"string"},"due_at":{"description":"For a task: when it is due, as occurred_at","type":"string"},"duration":{"description":"\"30m\", \"1h 15m\"","type":"string"},"kind":{"enum":["note","call","meeting","task"],"type":"string"},"occurred_at":{"description":"When it happened, or will for a call or meeting ahead: ISO 8601 with an offset, or a local YYYY-MM-DDTHH:MM in timezone; now when left out","type":"string"},"subject":{"maxLength":255,"type":"string"},"ticket":{"description":"A deal's or ticket's key","type":"string"},"timezone":{"description":"An IANA time zone such as Europe/Berlin: required with a day or a local time, not with a time that carries an offset","type":"string"}},"required":["kind","subject"],"title":"InteractionRequest","type":"object"},"FollowUpList":{"description":"The open follow-ups assigned to the member, the soonest due first and those with no due moment last.","properties":{"follow_ups":{"items":{"$ref":"#/components/schemas/Interaction"},"type":"array"}},"required":["follow_ups"],"title":"FollowUpList","type":"object"},"SprintWithTickets":{"allOf":[{"$ref":"#/components/schemas/Sprint"},{"properties":{"tickets":{"items":{"$ref":"#/components/schemas/TicketSummary"},"type":"array"}},"required":["tickets"],"type":"object"}],"description":"An open sprint with its tickets.","title":"SprintWithTickets","type":"object"},"MovePageRequest":{"description":"The page's new parent (null for the top of the space) and, among its new siblings, the page it goes before or after; the end when neither.","properties":{"after":{"description":"A sibling's slug or id","type":"string"},"before":{"description":"A sibling's slug or id","type":"string"},"parent":{"description":"A page's slug or id, or null for the top of the space","nullable":true,"type":"string"}},"title":"MovePageRequest","type":"object"},"AssignRequest":{"description":"A new assignee.","properties":{"assignee":{"description":"me, a name, an email address or an id; null unassigns","nullable":true,"type":"string"},"comment":{"description":"Markdown","type":"string"}},"required":["assignee"],"title":"AssignRequest","type":"object"},"LoggedWork":{"allOf":[{"$ref":"#/components/schemas/Worklog"},{"properties":{"ticket":{"properties":{"key":{"type":"string"},"remaining_estimate_seconds":{"nullable":true,"type":"integer"},"time_spent_seconds":{"type":"integer"}},"required":["key","time_spent_seconds","remaining_estimate_seconds"],"type":"object"}},"required":["ticket"],"type":"object"}],"description":"The activity just logged, with the ticket's time spent and remaining estimate after it.","title":"LoggedWork","type":"object"},"CommentRequest":{"description":"A comment.","properties":{"body":{"description":"Markdown","type":"string"},"internal":{"description":"In a helpdesk project, an internal note the customer does not see","type":"boolean"}},"required":["body"],"title":"CommentRequest","type":"object"},"MoveCardRequest":{"description":"A card move on a board.","properties":{"after":{"description":"Land after this ticket (a key)","type":"string"},"assignee":{"description":"me, a name, an email address or an id","type":"string"},"before":{"description":"Land before this ticket (a key)","type":"string"},"column":{"description":"A column's name, or its index from 0","oneOf":[{"type":"string"},{"type":"integer"}]},"comment":{"description":"Markdown","type":"string"},"comment_internal":{"description":"In a helpdesk project, makes the comment an internal note the customer does not see","type":"boolean"},"fields":{"additionalProperties":true,"description":"Custom fields the move's transition asks for, by key, such as {\"lost_reason\": \"Price\"}: a choice by its words, anything else as it would be typed","type":"object"},"key":{"description":"The ticket's key","type":"string"},"resolution":{"type":"string"}},"required":["key","column"],"title":"MoveCardRequest","type":"object"},"Contact":{"description":"A person the workspace deals with: who they are, where they work and their primary address.","properties":{"archived":{"type":"boolean"},"company":{"allOf":[{"$ref":"#/components/schemas/Reference"}],"nullable":true},"email":{"description":"Their primary address","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"job_title":{"nullable":true,"type":"string"},"name":{"type":"string"},"owner":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"stage":{"enum":["lead","qualified","customer","former"],"type":"string"},"url":{"format":"uri","type":"string"}},"required":["id","name","job_title","stage","company","owner","email","archived","url"],"title":"Contact","type":"object"},"Agent":{"description":"The token's name and access.","properties":{"access":{"enum":["read","write"],"type":"string"},"name":{"type":"string"}},"required":["name","access"],"title":"Agent","type":"object"},"CompanyDetail":{"allOf":[{"$ref":"#/components/schemas/Company"},{"properties":{"contacts":{"items":{"$ref":"#/components/schemas/Contact"},"type":"array"},"deals":{"properties":{"closed":{"items":{"properties":{"assignee":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"currency":{"nullable":true,"type":"string"},"expected_close":{"format":"date","nullable":true,"type":"string"},"key":{"type":"string"},"probability":{"nullable":true,"type":"string"},"status":{"allOf":[{"$ref":"#/components/schemas/Status"}],"nullable":true},"summary":{"type":"string"},"value":{"nullable":true,"type":"string"}},"required":["key","summary","status","assignee","value","currency","expected_close","probability"],"type":"object"},"type":"array"},"open":{"items":{"properties":{"assignee":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"currency":{"nullable":true,"type":"string"},"expected_close":{"format":"date","nullable":true,"type":"string"},"key":{"type":"string"},"probability":{"nullable":true,"type":"string"},"status":{"allOf":[{"$ref":"#/components/schemas/Status"}],"nullable":true},"summary":{"type":"string"},"value":{"nullable":true,"type":"string"}},"required":["key","summary","status","assignee","value","currency","expected_close","probability"],"type":"object"},"type":"array"}},"required":["open","closed"],"type":"object"},"description":{"allOf":[{"$ref":"#/components/schemas/RichText"}],"nullable":true}},"required":["description","contacts","deals"],"type":"object"}],"description":"A company with its description, its contacts and its deals as far as the member may see them.","title":"CompanyDetail","type":"object"},"UpdateTicketRequest":{"description":"The fields to change; the rest stay as they are.","properties":{"assignee":{"description":"me, a name, an email address or an id; null unassigns","nullable":true,"type":"string"},"company":{"description":"For a deal: the company's name or id; null clears it","nullable":true,"type":"string"},"components":{"items":{"type":"string"},"type":"array"},"description":{"description":"Markdown; replaces the description","type":"string"},"due_date":{"format":"date","nullable":true,"type":"string"},"fields":{"additionalProperties":true,"description":"Custom fields by key, such as {\"deal_value\": \"12000\", \"deal_currency\": \"EUR\"}: a choice by its words, anything else as it would be typed","type":"object"},"labels":{"items":{"type":"string"},"type":"array"},"parent":{"description":"The parent ticket's key; null clears it","nullable":true,"type":"string"},"priority":{"type":"string"},"summary":{"type":"string"},"type":{"description":"A ticket type's name","type":"string"}},"title":"UpdateTicketRequest","type":"object"},"ProjectList":{"description":"The projects the member can see.","properties":{"projects":{"items":{"$ref":"#/components/schemas/Project"},"type":"array"}},"required":["projects"],"title":"ProjectList","type":"object"},"CompletedSprint":{"allOf":[{"$ref":"#/components/schemas/Sprint"},{"properties":{"moved":{"items":{"type":"string"},"type":"array"}},"required":["moved"],"type":"object"}],"description":"A completed sprint and the keys of the unfinished tickets that moved on.","title":"CompletedSprint","type":"object"},"ActivityRequest":{"description":"An activity to record. Give end or duration for one that has finished; neither makes a running activity. A time with an offset stands alone; a local time or a day needs timezone.","properties":{"billable":{"type":"boolean"},"customer":{"description":"A customer's name","nullable":true,"type":"string"},"description":{"description":"What was done","maxLength":500,"nullable":true,"type":"string"},"duration":{"description":"Instead of end: \"1h 30m\", \"45m\", \"2d\"; a day is 8 hours","type":"string"},"end":{"description":"When it ended: as start, or HH:MM alone on the start's day (the next day when earlier); leave end and duration out for a running activity","type":"string"},"note":{"description":"A note, in Markdown","nullable":true,"type":"string"},"project":{"description":"A project's key or name","nullable":true,"type":"string"},"start":{"description":"When it began: ISO 8601 with an offset, or a local YYYY-MM-DDTHH:MM in timezone; now when left out","type":"string"},"tags":{"description":"The activity's labels; one that is a ticket's key links the ticket","items":{"type":"string"},"type":"array"},"ticket":{"description":"A ticket key","nullable":true,"type":"string"},"timezone":{"description":"An IANA time zone such as Europe/Berlin: required with a day or a local time, not with a time that carries an offset","type":"string"}},"title":"ActivityRequest","type":"object"},"TicketList":{"description":"A page of tickets.","properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"tickets":{"items":{"$ref":"#/components/schemas/TicketSummary"},"type":"array"},"total":{"type":"integer"}},"required":["total","limit","offset","tickets"],"title":"TicketList","type":"object"},"UpdatePageRequest":{"allOf":[{"$ref":"#/components/schemas/PageRequest"},{"properties":{"version":{"description":"The version the change was made from; refused with 409 when somebody saved since","type":"integer"}},"type":"object"}],"description":"The words and settings to change; the rest stay. A page is moved with its own operation.","title":"UpdatePageRequest","type":"object"},"CompleteSprintRequest":{"description":"Where unfinished tickets go.","properties":{"move_open_to":{"description":"An open sprint's name or id, or backlog (the default)","type":"string"}},"title":"CompleteSprintRequest","type":"object"},"SpaceList":{"description":"The spaces the member may read.","properties":{"spaces":{"items":{"$ref":"#/components/schemas/Space"},"type":"array"}},"required":["spaces"],"title":"SpaceList","type":"object"},"BoardList":{"description":"The boards the member can see.","properties":{"boards":{"items":{"$ref":"#/components/schemas/Board"},"type":"array"}},"required":["boards"],"title":"BoardList","type":"object"},"Interaction":{"description":"What happened with a person: a note, a call, a meeting, an email or a task. A task is a follow-up, with a due moment, an assignee and when it was done.","properties":{"assignee":{"allOf":[{"$ref":"#/components/schemas/Person"}],"nullable":true},"author":{"allOf":[{"$ref":"#/components/schemas/Person"}],"description":"The member who logged it; nobody for an email a contact sent","nullable":true},"body":{"allOf":[{"$ref":"#/components/schemas/RichText"}],"nullable":true},"company":{"allOf":[{"$ref":"#/components/schemas/Reference"}],"nullable":true},"contact":{"allOf":[{"$ref":"#/components/schemas/Reference"}],"nullable":true},"done_at":{"format":"date-time","nullable":true,"type":"string"},"due_at":{"format":"date-time","nullable":true,"type":"string"},"duration_seconds":{"nullable":true,"type":"integer"},"email":{"description":"Whether a sent or received message is behind it, which cannot be changed","type":"boolean"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["note","call","meeting","email","task"],"type":"string"},"occurred_at":{"description":"When it happened; ahead of now for a call or meeting that is planned","format":"date-time","type":"string"},"subject":{"nullable":true,"type":"string"},"ticket":{"description":"The deal's or ticket's key","nullable":true,"type":"string"},"url":{"format":"uri","type":"string"}},"required":["id","kind","subject","body","occurred_at","duration_seconds","author","contact","company","ticket","due_at","assignee","done_at","email","url"],"title":"Interaction","type":"object"},"TransitionList":{"description":"A ticket's status and the transitions the member can take.","properties":{"key":{"type":"string"},"status":{"allOf":[{"$ref":"#/components/schemas/Status"}],"nullable":true},"transitions":{"items":{"$ref":"#/components/schemas/Transition"},"type":"array"}},"required":["key","status","transitions"],"title":"TransitionList","type":"object"},"CreateTicketRequest":{"description":"A new ticket.","properties":{"assignee":{"description":"me, a name, an email address or an id","type":"string"},"company":{"description":"For a deal (a ticket in a sales project): the company's name or id","type":"string"},"components":{"items":{"type":"string"},"type":"array"},"description":{"description":"Markdown","type":"string"},"due_date":{"format":"date","nullable":true,"type":"string"},"fields":{"additionalProperties":true,"description":"Custom fields by key, such as {\"deal_value\": \"12000\", \"deal_currency\": \"EUR\"}: a choice by its words, anything else as it would be typed","type":"object"},"labels":{"items":{"type":"string"},"type":"array"},"parent":{"description":"The parent ticket's key","nullable":true,"type":"string"},"priority":{"type":"string"},"project":{"description":"The project key","type":"string"},"request_type":{"description":"A helpdesk form's key or name: raises the ticket as a request of that type, with its ticket type unless type is given","type":"string"},"summary":{"type":"string"},"type":{"description":"A ticket type's name; the project's first when left out","type":"string"}},"required":["project","summary"],"title":"CreateTicketRequest","type":"object"},"UpdateContactRequest":{"description":"The fields to change; the rest stay. null for company or owner clears it.","properties":{"company":{"description":"A company's name or id","nullable":true,"type":"string"},"job_title":{"nullable":true,"type":"string"},"name":{"maxLength":255,"type":"string"},"notes":{"description":"Markdown","nullable":true,"type":"string"},"owner":{"description":"me, a member's name or id","nullable":true,"type":"string"},"stage":{"enum":["lead","qualified","customer","former"],"type":"string"}},"title":"UpdateContactRequest","type":"object"},"Reference":{"description":"A contact or a company, by id and name.","properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}},"required":["id","name"],"title":"Reference","type":"object"},"HoursReport":{"description":"Hours over a period, in total and by the grouping asked for. Rate, currency and amount are given with a phase whose rate the member may see; otherwise null.","properties":{"amount":{"nullable":true,"type":"string"},"currency":{"nullable":true,"type":"string"},"from":{"format":"date","type":"string"},"group_by":{"type":"string"},"hours":{"type":"number"},"phase":{"nullable":true,"type":"string"},"rate":{"nullable":true,"type":"string"},"rows":{"items":{"properties":{"amount":{"type":"string"},"group":{"description":"A day, a week's Monday, a key, a name or a label","type":"string"},"hours":{"type":"number"},"seconds":{"type":"integer"}},"required":["group","seconds","hours"],"type":"object"},"type":"array"},"timezone":{"type":"string"},"to":{"format":"date","type":"string"},"total_seconds":{"type":"integer"},"working_days":{"type":"integer"}},"required":["from","to","timezone","group_by","phase","total_seconds","hours","working_days","rate","currency","amount","rows"],"title":"HoursReport","type":"object"},"Deal":{"description":"A deal's company, its deal fields and the people on it. Given for a ticket in a sales project, to a member who may see the CRM. A value is in its own currency; nothing is converted.","properties":{"company":{"allOf":[{"$ref":"#/components/schemas/Reference"}],"nullable":true},"contacts":{"items":{"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"role":{"type":"string"}},"required":["id","name","role"],"type":"object"},"type":"array"},"currency":{"nullable":true,"type":"string"},"expected_close":{"format":"date","nullable":true,"type":"string"},"lost_reason":{"nullable":true,"type":"string"},"probability":{"description":"A percentage","nullable":true,"type":"string"},"value":{"nullable":true,"type":"string"}},"required":["company","value","currency","expected_close","probability","lost_reason","contacts"],"title":"Deal","type":"object"},"ProjectDetail":{"description":"What a project's tickets take.","properties":{"assignable_users":{"items":{"$ref":"#/components/schemas/Person"},"type":"array"},"components":{"items":{"type":"string"},"type":"array"},"description":{"nullable":true,"type":"string"},"key":{"type":"string"},"kind":{"enum":["software","helpdesk","business","sales"],"type":"string"},"labels":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"priorities":{"items":{"type":"string"},"type":"array"},"resolutions":{"items":{"type":"string"},"type":"array"},"ticket_types":{"items":{"type":"string"},"type":"array"},"versions":{"items":{"type":"string"},"type":"array"}},"required":["key","name","kind","description","ticket_types","priorities","resolutions","components","versions","labels","assignable_users"],"title":"ProjectDetail","type":"object"},"LogWorkRequest":{"description":"Work to log. Give time_spent in words or time_spent_seconds as a number; one of the two is required.","properties":{"body":{"description":"A note, in Markdown","type":"string"},"started_at":{"description":"When the work began; now when left out","format":"date-time","type":"string"},"time_spent":{"description":"\"1h 30m\", \"45m\", \"2d\"; a day is 8 hours, a week 5 days","example":"1h 30m","type":"string"},"time_spent_seconds":{"description":"Instead of time_spent: the seconds","minimum":1,"type":"integer"}},"title":"LogWorkRequest","type":"object"}},"securitySchemes":{"bearer":{"description":"A personal token (alba_pat_…) or an OAuth access token (alba_oat_…).","scheme":"bearer","type":"http"}}},"info":{"description":"Read and work on tickets, boards and sprints as the member whose token is used, with their permissions. Descriptions and comments are Markdown. Things are named as people name them: projects and tickets by key, boards by number, types, priorities, components and resolutions by name, people as \"me\", by name, email or id.","title":"Alba Ticket","version":"1"},"openapi":"3.0.0","paths":{"/api/v1/phases":{"get":{"callbacks":{},"description":"The phases (billing periods) the member may see, newest first; a rate only where they hold billing:view.","operationId":"listPhases","parameters":[{"description":"A customer's name","in":"query","name":"customer","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhaseList"}}},"description":"Phases"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"List phases","tags":["Time"]}},"/api/v1/boards/{board}/sprints/{sprint}/start":{"post":{"callbacks":{},"description":"Starts a future sprint; end_date is needed unless it has one. One sprint runs at a time.","operationId":"startSprint","parameters":[{"description":"The board's number","example":3,"in":"path","name":"board","required":true,"schema":{"type":"integer"}},{"description":"The sprint's name or id","in":"path","name":"sprint","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSprintRequest"}}},"description":"When it runs","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sprint"}}},"description":"The sprint"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Another sprint is active, or this one is not future"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Start a sprint","tags":["Sprints"]}},"/api/v1/boards/{board}":{"get":{"callbacks":{},"description":"A board's columns and their cards in board order. A scrum board shows its active sprint unless sprint names another, or none.","operationId":"getBoard","parameters":[{"description":"The board's number","example":3,"in":"path","name":"board","required":true,"schema":{"type":"integer"}},{"description":"A scrum board's sprint, by name or id, or none for every ticket","in":"query","name":"sprint","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BoardDetail"}}},"description":"The board"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Read a board","tags":["Boards"]}},"/api/v1/knowledge/spaces/{space}/tree":{"get":{"callbacks":{},"description":"The space's current pages and folders the member may read, in the tree's order.","operationId":"getPageTree","parameters":[{"description":"The space's key","example":"HANDBOOK","in":"path","name":"space","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageTree"}}},"description":"The tree"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"A space's page tree","tags":["Knowledge base"]}},"/api/v1/tickets/{key}/comments":{"post":{"callbacks":{},"description":"Needs ticket:comment. internal makes a helpdesk internal note.","operationId":"addComment","parameters":[{"description":"A ticket key, e.g. WEB-142","example":"WEB-142","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentRequest"}}},"description":"The comment","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}},"description":"The comment"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Comment on a ticket","tags":["Tickets"]}},"/api/v1/tickets/{key}/worklogs":{"post":{"callbacks":{},"description":"Needs ticket:comment. time_spent is words such as \"1h 30m\" (a day is 8 hours, a week 5 days) or give time_spent_seconds; started_at is now when left out. Adds to the ticket's time spent and comes off its remaining estimate.","operationId":"logWork","parameters":[{"description":"A ticket key, e.g. WEB-142","example":"WEB-142","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogWorkRequest"}}},"description":"The work","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoggedWork"}}},"description":"The activity logged"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Log work on a ticket","tags":["Tickets"]}},"/api/v1/contacts":{"get":{"callbacks":{},"description":"The contacts the member may see (crm:view: every contact through a workspace CRM role, else those of the companies their role is on), newest first. A read token keeps this.","operationId":"searchContacts","parameters":[{"description":"Words in the name, the job title or an address","in":"query","name":"q","required":false,"schema":{"type":"string"}},{"description":"A company's name or id","in":"query","name":"company","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"stage","required":false,"schema":{"enum":["lead","qualified","customer","former"],"type":"string"}},{"description":"me, or a member","in":"query","name":"owner","required":false,"schema":{"type":"string"}},{"description":"The archived contacts instead","in":"query","name":"archived","required":false,"schema":{"type":"boolean"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"description":"","in":"query","name":"offset","required":false,"schema":{"default":0,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactList"}}},"description":"Contacts"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Search contacts","tags":["CRM"]},"post":{"callbacks":{},"description":"Needs crm:edit for the company, or a workspace CRM role for a contact with none. An email address belongs to one contact in the workspace.","operationId":"createContact","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRequest"}}},"description":"The contact","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactDetail"}}},"description":"The contact"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Create a contact","tags":["CRM"]}},"/api/v1/reports/hours":{"get":{"callbacks":{},"description":"Hours over a period (the current month unless from and to, or a phase, say otherwise), in total or grouped. Amounts are given with a phase whose rate the member may see.","operationId":"reportHours","parameters":[{"description":"YYYY-MM-DD","in":"query","name":"from","required":false,"schema":{"type":"string"}},{"description":"YYYY-MM-DD","in":"query","name":"to","required":false,"schema":{"type":"string"}},{"description":"An IANA time zone, such as Europe/Berlin; required with from or to","in":"query","name":"timezone","required":false,"schema":{"type":"string"}},{"description":"A phase's name or id; fills the dates, customer and project","in":"query","name":"phase","required":false,"schema":{"type":"string"}},{"description":"A customer's name","in":"query","name":"customer","required":false,"schema":{"type":"string"}},{"description":"A project's key or name","in":"query","name":"project","required":false,"schema":{"type":"string"}},{"description":"A ticket key","in":"query","name":"ticket","required":false,"schema":{"type":"string"}},{"description":"me, or a person","in":"query","name":"member","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"group_by","required":false,"schema":{"default":"total","enum":["total","day","week","project","customer","tag","ticket","member"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoursReport"}}},"description":"The report"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Report hours","tags":["Time"]}},"/api/v1/boards/{board}/sprints":{"get":{"callbacks":{},"description":"Every sprint of the board, closed ones included, and whether the member may manage them.","operationId":"listSprints","parameters":[{"description":"The board's number","example":3,"in":"path","name":"board","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SprintList"}}},"description":"Sprints"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"List sprints","tags":["Sprints"]},"post":{"callbacks":{},"description":"Adds a future sprint. Managing sprints needs project:admin on every project the board draws from.","operationId":"createSprint","parameters":[{"description":"The board's number","example":3,"in":"path","name":"board","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SprintRequest"}],"required":["name"]}}},"description":"The sprint","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sprint"}}},"description":"The sprint"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Create a sprint","tags":["Sprints"]}},"/api/v1/boards/{board}/backlog/moves":{"post":{"callbacks":{},"description":"Puts a ticket into an open sprint, or back into the backlog. Needs ticket:edit.","operationId":"moveToSprint","parameters":[{"description":"The board's number","example":3,"in":"path","name":"board","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveToSprintRequest"}}},"description":"The plan","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketDetail"}}},"description":"The ticket"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Plan a ticket","tags":["Sprints"]}},"/api/v1/knowledge/spaces":{"get":{"callbacks":{},"description":"The knowledge base's spaces the member may read, and whether they may write or manage each.","operationId":"listSpaces","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpaceList"}}},"description":"Spaces"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"List spaces","tags":["Knowledge base"]}},"/api/v1/tickets":{"get":{"callbacks":{},"description":"Tickets across every project the member can see, most recently updated first. With query, the search engine finds candidates (at most 250) and the filters narrow them.","operationId":"searchTickets","parameters":[{"description":"Words to search for, or a ticket key","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"A project key","in":"query","name":"project","required":false,"schema":{"type":"string"}},{"description":"A status category; open is anything not done","in":"query","name":"status","required":false,"schema":{"enum":["open","todo","in_progress","done"],"type":"string"}},{"description":"me, unassigned, or a person","in":"query","name":"assignee","required":false,"schema":{"type":"string"}},{"description":"me, or a person","in":"query","name":"reporter","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"label","required":false,"schema":{"type":"string"}},{"description":"A ticket type's name","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"sort","required":false,"schema":{"enum":["relevance","updated","created","priority","key"],"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"description":"","in":"query","name":"offset","required":false,"schema":{"default":0,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketList"}}},"description":"A page of tickets"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Search tickets","tags":["Tickets"]},"post":{"callbacks":{},"description":"Needs ticket:create in the project. The member is the reporter.","operationId":"createTicket","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTicketRequest"}}},"description":"The ticket","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}},"description":"The new ticket"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Create a ticket","tags":["Tickets"]}},"/api/v1/activities":{"get":{"callbacks":{},"description":"Activities the member may see, newest first: their own, and everyone's where they hold time:view_all. from and to are days in timezone.","operationId":"listActivities","parameters":[{"description":"YYYY-MM-DD","in":"query","name":"from","required":false,"schema":{"type":"string"}},{"description":"YYYY-MM-DD","in":"query","name":"to","required":false,"schema":{"type":"string"}},{"description":"An IANA time zone, such as Europe/Berlin; required with from or to","in":"query","name":"timezone","required":false,"schema":{"type":"string"}},{"description":"A project's key or name","in":"query","name":"project","required":false,"schema":{"type":"string"}},{"description":"A customer's name","in":"query","name":"customer","required":false,"schema":{"type":"string"}},{"description":"A ticket key","in":"query","name":"ticket","required":false,"schema":{"type":"string"}},{"description":"One of the activity's labels, matched without regard to case","in":"query","name":"tag","required":false,"schema":{"type":"string"}},{"description":"me, or a person (needs time:view_all)","in":"query","name":"member","required":false,"schema":{"type":"string"}},{"description":"Only running activities","in":"query","name":"running","required":false,"schema":{"type":"boolean"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"description":"","in":"query","name":"offset","required":false,"schema":{"default":0,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityList"}}},"description":"Activities"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"List activities","tags":["Time"]},"post":{"callbacks":{},"description":"Needs time:log on the project or customer (ticket:comment too for a ticket); an activity with neither is the member's own. A label (tags) that is a ticket's key links the ticket. A local time or a day needs timezone; a time with an offset does not.","operationId":"createActivity","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityRequest"}}},"description":"The activity","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Activity"}}},"description":"The activity"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Record an activity","tags":["Time"]}},"/api/v1/contacts/{id}":{"get":{"callbacks":{},"description":"A contact with their addresses, numbers, notes, custom fields and what they have agreed to.","operationId":"getContact","parameters":[{"description":"A contact's id","example":"5d0c…","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactDetail"}}},"description":"The contact"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Read a contact","tags":["CRM"]},"patch":{"callbacks":{},"description":"Only the fields given change. Needs crm:edit for the contact's company.","operationId":"updateContact","parameters":[{"description":"A contact's id","example":"5d0c…","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContactRequest"}}},"description":"The changes","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactDetail"}}},"description":"The contact"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Change a contact","tags":["CRM"]}},"/api/v1/interactions":{"get":{"callbacks":{},"description":"The interactions about a contact, a company or a ticket, newest first: give one of the three. One about a ticket is seen only by somebody who may see the ticket.","operationId":"listInteractions","parameters":[{"description":"A contact's id","in":"query","name":"contact","required":false,"schema":{"type":"string"}},{"description":"A company's id or name","in":"query","name":"company","required":false,"schema":{"type":"string"}},{"description":"A deal's or ticket's key","in":"query","name":"ticket","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"kind","required":false,"schema":{"enum":["note","call","meeting","email","task"],"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"description":"","in":"query","name":"offset","required":false,"schema":{"default":0,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionList"}}},"description":"Interactions"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"List interactions","tags":["CRM"]},"post":{"callbacks":{},"description":"A note, a call, a meeting or a task (a follow-up) about a contact, a company or a ticket. Needs crm:edit for the company concerned. A local time needs timezone; a time with an offset does not.","operationId":"logInteraction","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractionRequest"}}},"description":"The interaction","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Interaction"}}},"description":"The interaction"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Log an interaction","tags":["CRM"]}},"/api/v1/interactions/{id}/complete":{"post":{"callbacks":{},"description":"Marks a task done, now: its assignee, its author or whoever manages the CRM for its company.","operationId":"completeFollowUp","parameters":[{"description":"The interaction's id","example":"9b1e…","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Interaction"}}},"description":"The follow-up"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Complete a follow-up","tags":["CRM"]}},"/api/v1/projects/{project}/request-types":{"get":{"callbacks":{},"description":"The helpdesk's request types in portal order, and whether the member may change them (helpdesk:forms) or open one to anyone (helpdesk:publish).","operationId":"listRequestTypes","parameters":[{"description":"The project key","example":"HELP","in":"path","name":"project","required":true,"schema":{"type":"string"}},{"description":"Add retired forms","in":"query","name":"include_archived","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTypeList"}}},"description":"Forms"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"List a project's forms","tags":["Helpdesk forms"]},"post":{"callbacks":{},"description":"Adds a request type. Needs helpdesk:forms, and helpdesk:publish as well for a form anyone with no account may send (submission: open).","operationId":"createRequestType","parameters":[{"description":"The project key","example":"HELP","in":"path","name":"project","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RequestTypeRequest"}],"required":["key","name","ticket_type"]}}},"description":"The form","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestType"}}},"description":"The form"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Create a form","tags":["Helpdesk forms"]}},"/api/v1/organizations":{"get":{"callbacks":{},"description":"The organizations (customers) of the workspace, by name.","operationId":"listOrganizations","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationList"}}},"description":"Organizations"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"List organizations","tags":["Time"]}},"/api/v1/knowledge/spaces/{space}/pages/{page}":{"delete":{"callbacks":{},"description":"Deletes a page and the pages under it from the space; those who manage it can restore them from its trash.","operationId":"archivePage","parameters":[{"description":"The space's key","example":"HANDBOOK","in":"path","name":"space","required":true,"schema":{"type":"string"}},{"description":"The page's slug or id","example":"release-process","in":"path","name":"page","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageSummary"}}},"description":"The deleted page"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Delete a page","tags":["Knowledge base"]},"get":{"callbacks":{},"description":"One page: its body as stored with its format, its words as text, its place in the tree, the pages linking to it and the tickets it mentions.","operationId":"getPage","parameters":[{"description":"The space's key","example":"HANDBOOK","in":"path","name":"space","required":true,"schema":{"type":"string"}},{"description":"The page's slug or id","example":"release-process","in":"path","name":"page","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}},"description":"The page"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Read a page","tags":["Knowledge base"]},"patch":{"callbacks":{},"description":"Changes a page's title, body (Markdown) or settings, as a new version; the page's edit restrictions apply.","operationId":"updatePage","parameters":[{"description":"The space's key","example":"HANDBOOK","in":"path","name":"space","required":true,"schema":{"type":"string"}},{"description":"The page's slug or id","example":"release-process","in":"path","name":"page","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePageRequest"}}},"description":"The changes","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}},"description":"The page"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Somebody saved the page after the version given"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Change a page","tags":["Knowledge base"]}},"/api/v1/boards/{board}/backlog":{"get":{"callbacks":{},"description":"A board's open sprints with their tickets, then the backlog in rank order.","operationId":"getBacklog","parameters":[{"description":"The board's number","example":3,"in":"path","name":"board","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Backlog"}}},"description":"The backlog"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Read a backlog","tags":["Sprints"]}},"/api/v1/projects/{project}/request-types/order":{"post":{"callbacks":{},"description":"Sets the portal order of a project's forms. Needs helpdesk:forms.","operationId":"reorderRequestTypes","parameters":[{"description":"The project key","example":"HELP","in":"path","name":"project","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTypeOrderRequest"}}},"description":"The order","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTypeList"}}},"description":"Forms"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Order the forms","tags":["Helpdesk forms"]}},"/api/v1/boards/{board}/sprints/{sprint}":{"delete":{"callbacks":{},"description":"Deletes a sprint that has not started; its tickets go back to the backlog.","operationId":"deleteSprint","parameters":[{"description":"The board's number","example":3,"in":"path","name":"board","required":true,"schema":{"type":"integer"}},{"description":"The sprint's name or id","in":"path","name":"sprint","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedSprint"}}},"description":"The deleted sprint"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The sprint has started"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Delete a sprint","tags":["Sprints"]},"patch":{"callbacks":{},"description":"Changes a sprint's name, goal or dates.","operationId":"updateSprint","parameters":[{"description":"The board's number","example":3,"in":"path","name":"board","required":true,"schema":{"type":"integer"}},{"description":"The sprint's name or id","in":"path","name":"sprint","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SprintRequest"}}},"description":"The changes","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sprint"}}},"description":"The sprint"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Change a sprint","tags":["Sprints"]}},"/api/v1/tickets/{key}":{"get":{"callbacks":{},"description":"A ticket with its description, the comments the member may read, its links and sub-tasks, and the transitions the member can take now.","operationId":"getTicket","parameters":[{"description":"A ticket key, e.g. WEB-142","example":"WEB-142","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketDetail"}}},"description":"The ticket"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Read a ticket","tags":["Tickets"]},"patch":{"callbacks":{},"description":"Needs ticket:edit, or ticket:edit_own on a ticket the member reported. Only the fields given change; labels and components replace the ticket's. One history entry.","operationId":"updateTicket","parameters":[{"description":"A ticket key, e.g. WEB-142","example":"WEB-142","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTicketRequest"}}},"description":"The changes","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}},"description":"The ticket"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Change a ticket","tags":["Tickets"]}},"/api/v1/activities/{id}":{"delete":{"callbacks":{},"description":"Soft: the activity leaves every list and total and its history records the deletion. The same rule as changing it.","operationId":"deleteActivity","parameters":[{"description":"An activity's id","example":"a41c…","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedActivity"}}},"description":"Deleted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Delete an activity","tags":["Time"]},"get":{"callbacks":{},"description":"An activity the member may see, with its history.","operationId":"getActivity","parameters":[{"description":"An activity's id","example":"a41c…","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityDetail"}}},"description":"The activity"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Read an activity","tags":["Time"]},"patch":{"callbacks":{},"description":"The member's own, or anyone's where they manage billing; a locked activity is refused (locked). Only the fields given change.","operationId":"updateActivity","parameters":[{"description":"An activity's id","example":"a41c…","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateActivityRequest"}}},"description":"The changes","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Activity"}}},"description":"The activity"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Change an activity","tags":["Time"]}},"/api/v1/companies":{"get":{"callbacks":{},"description":"The companies the member may see (crm:view: every organization, customers or not, through a workspace CRM role, else those their role is on), by name.","operationId":"searchCompanies","parameters":[{"description":"Words in the name, the industry or a domain","in":"query","name":"q","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"stage","required":false,"schema":{"enum":["lead","prospect","customer","former"],"type":"string"}},{"description":"me, or a member","in":"query","name":"owner","required":false,"schema":{"type":"string"}},{"description":"Customers only","in":"query","name":"customers","required":false,"schema":{"type":"boolean"}},{"description":"The archived companies instead","in":"query","name":"archived","required":false,"schema":{"type":"boolean"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"description":"","in":"query","name":"offset","required":false,"schema":{"default":0,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyList"}}},"description":"Companies"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Search companies","tags":["CRM"]}},"/api/v1/boards":{"get":{"callbacks":{},"description":"The boards the member can see, by number.","operationId":"listBoards","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BoardList"}}},"description":"Boards"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"List boards","tags":["Boards"]}},"/api/v1/follow-ups":{"get":{"callbacks":{},"description":"The open follow-ups assigned to the member, the soonest due first.","operationId":"listFollowUps","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowUpList"}}},"description":"Follow-ups"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"List my follow-ups","tags":["CRM"]}},"/api/v1/activities/{id}/stop":{"post":{"callbacks":{},"description":"Ends a running activity, now or at end. One that has ended is refused (not_running).","operationId":"stopActivity","parameters":[{"description":"An activity's id","example":"a41c…","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopActivityRequest"}}},"description":"When","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Activity"}}},"description":"The activity"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Stop an activity","tags":["Time"]}},"/api/v1/contacts/{id}/phones":{"post":{"callbacks":{},"description":"The first number a contact has is their primary one.","operationId":"addContactPhone","parameters":[{"description":"A contact's id","example":"5d0c…","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactPhoneRequest"}}},"description":"The number","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactDetail"}}},"description":"The contact"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Add a phone number to a contact","tags":["CRM"]}},"/api/v1/me":{"get":{"callbacks":{},"description":"The member the token acts for, and the token's name and access.","operationId":"whoami","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}},"description":"The member and the token"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Who the token acts for","tags":["Who am I"]}},"/api/v1/projects/{project}":{"get":{"callbacks":{},"description":"What a project's tickets take: types, priorities, resolutions, components, versions, labels and the people they can be assigned to.","operationId":"describeProject","parameters":[{"description":"The project key","example":"WEB","in":"path","name":"project","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDetail"}}},"description":"The project"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Describe a project","tags":["Projects"]}},"/api/v1/tickets/{key}/transitions":{"get":{"callbacks":{},"description":"The ticket's status and the transitions the member can take from it now.","operationId":"listTransitions","parameters":[{"description":"A ticket key, e.g. WEB-142","example":"WEB-142","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransitionList"}}},"description":"Transitions"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"List a ticket's transitions","tags":["Tickets"]},"post":{"callbacks":{},"description":"Needs ticket:transition. transition is a transition's name or id, or the status it leads to. A transition whose screen asks for a resolution, an assignee, a comment or a custom field needs it given here.","operationId":"transitionTicket","parameters":[{"description":"A ticket key, e.g. WEB-142","example":"WEB-142","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransitionRequest"}}},"description":"The move","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}},"description":"The ticket"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Move a ticket through its workflow","tags":["Tickets"]}},"/api/v1/knowledge/search":{"get":{"callbacks":{},"description":"Pages the member may read that match the words, best first, with the passage each matched.","operationId":"searchPages","parameters":[{"description":"The words","in":"query","name":"query","required":true,"schema":{"type":"string"}},{"description":"Keep to one space (its key)","in":"query","name":"space","required":false,"schema":{"type":"string"}},{"description":"Up to 100; 20 by default","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageSearchResults"}}},"description":"Pages"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Search pages","tags":["Knowledge base"]}},"/api/v1/tickets/{key}/assignee":{"put":{"callbacks":{},"description":"Needs ticket:assign. The assignee must work in the project; null unassigns. A comment goes with it.","operationId":"assignTicket","parameters":[{"description":"A ticket key, e.g. WEB-142","example":"WEB-142","in":"path","name":"key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRequest"}}},"description":"The assignee","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}},"description":"The ticket"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Assign a ticket","tags":["Tickets"]}},"/api/v1/contacts/{id}/emails":{"post":{"callbacks":{},"description":"The first address a contact has is their primary one.","operationId":"addContactEmail","parameters":[{"description":"A contact's id","example":"5d0c…","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactEmailRequest"}}},"description":"The address","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactDetail"}}},"description":"The contact"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Add an email address to a contact","tags":["CRM"]}},"/api/v1/projects":{"get":{"callbacks":{},"description":"The projects the member can see.","operationId":"listProjects","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectList"}}},"description":"Projects"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"List projects","tags":["Projects"]}},"/api/v1/projects/{project}/request-types/{request_type}":{"delete":{"callbacks":{},"description":"Stops offering a request type; requests raised with it keep it. Needs helpdesk:forms.","operationId":"retireRequestType","parameters":[{"description":"The project key","example":"HELP","in":"path","name":"project","required":true,"schema":{"type":"string"}},{"description":"The request type's key, name or id","example":"laptop","in":"path","name":"request_type","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestType"}}},"description":"The retired form"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Retire a form","tags":["Helpdesk forms"]},"get":{"callbacks":{},"description":"One request type with the fields its form asks for, in order.","operationId":"getRequestType","parameters":[{"description":"The project key","example":"HELP","in":"path","name":"project","required":true,"schema":{"type":"string"}},{"description":"The request type's key, name or id","example":"laptop","in":"path","name":"request_type","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestType"}}},"description":"The form"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Read a form","tags":["Helpdesk forms"]},"patch":{"callbacks":{},"description":"Changes a request type. Needs helpdesk:forms, and helpdesk:publish while the form is, or becomes, open to anyone.","operationId":"updateRequestType","parameters":[{"description":"The project key","example":"HELP","in":"path","name":"project","required":true,"schema":{"type":"string"}},{"description":"The request type's key, name or id","example":"laptop","in":"path","name":"request_type","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTypeRequest"}}},"description":"The changes","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestType"}}},"description":"The form"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Change a form","tags":["Helpdesk forms"]}},"/api/v1/companies/{id}":{"get":{"callbacks":{},"description":"A company with its contacts and its deals, as far as the member may see them.","operationId":"getCompany","parameters":[{"description":"A company's id or name","example":"ACME","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyDetail"}}},"description":"The company"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Read a company","tags":["CRM"]},"patch":{"callbacks":{},"description":"Its CRM details only; the fields given change. Needs crm:edit for the company.","operationId":"updateCompany","parameters":[{"description":"A company's id or name","example":"ACME","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCompanyRequest"}}},"description":"The changes","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyDetail"}}},"description":"The company"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Change a company","tags":["CRM"]}},"/api/v1/boards/{board}/moves":{"post":{"callbacks":{},"description":"Into another column is a workflow transition (ticket:transition); within a column a change of order (ticket:edit). A transition that asks for a resolution or comment needs it given here.","operationId":"moveCard","parameters":[{"description":"The board's number","example":3,"in":"path","name":"board","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveCardRequest"}}},"description":"The move","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketDetail"}}},"description":"The ticket"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Move a card","tags":["Boards"]}},"/api/v1/boards/{board}/sprints/{sprint}/complete":{"post":{"callbacks":{},"description":"Completes the active sprint. Done tickets stay in it; the rest go to move_open_to, another open sprint or the backlog.","operationId":"completeSprint","parameters":[{"description":"The board's number","example":3,"in":"path","name":"board","required":true,"schema":{"type":"integer"}},{"description":"The sprint's name or id","in":"path","name":"sprint","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteSprintRequest"}}},"description":"Where unfinished tickets go","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompletedSprint"}}},"description":"The closed sprint"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The sprint is not active"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Complete a sprint","tags":["Sprints"]}},"/api/v1/knowledge/spaces/{space}/pages/{page}/move":{"post":{"callbacks":{},"description":"Puts a page under another, or at the top of the space, and among its new siblings.","operationId":"movePage","parameters":[{"description":"The space's key","example":"HANDBOOK","in":"path","name":"space","required":true,"schema":{"type":"string"}},{"description":"The page's slug or id","example":"release-process","in":"path","name":"page","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MovePageRequest"}}},"description":"Where it goes","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}},"description":"The page"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Move a page","tags":["Knowledge base"]}},"/api/v1/knowledge/spaces/{space}/pages":{"post":{"callbacks":{},"description":"Writes a page, folder or blog post in Markdown. Needs knowledge:edit in the space; the change is recorded with the agent's name.","operationId":"createPage","parameters":[{"description":"The space's key","example":"HANDBOOK","in":"path","name":"space","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePageRequest"}}},"description":"The page","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}},"description":"The page"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid token"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not permitted, a read-only token, or agent access is off"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No such thing, or not one the member can see"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request does not make sense; the message says why"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Too many requests; wait and retry"}},"summary":"Write a page","tags":["Knowledge base"]}}},"security":[{"bearer":[]}],"servers":[{"description":"Your workspace","url":"https://{workspace}","variables":{"workspace":{"default":"your-workspace.albaticket.com","description":"Your workspace's address, as in your browser"}}}],"tags":[{"description":"Check a token and what it may do.","name":"Who am I"},{"description":"The projects the member can see and what their tickets take.","name":"Projects"},{"description":"A helpdesk's request types: list, read, create, change, order and retire them.","name":"Helpdesk forms"},{"description":"Spaces and pages: read, search, write, move and delete them.","name":"Knowledge base"},{"description":"Find, read, create, change, move, assign and comment on tickets.","name":"Tickets"},{"description":"Boards by number: their columns and cards, and moving cards.","name":"Boards"},{"description":"A scrum board's backlog and the sprint lifecycle.","name":"Sprints"},{"description":"Activities, customers, phases and hours over a period.","name":"Time"},{"description":"Contacts, companies, interactions and follow-ups. A deal is a ticket in a sales project.","name":"CRM"}]}