swagger: '2.0' info: title: Conga Collaborate REST API version: v2 basePath: /api/v2 definitions: Content: type: object properties: name: type: string body: type: string visibility: type: integer default: 1 enum: - 0 - 1 locked_for_edit: type: boolean default: false expires_at: type: string format: date-time default: '' published_at: type: string format: date-time Attachment: type: object properties: media_id: type: integer sequence: type: integer default: 0 locked_for_deletion: type: boolean default: false esignable: type: integer default: 0 enum: - 0 - 1 required: - media_id ExternalDocumentBase: type: object properties: name: type: string default: '' document_class_id: type: integer default: 1 enum: - 1 - 2 status: type: integer default: 2 enum: - 2 - 3 required: - name - document - document_class_id - status ExternalDocumentPost: allOf: - $ref: '#/definitions/ExternalDocumentBase' - $ref: '#/definitions/File' - $ref: '#/definitions/Metadata' ExternalDocumentPut: allOf: - $ref: '#/definitions/ExternalDocumentBase' - $ref: '#/definitions/Metadata' MediaBase: type: object properties: user_id: type: integer default: 1 locked_for_edit: type: integer default: 0 enum: - 0 - 1 visibility: type: integer default: 1 enum: - 0 - 1 name: type: string default: '' required: - name - document - locked_for_edit - visibility MediaPost: allOf: - $ref: '#/definitions/MediaBase' - $ref: '#/definitions/File' Metadata: type: object properties: metadata_template_id: type: integer default: '' metadata_field_values: type: object properties: metadata_field_id: type: string default: my_value metadata_field_name: type: string default: my_value File: type: object properties: document: type: string format: byte default: base64 string Snippet: type: object properties: name: type: string default: About Us body: type: string default: We are Sales Productivity visibility: type: integer default: 1 enum: - 0 - 1 locked_for_edit: type: boolean default: false expires_at: type: string format: date-time default: '' published_at: type: string format: date-time required: - name - body Task: type: object properties: name: type: string default: Complete This Task user_id: type: integer default: '' description: type: string default: Describe the task completed: type: boolean default: false required: type: boolean default: false owner_id: type: integer default: '' taskable_id: type: integer default: '' taskable_type: type: string default: Proposal due_by: type: string format: date default: '' assigned: type: boolean default: false required: - name - description - account - user - owner - taskable Template: type: object properties: name: type: string default: My Template description: type: string default: New Business archived: type: boolean default: false esignable: type: integer default: 0 enum: - 0 - 1 - 2 visibility: type: integer default: 1 enum: - 0 - 1 required: - name User: type: object properties: username: type: string default: Person name: type: string default: Person email: type: string default: person@octiv.com password: type: string default: '' password_confirmation: type: string default: '' language: type: string default: en time_zone: type: string default: Eastern Time (US & Canada) ext_integration_id: type: string default: '' workgroup_name: type: string default: '' group_name: type: string default: '' skip_confirmation: type: boolean default: false required: - username - name - email - password - password_confirmation Document: allOf: - $ref: '#/definitions/DocumentBase' - $ref: '#/definitions/Metadata' DocumentBase: type: object properties: name: type: string default: My Document description: type: string default: Sample Text value: type: number password: type: string default: '' archived: type: integer default: 1 enum: - 0 - 1 visibility: type: integer default: 1 enum: - 0 - 1 template_id: type: integer default: '' variable_data: type: object properties: var: type: string default: value ext_integration_id: type: string default: '' workgroup_ids: type: array items: type: integer default: [] properties: {} required: - name Recipient: type: object properties: first_name: type: string default: Person last_name: type: string default: Doe email_address: type: string default: persondoe@octiv.com signer: type: boolean default: false signer_position: type: integer default: 1 post_acceptance_forms: type: boolean default: false add_recipients: type: boolean default: false add_collaborators: type: boolean default: false redliner: type: boolean default: false required: - first_name - last_name - email_address Page: type: object properties: name: type: string default: New Page body: type: string default: Sample Text sequence: type: integer ext_integration_id: type: string default: '' acceptance_type: type: integer default: 0 status: type: integer default: 0 include_logic: type: string default: '' locked_for_edit: type: boolean default: false locked_for_deletion: type: boolean default: false esignable: type: boolean default: true variable_data: type: object properties: var: type: string default: value required: - name Section: type: object properties: name: type: string default: New Section sequence: type: integer acceptance_type: type: integer default: -1 enum: - -1 - 0 - 1 - 2 - 3 esignable: type: boolean default: true include_logic: type: string default: '' required: - name CallToAction: type: object properties: label: type: string default: accept type: type: integer enum: - accept - decline - question - change_request - add_people required: - label - type Email: type: object properties: subject: type: string default: Sample Subject message: type: string default: Sample Body Text recipient_ids: type: array items: type: integer default: [] properties: {} description: 'When empty, emails will be delivered to all recipients who have not yet been emailed' bcc_yourself: type: boolean default: false required: - proposal_id - subject - message Version: type: object properties: message: type: string default: New Version paths: /contents: post: summary: creates a new content tags: - Contents consumes: - application/json produces: - application/json parameters: - name: content in: body schema: type: object properties: api_key: type: string default: '' content: $ref: '#/definitions/Content' required: - content responses: '201': description: success '401': description: unauthorized get: summary: retrieves all previously created content tags: - Contents produces: - application/json parameters: - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/contents/{id}': get: summary: 'retrieves previously created {Content} ' tags: - Contents produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized put: summary: updates a specific content tags: - Contents produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: content in: body schema: type: object properties: api_key: type: string default: '' content: $ref: '#/definitions/Content' required: - content responses: '200': description: success '401': description: unauthorized delete: summary: deletes a specific content tags: - Contents produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/contracts/{contract_id}/attachments': post: summary: creates a new attachment on a contract tags: - Contract Attachments consumes: - application/json produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: attachment in: body schema: type: object properties: api_key: type: string default: '' attachment: $ref: '#/definitions/Attachment' responses: '200': description: success '401': description: unauthorized get: summary: returns all the attachments for a contract tags: - Contract Attachments produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/contracts/{contract_id}/attachments/{id}': put: summary: updates a specific contract tags: - Contract Attachments produces: - application/json consumes: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: attachment in: body schema: type: object properties: api_key: type: string default: '' attachment: $ref: '#/definitions/Attachment' responses: '204': description: success '401': description: unauthorized '404': description: not found delete: summary: deletes a specific contract tags: - Contract Attachments produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/contracts/{contract_id}/emails': get: summary: returns all the emails for a contract tags: - Contract Emails produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized post: summary: creates a new email for contract tags: - Contract Emails consumes: - application/json produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: email in: body schema: type: object properties: api_key: type: string default: '' email: $ref: '#/definitions/Email' required: - email responses: '200': description: success '401': description: unauthorized '/contracts/{contract_id}/pages': post: summary: creates a new page in a contract tags: - Contract Pages consumes: - application/json produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: page in: body schema: type: object properties: api_key: type: string default: '' section_id: type: integer page: $ref: '#/definitions/Page' required: - page - section_id responses: '201': description: created '401': description: unauthorized get: summary: get all pages in a contract tags: - Contract Pages produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/contracts/{contract_id}/pages/{id}': get: summary: get specific page in a contract tags: - Contract Pages produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized put: summary: updates a specific page in a contract tags: - Contract Pages produces: - application/json consumes: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: page in: body schema: type: object properties: api_key: type: string default: '' section_id: type: integer page: $ref: '#/definitions/Page' responses: '204': description: success '401': description: unauthorized delete: summary: deletes a specific page in a contract tags: - Contract Pages produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/contracts/{contract_id}/recipients': post: summary: creates a new recipient for a contract tags: - Contract Recipients consumes: - application/json produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: recipient in: body schema: type: object properties: api_key: type: string default: '' recipient: $ref: '#/definitions/Recipient' required: - recipient responses: '200': description: success '401': description: unauthorized '422': description: invalid request get: summary: retrieves all contract recipients tags: - Contract Recipients produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/contracts/{contract_id}/recipients/{id}': get: summary: retrieves a specific contract recipient tags: - Contract Recipients produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized put: summary: updates a recipient of a contract tags: - Contract Recipients produces: - application/json consumes: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: recipient in: body schema: type: object properties: api_key: type: string default: '' recipient: $ref: '#/definitions/Recipient' responses: '200': description: success '401': description: unauthorized '404': description: not found delete: summary: deletes a specific recipient in a contract tags: - Contract Recipients parameters: - name: contract_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/contracts/{contract_id}/sections': post: summary: creates a new section in the contract tags: - Contract Sections consumes: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: section in: body schema: type: object properties: api_key: type: string default: '' section: $ref: '#/definitions/Section' responses: '201': description: success '401': description: unauthorized get: summary: retrieves all sections in a contract tags: - Contract Sections produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/contracts/{contract_id}/sections/{id}': get: summary: retrieves a section in a contract tags: - Contract Sections produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized put: summary: updates a section in a contract tags: - Contract Sections produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: contract_id in: path required: true type: integer format: int32 - name: section in: body schema: type: object properties: api_key: type: string default: '' section: $ref: '#/definitions/Section' responses: '204': description: success '401': description: unauthorized '404': description: not found delete: summary: deletes a specific section from a contract and all associated pages tags: - Contract Sections produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: contract_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized /contracts: post: summary: creates a new contracts tags: - Contract consumes: - application/json produces: - application/json parameters: - name: contract in: body schema: type: object properties: api_key: type: string default: '' squash_variables: type: boolean default: 'false' description: Converts nested variable hashes to top level variables async: type: boolean default: 'false' description: Process document creation in an asyncronous background job auto_publish: type: boolean default: 'false' description: Publish document upon successful creation contract: $ref: '#/definitions/Document' required: - contract responses: '201': description: success '202': description: accepted '401': description: unauthorized '406': description: not acceptable '422': description: invalid request get: summary: retreives a specific contract tags: - Contract produces: - application/json parameters: - name: api_key in: query required: true type: string responses: '200': description: document found '401': description: unauthorized '/contracts/{id}': get: summary: retreives a specific contract tags: - Contract produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: all in: query type: boolean format: boolean - name: api_key in: query required: true type: string responses: '200': description: document found '401': description: unauthorized '404': description: not found put: summary: updates a specific contract tags: - Contract produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: contract in: body schema: type: object properties: api_key: type: string default: '' act_on_behalf: type: string default: '' squash_variables: type: boolean default: 'false' description: Converts nested variable hashes to top level variables contract: $ref: '#/definitions/Document' required: - contract responses: '204': description: success '401': description: unauthorized '404': description: not found delete: summary: deletes a specific contract tags: - Contract produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/contracts/{id}/replace_variables': put: summary: replace variables for a specific contract tags: - Contract produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: variable_data required: true in: body schema: type: object properties: api_key: type: string default: '' squash_variables: type: boolean default: 'false' description: Converts nested variable hashes to top level variables refresh_pages: type: boolean default: 'false' description: Refresh page content and generated pages based on new variables variable_data: type: object properties: var: type: string default: value required: - variable_data responses: '204': description: success '401': description: unauthorized '404': description: not found '/contracts/{id}/duplicate': post: summary: makes a copy of a specific contract with updated properties tags: - Contract consumes: - application/json produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: act_on_behalf in: query required: false type: string - name: contract in: body schema: type: object properties: api_key: type: string default: '' contract: $ref: '#/definitions/Document' required: - contract responses: '200': description: success '401': description: unauthorized '/contracts/{id}/publish': get: summary: publishes a specific contract tags: - Contract produces: - application/json consumes: - application/x-www-form-urlencoded parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/contracts/{id}/pdf': get: summary: returns the url for a pdf of the contract tags: - Contract produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string - name: download in: query required: false type: boolean responses: '200': description: success '401': description: unauthorized '/contracts/{id}/word': get: summary: returns the url for a word document of the contract tags: - Contract produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string - name: download in: query required: false type: boolean responses: '200': description: success '401': description: unauthorized '/contracts/{contract_id}/actions': post: summary: creates a new action in a contract tags: - Contract Call to Actions consumes: - application/json produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: call_to_action in: body schema: type: object properties: api_key: type: string default: '' call_to_action: $ref: '#/definitions/CallToAction' required: - call_to_action responses: '200': description: success '401': description: unauthorized '403': description: forbidden get: summary: retrieves the specific actions of a contract tags: - Contract Call to Actions produces: - application/json parameters: - name: contract_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '404': description: not found '/contracts/{contract_id}/actions/{id}': get: summary: get a specfic action of a contract tags: - Contract Call to Actions produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: contract_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized put: summary: updates the action of a contract tags: - Contract Call to Actions produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: contract_id in: path required: true type: integer format: int32 - name: call_to_action in: body schema: type: object properties: api_key: type: string default: '' call_to_action: $ref: '#/definitions/CallToAction' required: - call_to_action responses: '200': description: success '401': description: unauthorized '403': description: not found '404': description: not found delete: summary: deletes a specific action from a contract tags: - Contract Call to Actions produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: contract_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized /external_documents: get: summary: list external document tags: - External Documents consumes: - application/json produces: - application/json parameters: - name: api_key in: query required: true type: string responses: '200': description: success post: summary: create external document tags: - External Documents consumes: - application/json produces: - application/json parameters: - name: external_document in: body schema: type: object properties: api_key: type: string default: '' external_document: $ref: '#/definitions/ExternalDocumentPost' required: - external_document - api_key responses: '201': description: success '/external_documents/{id}': get: summary: external document tags: - External Documents consumes: - application/json produces: - application/json parameters: - name: id in: path type: integer required: true format: int32 - name: api_key in: query required: true type: string responses: '200': description: success put: summary: update an external document tags: - External Documents consumes: - application/json produces: - application/json parameters: - name: id in: path type: integer required: true format: int32 - name: external_document in: body schema: type: object properties: api_key: type: string default: '' external_document: $ref: '#/definitions/ExternalDocumentPut' required: - external_document - api_key responses: '204': description: success '/external_documents/{id}/download': get: summary: Download File tags: - External Documents consumes: - application/json produces: - application/json parameters: - name: id in: path type: integer required: true format: int32 - name: api_key in: query required: true type: string responses: '200': description: success /medias: get: summary: retrieves all media tags: - Media produces: - application/json parameters: - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized post: summary: create media tags: - Media consumes: - application/json produces: - application/json parameters: - name: media in: body schema: type: object properties: api_key: type: string default: '' tag_names_str: type: string default: '' media: $ref: '#/definitions/MediaPost' required: - media - api_key responses: '201': description: success '401': description: unauthorized '/medias/{id}': get: summary: retrieves specific media tags: - Media produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized delete: summary: deletes a specific media tags: - Media produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/proposals/{proposal_id}/attachments': post: summary: creates a new attachment on a proposal tags: - Proposal Attachments consumes: - application/json produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: attachment in: body schema: type: object properties: api_key: type: string default: '' attachment: $ref: '#/definitions/Attachment' responses: '200': description: success '401': description: unauthorized get: summary: returns all the attachments for a proposal tags: - Proposal Attachments produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/proposals/{proposal_id}/attachments/{id}': put: summary: updates a specific proposal tags: - Proposal Attachments produces: - application/json consumes: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: attachment in: body schema: type: object properties: api_key: type: string default: '' attachment: $ref: '#/definitions/Attachment' responses: '204': description: success '401': description: unauthorized '404': description: not found delete: summary: deletes a specific proposal tags: - Proposal Attachments produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/proposals/{proposal_id}/emails': get: summary: returns all the emails for a proposal tags: - Proposal Emails produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized post: summary: creates a new email for proposal tags: - Proposal Emails consumes: - application/json produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: email in: body schema: type: object properties: api_key: type: string default: '' email: $ref: '#/definitions/Email' required: - email responses: '200': description: success '401': description: unauthorized '/proposals/{proposal_id}/pages': post: summary: creates a new page in a proposal tags: - Proposal Pages consumes: - application/json produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: page in: body schema: type: object properties: api_key: type: string default: '' section_id: type: integer page: $ref: '#/definitions/Page' required: - page - section_id responses: '201': description: created '401': description: unauthorized get: summary: get all pages in a proposal tags: - Proposal Pages produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/proposals/{proposal_id}/pages/{id}': get: summary: get specific page in a proposal tags: - Proposal Pages produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized put: summary: updates a specific page in a proposal tags: - Proposal Pages produces: - application/json consumes: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: page in: body schema: type: object properties: api_key: type: string default: '' section_id: type: integer page: $ref: '#/definitions/Page' responses: '204': description: success '401': description: unauthorized delete: summary: deletes a specific page in a proposal tags: - Proposal Pages produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/proposals/{proposal_id}/recipients': post: summary: creates a new recipient for a proposal tags: - Proposal Recipients consumes: - application/json produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: recipient in: body schema: type: object properties: api_key: type: string default: '' recipient: $ref: '#/definitions/Recipient' required: - recipient responses: '200': description: success '401': description: unauthorized '422': description: invalid request get: summary: retrieves all proposal recipients tags: - Proposal Recipients produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/proposals/{proposal_id}/recipients/{id}': get: summary: retrieves a specific proposal recipient tags: - Proposal Recipients produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized put: summary: updates a recipient of a proposal tags: - Proposal Recipients produces: - application/json consumes: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: recipient in: body schema: type: object properties: api_key: type: string default: '' recipient: $ref: '#/definitions/Recipient' responses: '200': description: success '401': description: unauthorized '404': description: not found delete: summary: deletes a specific recipient in a proposal tags: - Proposal Recipients parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/proposals/{proposal_id}/sections': post: summary: creates a new section in the proposal tags: - Proposal Sections consumes: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: section in: body schema: type: object properties: api_key: type: string default: '' section: $ref: '#/definitions/Section' responses: '201': description: success '401': description: unauthorized get: summary: retrieves all sections in a proposal tags: - Proposal Sections produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/proposals/{proposal_id}/sections/{id}': get: summary: retrieves a section in a proposal tags: - Proposal Sections produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized put: summary: updates a section in a proposal tags: - Proposal Sections produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: proposal_id in: path required: true type: integer format: int32 - name: section in: body schema: type: object properties: api_key: type: string default: '' section: $ref: '#/definitions/Section' responses: '204': description: success '401': description: unauthorized '404': description: not found delete: summary: deletes a specific section from a proposal and all associated pages tags: - Proposal Sections produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: proposal_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/proposals/{proposal_id}/versions': post: summary: creates a new version in the proposal tags: - Proposal Versions consumes: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: version in: body schema: type: object properties: api_key: type: string default: '' version: $ref: '#/definitions/Version' responses: '201': description: success '401': description: unauthorized '404': description: not found get: summary: retrieves all versions in a proposal tags: - Proposal Versions produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '404': description: not found '/proposals/{proposal_id}/versions/{id}': get: summary: retrieves a version in a proposal tags: - Proposal Versions produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '404': description: not found put: summary: updates a version in a proposal tags: - Proposal Versions produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: proposal_id in: path required: true type: integer format: int32 - name: version in: body schema: type: object properties: api_key: type: string default: '' version: $ref: '#/definitions/Version' responses: '200': description: success '401': description: unauthorized '404': description: not found /proposals: post: summary: creates a new proposal tags: - Proposal consumes: - application/json produces: - application/json parameters: - name: proposal in: body schema: type: object properties: api_key: type: string default: '' squash_variables: type: boolean default: 'false' description: Converts nested variable hashes to top level variables async: type: boolean default: 'false' description: Process document creation in an asyncronous background job auto_publish: type: boolean default: 'false' description: Publish document upon successful creation proposal: $ref: '#/definitions/Document' required: - proposal responses: '201': description: success '202': description: accepted '401': description: unauthorized '406': description: not acceptable '422': description: invalid request get: summary: retreives all proposals tags: - Proposal produces: - application/json parameters: - name: api_key in: query required: true type: string - name: act_on_behalf in: query required: false type: string responses: '200': description: document found '401': description: unauthorized '/proposals/{id}': get: summary: retreives a specific proposal tags: - Proposal produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: all in: query type: boolean format: boolean - name: api_key in: query required: true type: string responses: '200': description: document found '401': description: unauthorized '404': description: not found put: summary: updates a specific proposal tags: - Proposal produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: proposal in: body schema: type: object properties: api_key: type: string default: '' act_on_behalf: type: string default: '' squash_variables: type: boolean default: 'false' description: Converts nested variable hashes to top level variables proposal: $ref: '#/definitions/Document' required: - proposal responses: '204': description: success '401': description: unauthorized '404': description: not found delete: summary: deletes a specific proposal tags: - Proposal produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string - name: act_on_behalf in: query required: false type: string responses: '204': description: success '401': description: unauthorized '/proposals/{id}/replace_variables': put: summary: replace variables for a specific proposal tags: - Proposal produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: variable_data required: true in: body schema: type: object properties: api_key: type: string default: '' squash_variables: type: boolean default: 'false' description: Converts nested variable hashes to top level variables refresh_pages: type: boolean default: 'false' description: Refresh page content and generated pages based on new variables variable_data: type: object properties: var: type: string default: value required: - variable_data responses: '204': description: success '401': description: unauthorized '404': description: not found '/proposals/{id}/duplicate': post: summary: makes a copy of a specific proposal with updated properties tags: - Proposal consumes: - application/json produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: act_on_behalf in: query required: false type: string - name: proposal in: body schema: type: object properties: api_key: type: string default: '' proposal: $ref: '#/definitions/Document' required: - proposal responses: '200': description: success '401': description: unauthorized '/proposals/{id}/publish': get: summary: publishes a specific proposal tags: - Proposal produces: - application/json consumes: - application/x-www-form-urlencoded parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string - name: act_on_behalf in: query required: false type: string responses: '200': description: success '401': description: unauthorized '/proposals/{id}/pdf': get: summary: returns the url for a pdf of the proposal tags: - Proposal produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string - name: download in: query required: false type: boolean responses: '200': description: success '401': description: unauthorized '/proposals/{id}/word': get: summary: returns the url for a word document of the proposal tags: - Proposal produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string - name: download in: query required: false type: boolean responses: '200': description: success '401': description: unauthorized '/proposals/{proposal_id}/actions': post: summary: creates a new action in a proposal tags: - Proposal Call to Action consumes: - application/json produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: call_to_action in: body schema: type: object properties: api_key: type: string default: '' call_to_action: $ref: '#/definitions/CallToAction' required: - call_to_action responses: '200': description: success '401': description: unauthorized '403': description: forbidden get: summary: retrieves the specific actions of a proposal tags: - Proposal Call to Action produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '404': description: not found '/proposals/{proposal_id}/actions/{id}': get: summary: get a specfic action of a proposal tags: - Proposal Call to Action produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: proposal_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized put: summary: updates the action of a proposal tags: - Proposal Call to Action produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: proposal_id in: path required: true type: integer format: int32 - name: call_to_action in: body schema: type: object properties: api_key: type: string default: '' call_to_action: $ref: '#/definitions/CallToAction' required: - call_to_action responses: '200': description: success '401': description: unauthorized '403': description: not found '404': description: not found delete: summary: deletes a specific action from a proposal tags: - Proposal Call to Action produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: proposal_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized /snippets: post: summary: creates a new snippet tags: - Snippets consumes: - application/json parameters: - name: snippet in: body schema: type: object properties: api_key: type: string default: '' snippet: $ref: '#/definitions/Snippet' required: - snippet responses: '200': description: success '401': description: unauthorized get: summary: retrieves all snippets tags: - Snippets produces: - application/json parameters: - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/snippets/{id}': get: summary: retrieves a specific snippet tags: - Snippets produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized delete: summary: deletes a specific snippet tags: - Snippets produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized /tasks: post: summary: creates a new task tags: - Tasks consumes: - application/json produces: - application/json parameters: - name: task in: body schema: type: object properties: api_key: type: string default: '' task: $ref: '#/definitions/Task' required: - task responses: '200': description: success '401': description: unauthorized get: summary: retrieves all previously created tasks tags: - Tasks produces: - application/json parameters: - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/tasks/{id}': put: summary: updates a specific task tags: - Tasks produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: task in: body schema: type: object properties: api_key: type: string default: '' task: $ref: '#/definitions/Task' required: - task responses: '200': description: success '401': description: unauthorized delete: summary: deletes a specific task tags: - Tasks produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized /templates: post: summary: creates a new templates tags: - Template consumes: - application/json parameters: - name: template in: body schema: type: object properties: api_key: type: string default: '' async: type: boolean default: 'false' description: Process template creation in an asyncronous background job template: $ref: '#/definitions/Template' required: - template responses: '201': description: success '202': description: accepted '401': description: unauthorized '406': description: not acceptable '422': description: invalid request get: summary: retrieves all templates tags: - Template produces: - application/json parameters: - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/templates/{id}': get: summary: retrieves a specific template tags: - Template produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: all in: query type: boolean format: boolean - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized put: summary: updates a specific template tags: - Template produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: template in: body schema: type: object properties: api_key: type: string default: '' template: $ref: '#/definitions/Template' responses: '204': description: success '401': description: unauthorized delete: summary: deletes a specific template tags: - Template produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/templates/{id}/duplicate': post: summary: makes a copy of a specific template with updated properties tags: - Template consumes: - application/json produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: act_on_behalf in: query required: false type: string - name: template in: body schema: type: object properties: api_key: type: string default: '' template: $ref: '#/definitions/Template' required: - template responses: '200': description: success '401': description: unauthorized '/proposals/{proposal_id}/tracking': get: summary: retrieves all tracking information for a proposal tags: - Tracking produces: - application/json parameters: - name: proposal_id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: not found /users: post: summary: creates a new user tags: - Users consumes: - application/json produces: - application/json parameters: - name: user in: body required: true description: Create a new user schema: type: object properties: api_key: type: string default: '' user: $ref: '#/definitions/User' responses: '201': description: success '401': description: unauthorized '422': description: invalid request get: summary: retrieves a specific user tags: - Users consumes: - application/json produces: - application/json parameters: - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/users/{id}': get: summary: retrieves a specific user tags: - Users consumes: - application/json produces: - application/json parameters: - name: id in: path required: true type: integer - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized put: summary: updates a specific user tags: - Users produces: - application/json consumes: - application/json parameters: - name: id in: path required: true type: integer - name: user in: body required: true schema: type: object properties: api_key: type: string default: '' user: $ref: '#/definitions/User' responses: '204': description: success '401': description: unauthorized delete: summary: deletes a specific user tags: - Users produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '204': description: success '401': description: unauthorized '/users/{id}/workgroups': get: summary: list the workgroups of a specific user tags: - Users produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized '/workgroup/{id}': get: summary: retrieves a specific workgroup tags: - Workgroups produces: - application/json parameters: - name: id in: path required: true type: integer format: int32 - name: api_key in: query required: true type: string responses: '200': description: success '401': description: unauthorized