Discourse Invites API
The Invites API from Discourse — 4 operation(s) for invites.
The Invites API from Discourse — 4 operation(s) for invites.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/discourse-invites-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Discourse API Documentation Invites API
x-logo:
url: https://docs.discourse.org/logo.svg
version: latest
description: This page contains the documentation on how to use Discourse through API calls.
license:
name: MIT
url: https://docs.discourse.org/LICENSE.txt
servers:
- url: https://{defaultHost}
variables:
defaultHost:
default: discourse.example.com
tags:
- name: Invites
paths:
/invites.json:
post:
summary: Create an invite
tags:
- Invites
operationId: createInvite
parameters:
- name: Api-Key
in: header
required: true
schema:
type: string
- name: Api-Username
in: header
required: true
schema:
type: string
responses:
'200':
description: success response
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
id:
type: integer
example: 42
invite_key:
type: string
link:
type: string
example: http://example.com/invites/9045fd767efe201ca60c6658bcf14158
description:
type:
- string
- 'null'
email:
type: string
example: not-a-user-yet@example.com
domain:
type:
- string
- 'null'
emailed:
type: boolean
example: false
can_delete_invite:
type: boolean
custom_message:
type:
- string
- 'null'
example: Hello world!
created_at:
type: string
example: '2021-01-01T12:00:00.000Z'
updated_at:
type: string
example: '2021-01-01T12:00:00.000Z'
expires_at:
type: string
example: '2021-02-01T12:00:00.000Z'
expired:
type: boolean
example: false
topics:
type: array
items:
type: object
example: []
groups:
type: array
items:
type: object
example: []
required:
- id
- invite_key
- link
- description
- email
- domain
- emailed
- can_delete_invite
- custom_message
- created_at
- updated_at
- expires_at
- expired
- topics
- groups
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
email:
type: string
example: not-a-user-yet@example.com
description: required for email invites only
skip_email:
type: boolean
default: false
custom_message:
type: string
description: optional, for email invites
max_redemptions_allowed:
type: integer
example: 5
default: 1
description: optional, for link invites
topic_id:
type: integer
group_ids:
type: string
description: 'Optional, either this or `group_names`. Comma separated
list for multiple ids.'
example: 42,43
group_names:
type: string
description: 'Optional, either this or `group_ids`. Comma separated
list for multiple names.'
example: foo,bar
expires_at:
type: string
description: 'optional, if not supplied, the invite_expiry_days site
setting is used'
/invites/create-multiple.json:
post:
summary: Create multiple invites
tags:
- Invites
operationId: createMultipleInvites
parameters:
- name: Api-Key
in: header
required: true
schema:
type: string
- name: Api-Username
in: header
required: true
schema:
type: string
responses:
'200':
description: success response
content:
application/json:
schema:
type: object
properties:
num_successfully_created_invitations:
type: integer
example: 42
num_failed_invitations:
type: integer
example: 42
failed_invitations:
type: array
items: {}
example: []
successful_invitations:
type: array
example:
- id: 42
link: http://example.com/invites/9045fd767efe201ca60c6658bcf14158
email: not-a-user-yet-1@example.com
emailed: true
custom_message: Hello world!
topics: []
groups: []
created_at: '2021-01-01T12:00:00.000Z'
updated_at: '2021-01-01T12:00:00.000Z'
expires_at: '2021-02-01T12:00:00.000Z'
expired: false
- id: 42
link: http://example.com/invites/c6658bcf141589045fd767efe201ca60
email: not-a-user-yet-2@example.com
emailed: true
custom_message: Hello world!
topics: []
groups: []
created_at: '2021-01-01T12:00:00.000Z'
updated_at: '2021-01-01T12:00:00.000Z'
expires_at: '2021-02-01T12:00:00.000Z'
expired: false
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
type: string
example:
- not-a-user-yet-1@example.com
- not-a-user-yet-2@example.com
description: 'pass 1 email per invite to be generated. other properties
will be shared by each invite.'
skip_email:
type: boolean
default: false
custom_message:
type: string
description: optional, for email invites
max_redemptions_allowed:
type: integer
example: 5
default: 1
description: optional, for link invites
topic_id:
type: integer
group_ids:
type: string
description: 'Optional, either this or `group_names`. Comma separated
list for multiple ids.'
example: 42,43
group_names:
type: string
description: 'Optional, either this or `group_ids`. Comma separated
list for multiple names.'
example: foo,bar
expires_at:
type: string
description: 'optional, if not supplied, the invite_expiry_days site
setting is used'
/t/{id}/invite.json:
post:
summary: Invite to topic
tags:
- Invites
operationId: inviteToTopic
parameters:
- name: Api-Key
in: header
required: true
schema:
type: string
- name: Api-Username
in: header
required: true
schema:
type: string
- name: id
in: path
schema:
type: string
required: true
responses:
'200':
description: topic updated
content:
application/json:
schema:
type: object
properties:
user:
type: object
properties:
id:
type: integer
username:
type: string
name:
type: string
avatar_template:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
user:
type: string
email:
type: string
/t/{id}/invite-group.json:
post:
summary: Invite group to topic
tags:
- Invites
operationId: inviteGroupToTopic
parameters:
- name: Api-Key
in: header
required: true
schema:
type: string
- name: Api-Username
in: header
required: true
schema:
type: string
- name: id
in: path
schema:
type: string
required: true
responses:
'200':
description: invites to a PM
content:
application/json:
schema:
type: object
properties:
group:
type: object
properties:
id:
type: integer
name:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
group:
type: string
description: The name of the group to invite
should_notify:
type: boolean
description: Whether to notify the group, it defaults to true