2591 lines
61 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

basePath: /
definitions:
api.AddDeviceRequest:
properties:
uri:
type: string
required:
- uri
type: object
api.AddStickerPackRequest:
properties:
pack_id:
example: 9a32eda01a7a28574f2eb48668ae0dc4
type: string
pack_key:
example: 19546e18eba0ff69dea78eb591465289d39e16f35e58389ae779d4f9455aff3a
type: string
required:
- pack_id
- pack_key
type: object
api.ChangeGroupAdminsRequest:
properties:
admins:
items:
type: string
type: array
required:
- admins
type: object
api.ChangeGroupMembersRequest:
properties:
members:
items:
type: string
type: array
required:
- members
type: object
api.ClosePollRequest:
properties:
poll_timestamp:
example: "1769271479"
type: string
recipient:
example: <phone number> OR <username> OR <group id>
type: string
required:
- poll_timestamp
- recipient
type: object
api.Configuration:
properties:
logging:
$ref: '#/definitions/api.LoggingConfiguration'
required:
- logging
type: object
api.CreateGroupRequest:
properties:
description:
type: string
expiration_time:
type: integer
group_link:
enum:
- disabled
- enabled
- enabled-with-approval
type: string
members:
items:
type: string
type: array
name:
type: string
permissions:
$ref: '#/definitions/data.GroupPermissions'
type: object
api.CreateGroupResponse:
properties:
id:
type: string
required:
- id
type: object
api.CreatePollRequest:
properties:
allow_multiple_selections:
example: true
type: boolean
answers:
example:
- apple
- banana
- orange
items:
type: string
type: array
question:
example: What's your favourite fruit?
type: string
recipient:
example: <phone number> OR <username> OR <group id>
type: string
required:
- answers
- question
- recipient
type: object
api.CreatePollResponse:
properties:
timestamp:
example: "1769271479"
type: string
required:
- timestamp
type: object
api.DeleteLocalAccountDataRequest:
properties:
ignore_registered:
example: false
type: boolean
type: object
api.DeviceLinkUriResponse:
properties:
device_link_uri:
type: string
required:
- device_link_uri
type: object
api.Error:
properties:
error:
type: string
required:
- error
type: object
api.LoggingConfiguration:
properties:
Level:
type: string
required:
- Level
type: object
api.PinMessageInGroupRequest:
properties:
duration:
type: integer
target_author:
type: string
timestamp:
type: integer
required:
- target_author
- timestamp
type: object
api.RateLimitChallengeRequest:
properties:
captcha:
example: signalcaptcha://{captcha value}
type: string
challenge_token:
example: <challenge token>
type: string
required:
- captcha
- challenge_token
type: object
api.Receipt:
properties:
receipt_type:
enum:
- read
- viewed
type: string
recipient:
type: string
timestamp:
type: integer
required:
- receipt_type
- recipient
- timestamp
type: object
api.RegisterNumberRequest:
properties:
captcha:
type: string
use_voice:
type: boolean
type: object
api.RemoteDeleteRequest:
properties:
recipient:
type: string
timestamp:
type: integer
required:
- recipient
- timestamp
type: object
api.RemoteDeleteResponse:
properties:
timestamp:
type: string
required:
- timestamp
type: object
api.RemoveReactionRequest:
properties:
reaction:
type: string
recipient:
type: string
target_author:
type: string
timestamp:
type: integer
required:
- recipient
- target_author
- timestamp
type: object
api.SearchResponse:
properties:
number:
type: string
registered:
type: boolean
required:
- number
- registered
type: object
api.SendMessageError:
properties:
account:
type: string
challenge_tokens:
items:
type: string
type: array
error:
type: string
required:
- account
- error
type: object
api.SendMessageResponse:
properties:
timestamp:
type: string
required:
- timestamp
type: object
api.SendMessageV1:
properties:
base64_attachment:
example: '''<BASE64 ENCODED DATA>'' OR ''data:<MIME-TYPE>;base64,<BASE64 ENCODED
DATA>'' OR ''data:<MIME-TYPE>;filename=<FILENAME>;base64,<BASE64 ENCODED
DATA>'''
type: string
is_group:
type: boolean
message:
type: string
number:
type: string
recipients:
items:
type: string
type: array
required:
- message
- number
- recipients
type: object
api.SendMessageV2:
properties:
base64_attachments:
example:
- <BASE64 ENCODED DATA>
- data:<MIME-TYPE>;base64<comma><BASE64 ENCODED DATA>
- data:<MIME-TYPE>;filename=<FILENAME>;base64<comma><BASE64 ENCODED DATA>
items:
type: string
type: array
edit_timestamp:
type: integer
link_preview:
$ref: '#/definitions/data.LinkPreviewType'
mentions:
items:
$ref: '#/definitions/data.MessageMention'
type: array
message:
type: string
notify_self:
type: boolean
number:
type: string
quote_author:
type: string
quote_mentions:
items:
$ref: '#/definitions/data.MessageMention'
type: array
quote_message:
type: string
quote_timestamp:
type: integer
recipients:
items:
type: string
type: array
sticker:
type: string
text_mode:
enum:
- normal
- styled
type: string
view_once:
type: boolean
required:
- message
- number
- recipients
type: object
api.SendReactionRequest:
properties:
reaction:
type: string
recipient:
type: string
target_author:
type: string
timestamp:
type: integer
required:
- reaction
- recipient
- target_author
- timestamp
type: object
api.SetPinRequest:
properties:
pin:
type: string
required:
- pin
type: object
api.SetUsernameRequest:
properties:
username:
example: test
type: string
required:
- username
type: object
api.TrustIdentityRequest:
properties:
trust_all_known_keys:
example: false
type: boolean
verified_safety_number:
type: string
type: object
api.TrustModeRequest:
properties:
trust_mode:
type: string
required:
- trust_mode
type: object
api.TrustModeResponse:
properties:
trust_mode:
type: string
required:
- trust_mode
type: object
api.TypingIndicatorRequest:
properties:
recipient:
type: string
required:
- recipient
type: object
api.UnpinMessageInGroupRequest:
properties:
target_author:
type: string
timestamp:
type: integer
required:
- target_author
- timestamp
type: object
api.UnregisterNumberRequest:
properties:
delete_account:
example: false
type: boolean
delete_local_data:
example: false
type: boolean
type: object
api.UpdateAccountSettingsRequest:
properties:
discoverable_by_number:
type: boolean
share_number:
type: boolean
type: object
api.UpdateContactRequest:
properties:
expiration_in_seconds:
type: integer
name:
type: string
recipient:
type: string
required:
- recipient
type: object
api.UpdateGroupRequest:
properties:
base64_avatar:
type: string
description:
type: string
expiration_time:
type: integer
group_link:
enum:
- disabled
- enabled
- enabled-with-approval
type: string
name:
type: string
permissions:
$ref: '#/definitions/data.GroupPermissions'
type: object
api.UpdateProfileRequest:
properties:
about:
type: string
base64_avatar:
type: string
name:
type: string
required:
- name
type: object
api.VerifyNumberSettings:
properties:
pin:
type: string
type: object
api.VoteRequest:
properties:
poll_author:
example: <phone number> OR <uuid>
type: string
poll_timestamp:
example: "1769271479"
type: string
recipient:
example: <phone number> OR <username> OR <group id>
type: string
selected_answers:
example:
- 1
items:
type: integer
type: array
required:
- poll_author
- poll_timestamp
- recipient
- selected_answers
type: object
client.About:
properties:
build:
type: integer
capabilities:
additionalProperties:
items:
type: string
type: array
type: object
mode:
type: string
version:
type: string
versions:
items:
type: string
type: array
required:
- build
- capabilities
- mode
- version
- versions
type: object
client.ContactProfile:
properties:
about:
type: string
given_name:
type: string
has_avatar:
type: boolean
last_updated_timestamp:
type: integer
lastname:
type: string
required:
- about
- given_name
- has_avatar
- last_updated_timestamp
- lastname
type: object
client.GroupEntry:
properties:
admins:
items:
type: string
type: array
blocked:
type: boolean
description:
type: string
id:
type: string
internal_id:
type: string
invite_link:
type: string
members:
items:
type: string
type: array
name:
type: string
pending_invites:
items:
type: string
type: array
pending_requests:
items:
type: string
type: array
permissions:
$ref: '#/definitions/data.GroupPermissions'
required:
- admins
- blocked
- description
- id
- internal_id
- invite_link
- members
- name
- pending_invites
- pending_requests
- permissions
type: object
client.IdentityEntry:
properties:
added:
type: string
fingerprint:
type: string
number:
type: string
safety_number:
type: string
status:
type: string
uuid:
type: string
required:
- added
- fingerprint
- number
- safety_number
- status
- uuid
type: object
client.ListContactsResponse:
properties:
blocked:
type: boolean
color:
type: string
given_name:
type: string
message_expiration:
type: string
name:
type: string
nickname:
$ref: '#/definitions/client.Nickname'
note:
type: string
number:
type: string
profile:
$ref: '#/definitions/client.ContactProfile'
profile_name:
type: string
username:
type: string
uuid:
type: string
required:
- blocked
- color
- given_name
- message_expiration
- name
- nickname
- note
- number
- profile
- profile_name
- username
- uuid
type: object
client.ListDevicesResponse:
properties:
creation_timestamp:
type: integer
id:
type: integer
last_seen_timestamp:
type: integer
name:
type: string
required:
- creation_timestamp
- id
- last_seen_timestamp
- name
type: object
client.ListInstalledStickerPacksResponse:
properties:
author:
type: string
installed:
type: boolean
pack_id:
type: string
title:
type: string
url:
type: string
required:
- author
- installed
- pack_id
- title
- url
type: object
client.Nickname:
properties:
family_name:
type: string
given_name:
type: string
name:
type: string
required:
- family_name
- given_name
- name
type: object
client.SetUsernameResponse:
properties:
username:
type: string
username_link:
type: string
required:
- username
- username_link
type: object
data.GroupPermissions:
properties:
add_members:
enum:
- only-admins
- every-member
type: string
edit_group:
enum:
- only-admins
- every-member
type: string
send_messages:
enum:
- only-admins
- every-member
type: string
required:
- add_members
- edit_group
- send_messages
type: object
data.LinkPreviewType:
properties:
base64_thumbnail:
type: string
description:
type: string
title:
type: string
url:
type: string
required:
- base64_thumbnail
- description
- title
- url
type: object
data.MessageMention:
properties:
author:
type: string
length:
type: integer
start:
type: integer
required:
- author
- length
- start
type: object
host: localhost:8080
info:
contact: {}
description: This is the Signal Cli REST API documentation.
title: Signal Cli REST API
version: "1.0"
paths:
/v1/about:
get:
description: Returns the supported API versions and the internal build nr
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/client.About'
summary: Lists general information about the API
tags:
- General
/v1/accounts:
get:
description: Lists all of the accounts linked or registered
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
type: string
type: array
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: List all accounts
tags:
- Accounts
/v1/accounts/{number}/pin:
delete:
description: Removes a Signal Pin
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Remove Pin
tags:
- Accounts
post:
description: Sets a new Signal Pin
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Request
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.SetPinRequest'
produces:
- application/json
responses:
"201":
description: Created
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Set Pin
tags:
- Accounts
/v1/accounts/{number}/rate-limit-challenge:
post:
consumes:
- application/json
description: 'When running into rate limits, sometimes the limit can be lifted,
by solving a CAPTCHA. To get the captcha token, go to https://signalcaptchas.org/challenge/generate.html
For the staging environment, use: https://signalcaptchas.org/staging/registration/generate.html.
The "challenge_token" is the token from the failed send attempt. The "captcha"
is the captcha result, starting with signalcaptcha://'
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Request
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.RateLimitChallengeRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Lift rate limit restrictions by solving a captcha.
tags:
- Accounts
/v1/accounts/{number}/settings:
put:
consumes:
- application/json
description: Update the account attributes on the signal server.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Request
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.UpdateAccountSettingsRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Update the account settings.
tags:
- Accounts
/v1/accounts/{number}/username:
delete:
consumes:
- application/json
description: Delete the username associated with this account.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Remove a username.
tags:
- Accounts
post:
consumes:
- application/json
description: Allows to set the username that should be used for this account.
This can either be just the nickname (e.g. test) or the complete username
with discriminator (e.g. test.123). Returns the new username with discriminator
and the username link.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Request
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.SetUsernameRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/client.SetUsernameResponse'
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Set a username.
tags:
- Accounts
/v1/attachments:
get:
description: List all downloaded attachments
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
type: string
type: array
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: List all attachments.
tags:
- Attachments
/v1/attachments/{attachment}:
delete:
description: Remove the attachment with the given id from filesystem.
parameters:
- description: Attachment ID
in: path
name: attachment
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Remove attachment.
tags:
- Attachments
get:
description: Serve the attachment with the given id
parameters:
- description: Attachment ID
in: path
name: attachment
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Serve Attachment.
tags:
- Attachments
/v1/configuration:
get:
consumes:
- application/json
description: List the REST API configuration.
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.Configuration'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: List the REST API configuration.
tags:
- General
post:
consumes:
- application/json
description: Set the REST API configuration.
parameters:
- description: Configuration
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.Configuration'
produces:
- application/json
responses:
"204":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Set the REST API configuration.
tags:
- General
/v1/configuration/{number}/settings:
get:
consumes:
- application/json
description: List account specific settings.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Request
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.TrustModeResponse'
produces:
- application/json
responses:
"200":
description: OK
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: List account specific settings.
tags:
- General
post:
consumes:
- application/json
description: Set account specific settings.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Request
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.TrustModeRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Set account specific settings.
tags:
- General
/v1/contacts/{number}:
get:
description: List all contacts for the given number.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Include all known recipients, not only contacts.
in: query
name: all_recipients
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/client.ListContactsResponse'
type: array
summary: List Contacts
tags:
- Contacts
put:
consumes:
- application/json
description: Updates the info associated to a number on the contact list.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Contact
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.UpdateContactRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Updates the info associated to a number on the contact list. If the
contact doesnt exist yet, it will be added.
tags:
- Contacts
/v1/contacts/{number}/{uuid}:
get:
description: List a specific contact.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Include all known recipients, not only contacts.
in: query
name: all_recipients
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/client.ListContactsResponse'
summary: List Contact
tags:
- Contacts
/v1/contacts/{number}/{uuid}/avatar:
get:
description: Returns the avatar of a contact.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"200":
description: Image
schema:
type: string
summary: Returns the avatar of a contact
tags:
- Contacts
/v1/contacts/{number}/sync:
post:
consumes:
- application/json
description: Send a synchronization message with the local contacts list to
all linked devices. This command should only be used if this is the primary
device.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Send a synchronization message with the local contacts list to all
linked devices.
tags:
- Contacts
/v1/devices/{number}:
get:
consumes:
- application/json
description: List linked devices associated to this device.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/client.ListDevicesResponse'
type: array
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: List linked devices.
tags:
- Devices
post:
consumes:
- application/json
description: Links another device to this device. Only works, if this is the
master device.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Request
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.AddDeviceRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Links another device to this device.
tags:
- Devices
/v1/devices/{number}/{deviceId}:
delete:
description: Remove a linked device from the primary account.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Device ID from listDevices
in: path
name: deviceId
required: true
type: integer
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Remove linked device
tags:
- Devices
/v1/devices/{number}/local-data:
delete:
consumes:
- application/json
description: Delete all local data for the specified account. Only use this
after unregistering the account or after removing a linked device.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Cleanup options
in: body
name: data
schema:
$ref: '#/definitions/api.DeleteLocalAccountDataRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Delete local account data
tags:
- Devices
/v1/groups/{number}:
get:
consumes:
- application/json
description: List all Signal Groups.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: 'Expand the response to show more details (default: false)'
in: query
name: expand
type: boolean
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/client.GroupEntry'
type: array
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: List all Signal Groups.
tags:
- Groups
post:
consumes:
- application/json
description: Create a new Signal Group with the specified members.
parameters:
- description: Input Data
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.CreateGroupRequest'
- description: Registered Phone Number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/api.CreateGroupResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Create a new Signal Group.
tags:
- Groups
/v1/groups/{number}/{groupid}:
delete:
consumes:
- application/json
description: Delete the specified Signal Group.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group Id
in: path
name: groupid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Delete a Signal Group.
tags:
- Groups
get:
consumes:
- application/json
description: List a specific Signal Group.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group ID
in: path
name: groupid
required: true
type: string
- description: 'Expand the response to show more details (default: false)'
in: query
name: expand
type: boolean
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/client.GroupEntry'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: List a Signal Group.
tags:
- Groups
put:
consumes:
- application/json
description: Update the state of a Signal Group.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group ID
in: path
name: groupid
required: true
type: string
- description: Input Data
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.UpdateGroupRequest'
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Update the state of a Signal Group.
tags:
- Groups
/v1/groups/{number}/{groupid}/admins:
delete:
consumes:
- application/json
description: Remove one or more admins from an existing Signal Group.
parameters:
- description: Admins
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.ChangeGroupAdminsRequest'
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group ID
in: path
name: groupid
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Remove one or more admins from an existing Signal Group.
tags:
- Groups
post:
consumes:
- application/json
description: Add one or more admins to an existing Signal Group.
parameters:
- description: Admins
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.ChangeGroupAdminsRequest'
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group ID
in: path
name: groupid
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Add one or more admins to an existing Signal Group.
tags:
- Groups
/v1/groups/{number}/{groupid}/avatar:
get:
consumes:
- application/json
description: Returns the avatar of a Signal Group.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group ID
in: path
name: groupid
required: true
type: string
produces:
- application/json
responses:
"200":
description: Image
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Returns the avatar of a Signal Group.
tags:
- Groups
/v1/groups/{number}/{groupid}/block:
post:
consumes:
- application/json
description: Block the specified Signal Group.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group ID
in: path
name: groupid
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Block a Signal Group.
tags:
- Groups
/v1/groups/{number}/{groupid}/join:
post:
consumes:
- application/json
description: Join the specified Signal Group.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group ID
in: path
name: groupid
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Join a Signal Group.
tags:
- Groups
/v1/groups/{number}/{groupid}/members:
delete:
consumes:
- application/json
description: Remove one or more members from an existing Signal Group.
parameters:
- description: Members
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.ChangeGroupMembersRequest'
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group ID
in: path
name: groupid
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Remove one or more members from an existing Signal Group.
tags:
- Groups
post:
consumes:
- application/json
description: Add one or more members to an existing Signal Group.
parameters:
- description: Members
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.ChangeGroupMembersRequest'
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group ID
in: path
name: groupid
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Add one or more members to an existing Signal Group.
tags:
- Groups
/v1/groups/{number}/{groupid}/pin-message:
delete:
consumes:
- application/json
description: Unpin a message in a Signal Group.
parameters:
- description: Unpin
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.UnpinMessageInGroupRequest'
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group Id
in: path
name: groupid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Unpin a message in a Signal Group.
tags:
- Groups
post:
consumes:
- application/json
description: Pin a message in a Signal Group.
parameters:
- description: Pin
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.PinMessageInGroupRequest'
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group Id
in: path
name: groupid
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Pin a message in a Signal Group.
tags:
- Groups
/v1/groups/{number}/{groupid}/quit:
post:
consumes:
- application/json
description: Quit the specified Signal Group.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Group ID
in: path
name: groupid
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Quit a Signal Group.
tags:
- Groups
/v1/health:
get:
description: Internally used by the docker container to perform the health check.
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
summary: API Health Check
tags:
- General
/v1/identities/{number}:
get:
description: List all identities for the given number.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/client.IdentityEntry'
type: array
summary: List Identities
tags:
- Identities
/v1/identities/{number}/trust/{numberToTrust}:
put:
description: Trust an identity. When 'trust_all_known_keys' is set to' true',
all known keys of this user are trusted. **This is only recommended for testing.**
parameters:
- description: Input Data
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.TrustIdentityRequest'
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Number To Trust
in: path
name: numberToTrust
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
summary: Trust Identity
tags:
- Identities
/v1/polls/{number}:
delete:
consumes:
- application/json
description: Close a poll
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Type
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.ClosePollRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Close a poll.
tags:
- Polls
post:
consumes:
- application/json
description: Create a new poll
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Type
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.CreatePollRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/api.CreatePollResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Create a new poll.
tags:
- Polls
/v1/polls/{number}/vote:
post:
consumes:
- application/json
description: Answer a poll
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Type
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.VoteRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Answer a poll.
tags:
- Polls
/v1/profiles/{number}:
put:
description: Set your name and optional an avatar.
parameters:
- description: Profile Data
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.UpdateProfileRequest'
- description: Registered Phone Number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Update Profile.
tags:
- Profiles
/v1/qrcodelink:
get:
description: Link device and generate QR code
parameters:
- description: Device Name
in: query
name: device_name
required: true
type: string
- description: QRCode Version (defaults to 10)
in: query
name: qrcode_version
type: integer
produces:
- application/json
responses:
"200":
description: Image
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Link device and generate QR code.
tags:
- Devices
/v1/qrcodelink/raw:
get:
description: Generate the deviceLinkUri string for linking without scanning
a QR code.
parameters:
- description: Device Name
in: query
name: device_name
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/api.DeviceLinkUriResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Get raw device link URI
tags:
- Devices
/v1/reactions/{number}:
delete:
consumes:
- application/json
description: Remove a reaction
parameters:
- description: Reaction
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.RemoveReactionRequest'
- description: Registered phone number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Remove a reaction.
tags:
- Reactions
post:
consumes:
- application/json
description: React to a message
parameters:
- description: Reaction
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.SendReactionRequest'
- description: Registered phone number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Send a reaction.
tags:
- Reactions
/v1/receipts/{number}:
post:
consumes:
- application/json
description: Send a read or viewed receipt
parameters:
- description: Receipt
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.Receipt'
- description: Registered phone number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Send a receipt.
tags:
- Receipts
/v1/receive/{number}:
get:
consumes:
- application/json
description: Receives Signal Messages from the Signal Network. If you are running
the docker container in normal/native mode, this is a GET endpoint. In json-rpc
mode this is a websocket endpoint.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: 'Receive timeout in seconds (default: 1)'
in: query
name: timeout
type: string
- description: Specify whether the attachments of the received message should
be ignored
in: query
name: ignore_attachments
type: string
- description: Specify whether stories should be ignored when receiving messages
in: query
name: ignore_stories
type: string
- description: Specify whether avatar downloads should be ignored when receiving
messages
in: query
name: ignore_avatars
type: string
- description: Specify whether sticker pack downloads should be ignored when
receiving messages
in: query
name: ignore_stickers
type: string
- description: 'Specify the maximum number of messages to receive (default:
unlimited)'
in: query
name: max_messages
type: string
- description: Specify whether read receipts should be sent when receiving messages
in: query
name: send_read_receipts
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
type: string
type: array
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Receive Signal Messages.
tags:
- Messages
/v1/register/{number}:
post:
consumes:
- application/json
description: Register a phone number with the signal network.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Additional Settings
in: body
name: data
schema:
$ref: '#/definitions/api.RegisterNumberRequest'
produces:
- application/json
responses:
"201":
description: Created
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Register a phone number.
tags:
- Devices
/v1/register/{number}/verify/{token}:
post:
consumes:
- application/json
description: Verify a registered phone number with the signal network.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Additional Settings
in: body
name: data
schema:
$ref: '#/definitions/api.VerifyNumberSettings'
- description: Verification Code
in: path
name: token
required: true
type: string
produces:
- application/json
responses:
"201":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Verify a registered phone number.
tags:
- Devices
/v1/remote-delete/{number}:
delete:
consumes:
- application/json
description: Delete a signal message
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Type
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.RemoteDeleteRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/api.RemoteDeleteResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Delete a signal message.
tags:
- Messages
/v1/search/{number}:
get:
consumes:
- application/json
description: Check if one or more phone numbers are registered with the Signal
Service.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- collectionFormat: multi
description: Numbers to check
in: query
items:
type: string
name: numbers
required: true
type: array
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/api.SearchResponse'
type: array
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Check if one or more phone numbers are registered with the Signal Service.
tags:
- Search
/v1/send:
post:
consumes:
- application/json
deprecated: true
description: Send a signal message
parameters:
- description: Input Data
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.SendMessageV1'
produces:
- application/json
responses:
"201":
description: OK
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Send a signal message.
tags:
- Messages
/v1/sticker-packs/{number}:
get:
consumes:
- application/json
description: List Installed Sticker Packs.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/client.ListInstalledStickerPacksResponse'
type: array
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: List Installed Sticker Packs.
tags:
- Sticker Packs
post:
consumes:
- application/json
description: 'In order to add a sticker pack, browse to https://signalstickers.org/
and select the sticker pack you want to add. Then, press the "Add to Signal"
button. If you look at the address bar in your browser you should see an URL
in this format: https://signal.art/addstickers/#pack_id=XXX&pack_key=YYY,
where XXX is the pack_id and YYY is the pack_key.'
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Request
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.AddStickerPackRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Add Sticker Pack.
tags:
- Sticker Packs
/v1/typing-indicator/{number}:
delete:
consumes:
- application/json
description: Hide Typing Indicator.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Type
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.TypingIndicatorRequest'
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Hide Typing Indicator.
tags:
- Messages
put:
consumes:
- application/json
description: Show Typing Indicator.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Type
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.TypingIndicatorRequest'
produces:
- application/json
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Show Typing Indicator.
tags:
- Messages
/v1/unregister/{number}:
post:
consumes:
- application/json
description: Disables push support for this device. **WARNING:** If *delete_account*
is set to *true*, the account will be deleted from the Signal Server. This
cannot be undone without loss.
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Additional Settings
in: body
name: data
schema:
$ref: '#/definitions/api.UnregisterNumberRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.Error'
summary: Unregister a phone number.
tags:
- Devices
/v2/send:
post:
consumes:
- application/json
description: 'Send a signal message. Set the text_mode to ''styled'' in case
you want to add formatting to your text message. Styling Options: \*italic
text\*, \*\*bold text\*\*, ~strikethrough text~, ||spoiler||, \`monospace\`.
If you want to escape a formatting character, prefix it with two backslashes.'
parameters:
- description: Input Data
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.SendMessageV2'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/api.SendMessageResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/api.SendMessageError'
summary: Send a signal message.
tags:
- Messages
schemes:
- http
swagger: "2.0"
tags:
- description: Some general endpoints.
name: General
- description: Register and link Devices.
name: Devices
- description: List registered and linked accounts
name: Accounts
- description: Create, List and Delete Signal Groups.
name: Groups
- description: Send and Receive Signal Messages.
name: Messages
- description: List and Delete Attachments.
name: Attachments
- description: Update Profile.
name: Profiles
- description: List and Trust Identities.
name: Identities
- description: React to messages.
name: Reactions
- description: Send receipts for messages.
name: Receipts
- description: Search the Signal Service.
name: Search
- description: List and Install Sticker Packs
name: Sticker Packs