OpenAPI Specification
openapi: 3.0.3
info:
title: Missive REST Analytics Drafts API
description: The Missive REST API allows developers to manage conversations, messages, contacts, drafts, labels, and analytics programmatically. Authentication uses Bearer tokens (personal access tokens) generated in Missive preferences. The API requires a Productive plan or higher to generate API tokens. Responses are JSON-formatted with HTTP 200 or 201 success codes.
version: '1'
contact:
name: Missive Support
url: https://missiveapp.com/help
termsOfService: https://missiveapp.com/terms
servers:
- url: https://public.missiveapp.com/v1
description: Missive REST API v1
security:
- bearerAuth: []
tags:
- name: Drafts
description: Create and delete draft messages
paths:
/drafts:
post:
operationId: createDraft
summary: Create Draft
description: Create a draft message. Supports email, SMS, and WhatsApp channels. Set send=true to send immediately. Supports conversation threading, assignees, shared labels, and auto-followup.
tags:
- Drafts
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDraftRequest'
responses:
'201':
description: Draft created (may have empty body if sent immediately)
content:
application/json:
schema:
$ref: '#/components/schemas/DraftResponse'
'400':
$ref: '#/components/responses/BadRequest'
/drafts/{id}:
delete:
operationId: deleteDraft
summary: Delete Draft
description: Delete a draft from a conversation.
tags:
- Drafts
parameters:
- $ref: '#/components/parameters/draftId'
responses:
'200':
description: Draft deleted successfully
'404':
description: Draft not found
components:
schemas:
MessageField:
type: object
properties:
name:
type: string
address:
type: string
phone_number:
type: string
id:
type: string
username:
type: string
Error:
type: object
properties:
error:
type: string
description: Error message
DraftResponse:
type: object
properties:
drafts:
$ref: '#/components/schemas/Message'
Message:
type: object
properties:
id:
type: string
subject:
type: string
preview:
type: string
body:
type: string
type:
type: string
from_field:
$ref: '#/components/schemas/MessageField'
to_fields:
type: array
items:
$ref: '#/components/schemas/MessageField'
cc_fields:
type: array
items:
$ref: '#/components/schemas/MessageField'
bcc_fields:
type: array
items:
$ref: '#/components/schemas/MessageField'
references:
type: array
items:
type: string
in_reply_to:
type: array
items:
type: string
attachments:
type: array
items:
$ref: '#/components/schemas/Attachment'
created_at:
type: integer
format: int64
updated_at:
type: integer
format: int64
Attachment:
type: object
properties:
id:
type: string
filename:
type: string
extension:
type: string
media_type:
type: string
sub_type:
type: string
size:
type: integer
url:
type: string
width:
type: integer
height:
type: integer
CreateDraftRequest:
type: object
properties:
subject:
type: string
body:
type: string
description: HTML body content
from_field:
$ref: '#/components/schemas/MessageField'
to_fields:
type: array
items:
$ref: '#/components/schemas/MessageField'
cc_fields:
type: array
items:
$ref: '#/components/schemas/MessageField'
bcc_fields:
type: array
items:
$ref: '#/components/schemas/MessageField'
attachments:
type: array
items:
type: object
properties:
filename:
type: string
base64_data:
type: string
conversation:
type: string
description: Conversation ID to add draft to
references:
type: array
items:
type: string
description: Email Message-IDs for threading
team:
type: string
force_team:
type: boolean
organization:
type: string
add_users:
type: array
items:
type: string
add_assignees:
type: array
items:
type: string
remove_assignees:
type: array
items:
type: string
add_shared_labels:
type: array
items:
type: string
remove_shared_labels:
type: array
items:
type: string
send:
type: boolean
description: Send immediately if true
send_at:
type: integer
format: int64
description: Unix timestamp to schedule sending
auto_followup:
type: boolean
description: Enable auto follow-up
external_response_id:
type: string
description: WhatsApp template ID
external_response_variables:
type: object
description: WhatsApp template variable substitutions
additionalProperties:
type: string
responses:
BadRequest:
description: Bad request — invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
draftId:
name: id
in: path
required: true
description: Draft message ID
schema:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'Personal access token generated in Missive preferences. Format: Bearer missive_pat-[token]. Requires Productive plan or higher.'
externalDocs:
description: Missive Developer Documentation
url: https://missiveapp.com/docs/developers/rest-api