---
title: "Read Community"
method: GET
path: "/v1/community/{community_id}"
tags: ["Community"]
---

# Read Community

`GET /v1/community/{community_id}`

## Request

- Base URL: `https://api.navigatr.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.navigatr.app/v1/community/{community_id}`
- Auth: OAuth 2
  - Password
  - Token URL: `/v1/token`

Get data for a specific community.

Returns the full `Community` schema to platform admins and the community's
own admins. All other callers (including unauthenticated) receive a
reduced `Community_Public` schema that omits PII (email, phone), internal
CRM ids, consent audit trail, feature flags, Spydus credentials, and the
arbitrary `config` dict.

## Path parameters

- `community_id` integer, required

## Headers

- `X-Access-Token` string, nullable

## Response `200`

Successful Response

- union
  - Community
    - `name` string, nullable
    - `short_name` string, nullable
    - `organisation_name` string, nullable
    - `company_number` string, nullable
    - `verification_url` string, nullable
    - `type` 'City' | 'Region' | 'Local_Authority' | 'Membership_Organisation' | 'Awarding_Body' | 'Partnership' | 'Corporate' | 'Association' | 'University' | 'College' | 'Charity' | 'Other'
    - `description` string, nullable
    - `email` string, email, nullable
    - `phone` string, nullable
    - `address` string, nullable
    - `latitude` number, nullable
    - `longitude` number, nullable
    - `city` string, nullable
    - `country` string, nullable
    - `is_default` boolean, nullable
    - `external_url` string, nullable
    - `image_url` string, nullable
    - `banner_url` string, nullable
    - `image_url_2x` string, nullable
    - `banner_url_2x` string, nullable
    - `image_url_original` string, nullable
    - `banner_url_original` string, nullable
    - `featured` boolean, nullable
    - `colour` string, nullable
    - `enable_summary_emails` boolean, nullable
    - `linkedin_organisation_id` integer, nullable
    - `social_handle_linkedin` string, nullable
    - `social_handle_twitter` string, nullable
    - `social_handle_facebook` string, nullable
    - `social_handle_instagram` string, nullable
    - `consent_supply_of_service` string, date-time, nullable
    - `consent_supply_of_service_by` integer, nullable
    - `pipedrive_org_id` integer, nullable
    - `pipedrive_deal_id` integer, nullable
    - `id` integer
    - `status` 'Active' | 'Suspended' | 'Deleted'
    - `seo_keywords` string[], nullable
    - `seo_title` string, nullable
    - `seo_description` string, nullable
    - `enable_engagement_emails` boolean, nullable
    - `suspension_reason` 'Subscription_Expired' | 'Manual'
    - `ranking` integer, nullable
    - `created_by_id` integer, nullable
    - `updated_by_id` integer, nullable
    - `verified_by_id` integer, nullable
    - `verification_request_by_id` integer, nullable
    - `time_created` string, date-time
    - `time_updated` string, date-time, nullable
    - `time_verified` string, date-time, nullable
    - `time_stats_email_sent` string, date-time, nullable
    - `postal_address` Address
      - `full_address` string, nullable
      - `name` string, nullable
      - `number` string, nullable
      - `street` string, nullable
      - `postcode` string, nullable
      - `locality` string, nullable
      - `city` string, nullable
      - `district` string, nullable
      - `region` string, nullable
      - `country` string, nullable
    - `config` unknown
    - `survey_consent` string, nullable
    - `is_demo` boolean, nullable
    - `is_verified` boolean, nullable
    - `verification_text` string, nullable
    - `verification_email` string, email, nullable
    - `enable_analytics` boolean, nullable
    - `enable_members` boolean, nullable
    - `enable_library_card` boolean, nullable
    - `spydus_library_url` string, nullable
    - `referral_code` string, nullable
    - `member_visibility_default` 'Public' | 'Private': Who may see a user's human-readable public pages (profile, badge and pathway assertion). Deliberately NOT a User_Status value: a Private user is still Active, they can sign in, earn badges and be issued to exactly as before. Also independent of `noindex_enabled`, which only asks search engines not to index a page that stays publicly reachable. Enforced in crud_user_detail.can_read, so every existing "view this user" gate inherits it.
    - `url` string, nullable
  - CommunityPublic
    - `id` integer
    - `status` 'Active' | 'Suspended' | 'Deleted'
    - `type` 'City' | 'Region' | 'Local_Authority' | 'Membership_Organisation' | 'Awarding_Body' | 'Partnership' | 'Corporate' | 'Association' | 'University' | 'College' | 'Charity' | 'Other'
    - `name` string, nullable
    - `short_name` string, nullable
    - `description` string, nullable
    - `external_url` string, nullable
    - `address` string, nullable
    - `latitude` number, nullable
    - `longitude` number, nullable
    - `is_verified` boolean, nullable
    - `verification_text` string, nullable
    - `verification_url` string, nullable
    - `is_demo` boolean, nullable
    - `colour` string, nullable
    - `spydus_library_url` string, nullable
    - `referral_code` string, nullable
    - `image_url` string, nullable
    - `banner_url` string, nullable
    - `image_url_2x` string, nullable
    - `banner_url_2x` string, nullable
    - `image_url_original` string, nullable
    - `banner_url_original` string, nullable
    - `linkedin_organisation_id` integer, nullable
    - `social_handle_linkedin` string, nullable
    - `social_handle_twitter` string, nullable
    - `social_handle_facebook` string, nullable
    - `social_handle_instagram` string, nullable
    - `seo_title` string, nullable
    - `seo_description` string, nullable
    - `seo_keywords` string[], nullable
    - `url` string, nullable

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `410`: Gone
- `422`: Unprocessable Content

## Changes

- **2026-11-07** `efbd3c328549`: 1 info
  - added the optional property `anyOf[subschema #1: Community]/suspension_reason` to the response with the `200` status
- **2026-09-24** `2e7136176810`: 1 info
  - added the optional property `anyOf[subschema #1: Community]/member_visibility_default` to the response with the `200` status
- **2026-08-06** `4039d06e340b`: 1 breaking, 54 warning, 4 info
  - the response's body type changed from `object` to no type for status `200`
  - removed the optional property `address` from the response with the `200` status
  - removed the optional property `banner_url` from the response with the `200` status
  - removed the optional property `banner_url_2x` from the response with the `200` status
  - …55 more
- **2025-11-20** `6eb631bcc695`: 53 breaking, 19 info
  - response property `address` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `banner_url` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `banner_url_2x` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `banner_url_original` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - …68 more

[Operation history](https://skmtc.dev/navigatr/apis/navigatr-api/changes/v1/community/:community_id/get.md)

---

[API](https://skmtc.dev/navigatr/apis/navigatr-api.md) - [All operations](https://skmtc.dev/navigatr/apis/navigatr-api/llms.txt) - [OpenAPI document](https://skmtc.dev/navigatr/apis/navigatr-api/revisions/efbd3c328549?raw)
