basePath: /
definitions:
  api.About:
    properties:
      build:
        type: integer
      versions:
        items:
          type: string
        type: array
    type: object
  api.Configuration:
    properties:
      logging:
        $ref: '#/definitions/api.LoggingConfiguration'
        type: object
    type: object
  api.CreateGroupRequest:
    properties:
      members:
        items:
          type: string
        type: array
      name:
        type: string
    type: object
  api.CreateGroupResponse:
    properties:
      id:
        type: string
    type: object
  api.Error:
    properties:
      error:
        type: string
    type: object
  api.GroupEntry:
    properties:
      blocked:
        type: boolean
      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
    type: object
  api.IdentityEntry:
    properties:
      added:
        type: string
      fingerprint:
        type: string
      number:
        type: string
      safety_number:
        type: string
      status:
        type: string
    type: object
  api.LoggingConfiguration:
    properties:
      Level:
        type: string
    type: object
  api.RegisterNumberRequest:
    properties:
      captcha:
        type: string
      use_voice:
        type: boolean
    type: object
  api.SendMessageV1:
    properties:
      base64_attachment:
        type: string
      is_group:
        type: boolean
      message:
        type: string
      number:
        type: string
      recipients:
        items:
          type: string
        type: array
    type: object
  api.SendMessageV2:
    properties:
      base64_attachments:
        items:
          type: string
        type: array
      message:
        type: string
      number:
        type: string
      recipients:
        items:
          type: string
        type: array
    type: object
  api.TrustIdentityRequest:
    properties:
      verified_safety_number:
        type: string
    type: object
  api.UpdateProfileRequest:
    properties:
      base64_avatar:
        type: string
      name:
        type: string
    type: object
  api.VerifyNumberSettings:
    properties:
      pin:
        type: string
    type: object
host: 127.0.0.1:8080
info:
  contact: {}
  description: This is the Signal Cli REST API documentation.
  license: {}
  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/api.About'
      summary: Lists general information about the API
      tags:
      - General
  /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:
        "201":
          description: OK
          schema:
            type: string
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
      summary: Set the REST API configuration.
      tags:
      - General
  /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
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/api.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
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.GroupEntry'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
      summary: List 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:
        "200":
          description: OK
          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:
        "200":
          description: OK
          schema:
            type: string
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.Error'
      summary: Join 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:
        "200":
          description: OK
          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/api.IdentityEntry'
            type: array
      summary: List Identities
      tags:
      - Identities
  /v1/identities/{number}/trust/{numberToTrust}:
    put:
      description: Trust an identity.
      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/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
      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/receive/{number}:
    get:
      consumes:
      - application/json
      description: Receives Signal Messages from the Signal Network.
      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
      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": {}
        "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/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
  /v2/send:
    post:
      consumes:
      - application/json
      description: Send a signal message
      parameters:
      - description: Input Data
        in: body
        name: data
        required: true
        schema:
          $ref: '#/definitions/api.SendMessageV2'
      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
swagger: "2.0"
tags:
- description: Some general endpoints.
  name: General
- description: Register and link Devices.
  name: Devices
- 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
