Welcome to the Ion API!

Documentation is below. <pk> refers to the unique id of a certain object - this is shown as "id" in most lists and references.

The general form of the api link (with /api/ assumed to be prepended) is shown, along with an example URL.

All of the API methods, except for those relating to the Bell Schedule, require authentication.

GET /api
Content-Type: application/json
Vary: Accept

    "Schedule": {
        "/schedule": [
            "Get today's schedule",
        "/schedule?page_size=<num>": [
            "Get the schedule for the next <num> days",
        "/schedule/<date>": [
            "Get the schedule for a specific day, in YYYY-MM-DD format",
    "Announcements": {
        "/announcements": [
            "List announcements",
        "/announcements/<pk>": [
            "Get announcement details",
    "Emergency Announcements": {
        "/emerg": [
            "Get FCPS emergency announcement information",
    "Profile": {
        "/profile": [
            "Get current user profile",
        "/profile/<pk>": [
            "Get specific user profile by user ID",
        "/profile/<username>": [
            "Get specific user profile by username",
        "/profile/<pk>/picture": [
            "Get a specific user's profile picture by user ID",
        "/profile/<username>/picture": [
            "Get a specific user's profile picture by username",
    "Search": {
        "/search/<query>": [
            "Search users (see https://ion.tjhsst.edu/search?tips for advanced search documentation)",
    "Blocks": {
        "/blocks": [
            "List all blocks this year (paginated)",
        "/blocks?start_date=<start_date>": [
            "List all blocks starting on the specified date (in YYYY-MM-DD format; paginated)",
        "/blocks?date=<date>": [
            "List all blocks on the specified date (in YYYY-MM-DD format)",
        "/blocks/<pk>": [
            "Get a list of activities on a block",
    "Activities": {
        "/activities": [
            "List all eighth period activities",
        "/activities/<pk>": [
            "Get details for a specific eighth period activity (including some scheduling information)",
    "Signups": {
        "/signups/user": [
            "List eighth signups for the current user, or sign up the current user for an activity",
        "/signups/user/<user_id>": [
            "List eighth signups for a specific user",
        "/signups/user/favorites": [
            "List favorited eighth activities for current user, or toggle whether an activity is favorited",
        "/signups/scheduled_activity/<scheduled_activity_id>": [
            "List eighth signups for a specific scheduled activity",
    "Bus": {
        "/bus": [
            "Get list of bus routes",
        "/bus/<pk>": [
            "Get information about a specific bus route",