Skip to content

Teachify Admin API Documentation

Note: The Teachify Admin API is currently under development and not yet available for public use. This documentation is provided for preview purposes only. We will announce when the API is ready for integration.

The Teachify Admin API provides programmatic access to school data and operations through a GraphQL interface. This API allows third-party applications to perform operations similar to those available in the school admin dashboard, including accessing course information, student data, and performing administrative actions.

Teachify’s GraphQL endpoint is:

https://teachify.io/admin/graphql

The endpoint supports GraphQL introspection, allowing you to explore the full schema.

Access to the Teachify Admin API requires an API key that is associated with a specific school and authorized application.

  1. Request an API Key:

    • Contact Teachify support to request an API key for your application
    • API keys are issued on a per-school basis
    • You will need to provide information about your application and its intended use
  2. API Key Security:

    • Keep your API key secure
    • Do not share it in client-side code or public repositories
    • Each API key is specific to a school-application pair
    • Teachify monitors API usage and may revoke keys that are misused

Include the API key in all API requests using the X-Teachify-API-Key HTTP header:

Terminal window
curl \
-X POST \
-H "Content-Type: application/json" \
-H "X-Teachify-API-Key: <Your API Key>" \
--data '{ "query": "{ courses { nodes { id name } } }" }' \
https://teachify.io/admin/graphql

We recommend using a GraphQL client to explore and interact with the API. Popular options include:

These tools allow you to browse the schema, build queries, and test your requests with proper authentication.

To get started, here’s a simple query to retrieve basic information about the authenticated school:

query SchoolInfo {
school {
id
name
createdAt
}
}

Most list queries in the Teachify Admin API use cursor-based pagination to efficiently handle large datasets. Paginated responses typically include:

  • nodes: Array of items for the current page
  • pageInfo: Metadata about the current page, including:
    • hasNextPage: Boolean indicating if more pages exist
    • endCursor: Cursor to use for fetching the next page

Example of paginated query:

query Courses($first: Int, $after: String) {
courses(first: $first, after: $after) {
nodes {
id
name
}
pageInfo {
hasNextPage
endCursor
}
}
}

The API returns standard GraphQL errors in the following format:

{
"errors": [
{
"message": "Error message description",
"locations": [{ "line": 2, "column": 3 }],
"path": ["fieldName"]
}
]
}

Common error scenarios include:

  • Authentication failures
  • Rate limiting
  • Invalid input parameters
  • Resource not found
  • Permission denied

Explore the following sections to learn more about using the Teachify Admin API: