about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/api/v1/instances_controller.rb7
-rw-r--r--app/views/api/v1/instances/show.rabl6
-rw-r--r--config/routes.rb2
-rw-r--r--docs/Using-the-API/API.md7
4 files changed, 22 insertions, 0 deletions
diff --git a/app/controllers/api/v1/instances_controller.rb b/app/controllers/api/v1/instances_controller.rb
new file mode 100644
index 000000000..51d92838a
--- /dev/null
+++ b/app/controllers/api/v1/instances_controller.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class Api::V1::InstancesController < ApiController
+  respond_to :json
+
+  def show; end
+end
diff --git a/app/views/api/v1/instances/show.rabl b/app/views/api/v1/instances/show.rabl
new file mode 100644
index 000000000..88eb08a9e
--- /dev/null
+++ b/app/views/api/v1/instances/show.rabl
@@ -0,0 +1,6 @@
+object false
+
+node(:uri)         { Rails.configuration.x.local_domain }
+node(:title)       { Setting.site_title }
+node(:description) { Setting.site_description }
+node(:email)       { Setting.site_contact_email }
diff --git a/config/routes.rb b/config/routes.rb
index a0c76f829..ac1d78d64 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -131,6 +131,8 @@ Rails.application.routes.draw do
       resources :favourites, only: [:index]
       resources :reports,    only: [:index, :create]
 
+      resource :instance, only: [:show]
+
       resources :follow_requests, only: [:index] do
         member do
           post :authorize
diff --git a/docs/Using-the-API/API.md b/docs/Using-the-API/API.md
index af7858286..4db634a60 100644
--- a/docs/Using-the-API/API.md
+++ b/docs/Using-the-API/API.md
@@ -19,6 +19,7 @@ API overview
   - Who reblogged/favourited a status
   - Following/unfollowing accounts
   - Blocking/unblocking accounts
+  - Getting instance information
   - Creating OAuth apps
 - [Entities](#entities)
   - Status
@@ -226,6 +227,12 @@ Returns the updated relationship to the user.
 
 Returns the updated relationship to the user.
 
+### Getting instance information
+
+**GET /api/v1/instance**
+
+Returns an object containing the `title`, `description`, `email` and `uri` of the instance. Does not require authentication.
+
 # Muting and unmuting users
 
 **POST /api/v1/accounts/:id/mute**