### Example API Request Source: https://docs.schoolmaker.com/quickstart This example demonstrates how to make a GET request to the products endpoint using an API key for authentication. ```APIDOC ## GET /products ### Description Fetches a list of products. ### Method GET ### Endpoint https://schoolmaker.co/api/v1/products ### Headers - Authorization: Bearer YOUR_API_KEY ### Request Example ```bash curl --request GET \ --url https://schoolmaker.co/api/v1/products \ --header 'Authorization: Bearer YOUR_API_KEY' ``` ### Response #### Success Response (200) - **products** (array) - List of products. #### Response Example ```json { "products": [ { "id": "prod_123", "name": "Example Product", "price": 1000 } ] } ``` ``` -------------------------------- ### Get Program Details OpenAPI Specification Source: https://docs.schoolmaker.com/api-reference/endpoints/products/get This OpenAPI definition describes the GET /products/{id} endpoint for retrieving program details. It specifies parameters like ID, member ID, and member email, and outlines the response structure, including optional progression data. ```yaml openapi: 3.0.1 info: title: SchoolMaker API V1 description: API for managing your SchoolMaker school license: name: MIT version: 1.0.0 servers: - url: https://schoolmaker.co/api/v1 description: Production API security: - bearerAuth: [] paths: /products/{id}: get: summary: Get Program Details parameters: - name: id in: path required: true schema: type: string - name: member_id in: query schema: type: string - name: member_email in: query schema: type: string responses: '200': description: Product details content: application/json: schema: type: object properties: id: type: string name: type: string description: type: string is_published: type: boolean position: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time progression: type: object description: >- The progression-related elements will only be displayed if you specify a member_id or member_email properties: total_steps: type: integer description: These are steps that are NOT optional total_optional_steps: type: integer completed_steps: type: integer description: These are steps that are NOT optional completed_optional_steps: type: integer progression_rate: type: number description: Does not factor in optional steps. progression_rate_including_optional_steps: type: number description: Includes optional steps time_spent: type: string components: securitySchemes: bearerAuth: type: http scheme: bearer ``` -------------------------------- ### New Payment Payload Example Source: https://docs.schoolmaker.com/api-reference/endpoints/webhooks/payload Sent upon successful payment processing for an offer, including installments and subscriptions. Contains member, offer, and transaction details. ```json { "email_member": "string", "first_name_member": "string", "last_name_member": "string", "offer_name": "string", "offer_id": "string", "transaction_creation_date": "string", "transaction_status": "string", "price": 0, "currency": "string", "price_type": "one-time | recurring | multiple-installments" } ``` -------------------------------- ### Get Program Details Source: https://docs.schoolmaker.com/llms.txt Retrieves detailed information about a specific program. ```APIDOC ## Get Program Details ### Description Retrieves details from a specific program. ### Method GET ### Endpoint /products/{program_id} ### Parameters #### Path Parameters - **program_id** (string) - Required - The ID of the program to retrieve. ### Response #### Success Response (200) - **program** (object) - The program details object. ``` -------------------------------- ### OpenAPI Specification for /admins GET Source: https://docs.schoolmaker.com/api-reference/endpoints/admins/get Defines the GET request for the /admins endpoint, including parameters for filtering by ID or email and the structure of the response for both listing and single retrieval. ```yaml openapi: 3.0.1 info: title: SchoolMaker API V1 description: API for managing your SchoolMaker school license: name: MIT version: 1.0.0 servers: - url: https://schoolmaker.co/api/v1 description: Production API security: - bearerAuth: [] paths: /admins: get: summary: List Admins & Moderators or Get Details description: >- Without id/email, returns the list of admins & moderators of your school. If id or email is provided, returns a single admin/moderator. parameters: - name: id in: query schema: type: string description: >- If provided, returns the admin/moderator with this ID instead of a list. - name: email in: query schema: type: string description: >- If provided (and id not given), returns the admin/moderator with this email instead of a list. responses: '200': description: >- List of admins & moderators (when no id/email) or a single admin/moderator (when id/email provided). content: application/json: schema: oneOf: - type: object properties: users: type: array items: type: object properties: id: type: string email: type: string first_name: type: string last_name: type: string role: type: string is_active: type: boolean is_banned: type: boolean time_zone: type: string last_seen_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time is_school_owner: type: boolean - type: object properties: id: type: string email: type: string first_name: type: string last_name: type: string role: type: string is_active: type: boolean is_banned: type: boolean time_zone: type: string last_seen_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time is_school_owner: type: boolean components: securitySchemes: bearerAuth: type: http scheme: bearer ``` -------------------------------- ### Get Offer Details Endpoint Source: https://docs.schoolmaker.com/api-reference/endpoints/offers/get This OpenAPI definition describes the GET /offers/{id} endpoint for retrieving offer details. It specifies the request parameters, including the offer ID, and the structure of the successful response, which includes offer properties like name, description, price, and creation date. ```yaml openapi: 3.0.1 info: title: SchoolMaker API V1 description: API for managing your SchoolMaker school license: name: MIT version: 1.0.0 servers: - url: https://schoolmaker.co/api/v1 description: Production API security: - bearerAuth: [] paths: /offers/{id}: get: summary: Get Offer Details description: Retrieves details from a specific offer. parameters: - name: id in: path required: true schema: type: string responses: '200': description: Get Offer Details content: application/json: schema: type: object properties: id: type: string name: type: string description: type: string is_published: type: boolean prices: type: array items: type: object properties: id: type: string amount: type: number currency: type: string created_at: type: string format: date-time components: securitySchemes: bearerAuth: type: http scheme: bearer ``` -------------------------------- ### Make a GET Request to Products Endpoint Source: https://docs.schoolmaker.com/ Use this cURL command to fetch a list of products. Replace YOUR_API_KEY with your actual API key. Ensure the Authorization header is correctly formatted with 'Bearer YOUR_API_KEY'. ```curl curl --request GET \ --url https://schoolmaker.co/api/v1/products \ --header 'Authorization: Bearer YOUR_API_KEY' ``` -------------------------------- ### Get Offer Details Source: https://docs.schoolmaker.com/api-reference/endpoints/offers/get Retrieves details for a specific offer by its ID. ```APIDOC ## GET /offers/{id} ### Description Retrieves details from a specific offer. ### Method GET ### Endpoint /offers/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the offer. ### Response #### Success Response (200) - **id** (string) - The unique identifier of the offer. - **name** (string) - The name of the offer. - **description** (string) - A description of the offer. - **is_published** (boolean) - Indicates if the offer is published. - **prices** (array) - A list of prices for the offer. - **id** (string) - The unique identifier of the price. - **amount** (number) - The price amount. - **currency** (string) - The currency of the price. - **created_at** (string) - The date and time the offer was created. #### Response Example ```json { "id": "offer_123", "name": "Summer Special", "description": "Get our special summer offer.", "is_published": true, "prices": [ { "id": "price_abc", "amount": 99.99, "currency": "USD" } ], "created_at": "2023-10-27T10:00:00Z" } ``` ``` -------------------------------- ### Create a coaching appointment Source: https://docs.schoolmaker.com/quickstart Create a coaching appointment, for example after a booking is created in Calendly. ```APIDOC ## Create a coaching appointment ### Description Create a coaching appointment, for example after a booking is created in Calendly. ### Method POST ### Endpoint /coachings/appointments/create ### Parameters #### Request Body - **member_id** (integer) - Required - The ID of the member to schedule the appointment for. - **coaching_type_id** (integer) - Required - The ID of the coaching type. - **start_time** (string) - Required - The start time of the appointment in ISO 8601 format. - **end_time** (string) - Required - The end time of the appointment in ISO 8601 format. ### Request Example ```json { "member_id": 123, "coaching_type_id": 456, "start_time": "2024-01-01T10:00:00Z", "end_time": "2024-01-01T11:00:00Z" } ``` ### Response #### Success Response (201 Created) - **appointment_id** (integer) - The ID of the created appointment. - **message** (string) - A success message. #### Response Example ```json { "appointment_id": 789, "message": "Coaching appointment created successfully." } ``` ``` -------------------------------- ### Get Leaderboard Ranking OpenAPI Specification Source: https://docs.schoolmaker.com/api-reference/endpoints/gamifications/leaderboards/list This OpenAPI specification defines the GET /gamifications/leaderboards endpoint. It includes parameters for filtering by time range and details the structure of the response. ```yaml openapi: 3.0.1 info: title: SchoolMaker API V1 description: API for managing your SchoolMaker school license: name: MIT version: 1.0.0 servers: - url: https://schoolmaker.co/api/v1 description: Production API security: - bearerAuth: [] paths: /gamifications/leaderboards: get: summary: Get Leaderboard Ranking description: Retrieves leaderboard ranking and filters by time range. parameters: - name: time_range in: query description: >- Time range for the leaderboard: all time, last 7 days, or last 30 days schema: type: string enum: - all - '7' - '30' default: all responses: '200': description: Leaderboard Data content: application/json: schema: type: object properties: leaderboard: type: object properties: total_members: type: integer description: Total number of members in the leaderboard members: type: array items: type: object properties: rank: type: integer id: type: string first_name: type: string last_name: type: string status: type: string email: type: string name: type: string total_points: type: integer components: securitySchemes: bearerAuth: type: http scheme: bearer ``` -------------------------------- ### New Member Offer Access Payload Example Source: https://docs.schoolmaker.com/api-reference/endpoints/webhooks/payload This payload is triggered when a member is granted access to an offer, whether they are new or existing. It includes the member's email and the offer details. ```json { "email_member": "string", "offer_name": "string", "offer_id": "string" } ``` -------------------------------- ### List Programs OpenAPI Specification Source: https://docs.schoolmaker.com/api-reference/endpoints/products/list This OpenAPI 3.0.1 specification defines the GET /products endpoint. It includes details on request parameters like member_id and member_email, and the structure of the successful 200 OK response, which lists products with their properties and optional progression data. ```yaml openapi: 3.0.1 info: title: SchoolMaker API V1 description: API for managing your SchoolMaker school license: name: MIT version: 1.0.0 servers: - url: https://schoolmaker.co/api/v1 description: Production API security: - bearerAuth: [] paths: /products: get: summary: List Programs description: Retrieves all programs of your school. parameters: - name: member_id in: query schema: type: string - name: member_email in: query schema: type: string responses: '200': description: List of programs content: application/json: schema: type: object properties: products: type: array items: type: object properties: id: type: string name: type: string description: type: string is_published: type: boolean position: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time progression: type: object description: >- The progression-related elements will only be displayed if you specify a member_id or member_email properties: total_steps: type: integer description: These are steps that are NOT optional total_optional_steps: type: integer completed_steps: type: integer description: These are steps that are NOT optional completed_optional_steps: type: integer progression_rate: type: number time_spent: type: string first_viewed_at: type: string format: date-time last_viewed_at: type: string format: date-time components: securitySchemes: bearerAuth: type: http scheme: bearer ``` -------------------------------- ### Get Program Details Source: https://docs.schoolmaker.com/ Retrieves detailed information about a specific program and allows checking a member's progression within that program. ```APIDOC ## Get Program Details ### Description Get details from a specific program and check specific member’s progression for a program. ### Method GET ### Endpoint /programs/{programId} ``` -------------------------------- ### List or Get Member OpenAPI Specification Source: https://docs.schoolmaker.com/api-reference/endpoints/members/get This OpenAPI 3.0.1 specification defines the `/members` GET endpoint. It outlines parameters for pagination and filtering by ID or email, and describes the structure of the response for both listing members and retrieving a single member. ```yaml openapi: 3.0.1 info: title: SchoolMaker API V1 description: API for managing your SchoolMaker school license: name: MIT version: 1.0.0 servers: - url: https://schoolmaker.co/api/v1 description: Production API security: - bearerAuth: [] paths: /members: get: summary: List Members or Get a Member description: >- Without id/email, returns a paginated list of members. If id or email is provided, returns a single member. parameters: - name: product_id in: query schema: type: string - name: offer_id in: query schema: type: string - name: page in: query schema: type: integer default: 1 - name: id in: query schema: type: string description: If provided, returns the member with this ID instead of a list. - name: email in: query schema: type: string description: >- If provided (and id not given), returns the member with this email instead of a list. responses: '200': description: >- List of members (when no id/email) or a single member (when id/email provided). content: application/json: schema: oneOf: - type: object properties: members: type: array description: 25 members per page. items: type: object properties: id: type: string email: type: string first_name: type: string last_name: type: string last_seen_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time pagination: type: object properties: total_count: type: integer total_pages: type: integer current_page: type: integer - type: object properties: id: type: string email: type: string first_name: type: string last_name: type: string last_seen_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time components: securitySchemes: bearerAuth: type: http scheme: bearer ``` -------------------------------- ### List Offers OpenAPI Specification Source: https://docs.schoolmaker.com/api-reference/endpoints/offers/list This OpenAPI 3.0.1 specification defines the GET /offers endpoint. It details the request, response structure, and authentication method (Bearer Token). ```yaml openapi: 3.0.1 info: title: SchoolMaker API V1 description: API for managing your SchoolMaker school license: name: MIT version: 1.0.0 servers: - url: https://schoolmaker.co/api/v1 description: Production API security: - bearerAuth: [] paths: /offers: get: summary: List Offers description: Retrieves all offers of your school. responses: '200': description: List of offers content: application/json: schema: type: object properties: offers: type: array items: type: object properties: id: type: string name: type: string description: type: string is_published: type: boolean prices: type: array items: type: object properties: id: type: string amount: type: number currency: type: string created_at: type: string format: date-time components: securitySchemes: bearerAuth: type: http scheme: bearer ``` -------------------------------- ### Get member offer accesses Source: https://docs.schoolmaker.com/ Retrieves a detailed list of all offers a specific member has access to. ```APIDOC ## GET /members/{memberId}/offers ### Description Get a detailed list of which offers a specific member has access to ### Method GET ### Endpoint /members/{memberId}/offers ``` -------------------------------- ### Get Member Accesses Source: https://docs.schoolmaker.com/llms.txt Retrieves all offer accesses associated with members. ```APIDOC ## Get Member Accesses ### Description Retrieves all member offer accesses. ### Method GET ### Endpoint /members/accesses ### Response #### Success Response (200) - **member_accesses** (array) - A list of member access objects. ``` -------------------------------- ### Step Pending Payload Example Source: https://docs.schoolmaker.com/api-reference/endpoints/webhooks/payload This payload is sent when a member submits an answer that requires correction. It includes details about the user, program, lesson, step, and the submitted answer. ```json { "id": "string", "user_type": "string", "email": "string", "full_name": "string", "program_name": "string", "program_completion_percentage": 0, "section_name": "string", "section_completion_percentage": 0, "lesson_name": "string", "lesson_completion_percentage": 0, "step_name": "string", "step_completion_date": "string", "see_in_schoolmaker": "string", "status": "string", "step_id": "string", "step_type": "string", "reviewer_id": "string", "step_is_optional": "string", "answer": "string", "quiz_completion_rate": "string", "quiz_data": [ { "question": "string", "member_answer": "string", "result": "string" } ], "form_data": [ { "question": "string", "answer": "string" } ], "comment_text": "string", "comment_link": "string", "post_link": "string", "step_file_upload_url": "string", "milestone_proof_url": "string" } ``` -------------------------------- ### Get Program Details by ID Source: https://docs.schoolmaker.com/api-reference/endpoints/products/get Fetches the details of a specific program using its unique identifier. You can optionally include member details to retrieve progression information. ```APIDOC ## GET /products/{id} ### Description Retrieves the details of a specific program. ### Method GET ### Endpoint /products/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the program. #### Query Parameters - **member_id** (string) - Optional - The ID of the member to retrieve progression details for. - **member_email** (string) - Optional - The email of the member to retrieve progression details for. ### Response #### Success Response (200) - **id** (string) - The program's unique identifier. - **name** (string) - The name of the program. - **description** (string) - A description of the program. - **is_published** (boolean) - Indicates if the program is published. - **position** (integer) - The display order of the program. - **created_at** (string) - The timestamp when the program was created. - **updated_at** (string) - The timestamp when the program was last updated. - **progression** (object) - Contains progression details for a specific member. This field is only displayed if `member_id` or `member_email` is provided. - **total_steps** (integer) - The total number of non-optional steps in the program. - **total_optional_steps** (integer) - The total number of optional steps in the program. - **completed_steps** (integer) - The number of non-optional steps completed by the member. - **completed_optional_steps** (integer) - The number of optional steps completed by the member. - **progression_rate** (number) - The progression rate, excluding optional steps. - **progression_rate_including_optional_steps** (number) - The progression rate, including optional steps. - **time_spent** (string) - The total time spent by the member on the program. #### Response Example ```json { "id": "prod_123", "name": "Introduction to AI", "description": "Learn the basics of Artificial Intelligence.", "is_published": true, "position": 1, "created_at": "2023-01-01T10:00:00Z", "updated_at": "2023-01-01T10:00:00Z", "progression": { "total_steps": 10, "total_optional_steps": 2, "completed_steps": 5, "completed_optional_steps": 1, "progression_rate": 0.5, "progression_rate_including_optional_steps": 0.55, "time_spent": "05:30:00" } } ``` ``` -------------------------------- ### List Webhooks OpenAPI Specification Source: https://docs.schoolmaker.com/api-reference/endpoints/webhooks/list This OpenAPI specification defines the GET /webhooks endpoint for listing all webhooks. It includes details on request, responses, and schema. ```yaml openapi: 3.0.1 info: title: SchoolMaker API V1 description: API for managing your SchoolMaker school license: name: MIT version: 1.0.0 servers: - url: https://schoolmaker.co/api/v1 description: Production API security: - bearerAuth: [] paths: /webhooks: get: summary: List Webhooks responses: '200': description: List of webhooks content: application/json: schema: type: array items: type: object properties: id: type: string webhook_url: type: string event_type: type: string provider: type: string extra_parameters: type: object created_at: type: string format: date-time updated_at: type: string format: date-time components: securitySchemes: bearerAuth: type: http scheme: bearer ``` -------------------------------- ### List Coaching Types OpenAPI Specification Source: https://docs.schoolmaker.com/api-reference/endpoints/coachings/types/list This OpenAPI specification defines the GET endpoint for listing coaching types. It includes details on the request, response schema, and security requirements. ```yaml openapi: 3.0.1 info: title: SchoolMaker API V1 description: API for managing your SchoolMaker school license: name: MIT version: 1.0.0 servers: - url: https://schoolmaker.co/api/v1 description: Production API security: - bearerAuth: [] paths: /coachings/types: get: summary: List Coaching Types responses: '200': description: List of coaching types content: application/json: schema: type: array items: type: object properties: id: type: string name: type: string unit: type: string is_published: type: boolean calendar_embed_code: type: string created_at: type: string format: date-time updated_at: type: string format: date-time description: type: string coaches: type: array items: type: object properties: id: type: string email: type: string name: type: string components: securitySchemes: bearerAuth: type: http scheme: bearer ``` -------------------------------- ### Gamification Level Passed Payload Example Source: https://docs.schoolmaker.com/api-reference/endpoints/webhooks/payload Sent when a member achieves a new level in the community gamification system. Includes member identification and the level unlocked. ```json { "email_member": "string", "first_name_member": "string", "last_name_member": "string", "level_unlocked": 0 } ``` -------------------------------- ### List Admins & Moderators or Get Details Source: https://docs.schoolmaker.com/api-reference/endpoints/admins/get Fetches a list of all admins and moderators if no ID or email is provided. If an ID or email is supplied, it returns the details of a single admin or moderator. ```APIDOC ## GET /admins ### Description Without id/email, returns the list of admins & moderators of your school. If id or email is provided, returns a single admin/moderator. ### Method GET ### Endpoint /admins ### Parameters #### Query Parameters - **id** (string) - Optional - If provided, returns the admin/moderator with this ID instead of a list. - **email** (string) - Optional - If provided (and id not given), returns the admin/moderator with this email instead of a list. ### Response #### Success Response (200) - **users** (array) - List of admins & moderators (when no id/email) or a single admin/moderator (when id/email provided). - **id** (string) - **email** (string) - **first_name** (string) - **last_name** (string) - **role** (string) - **is_active** (boolean) - **is_banned** (boolean) - **time_zone** (string) - **last_seen_at** (string) - format: date-time - **created_at** (string) - format: date-time - **updated_at** (string) - format: date-time - **is_school_owner** (boolean) #### Response Example { "example": "{\"users\": [{\"id\": \"123\", \"email\": \"admin@example.com\", \"first_name\": \"John\", \"last_name\": \"Doe\", \"role\": \"admin\", \"is_active\": true, \"is_banned\": false, \"time_zone\": \"UTC\", \"last_seen_at\": \"2023-10-27T10:00:00Z\", \"created_at\": \"2023-01-01T00:00:00Z\", \"updated_at\": \"2023-10-26T12:00:00Z\", \"is_school_owner\": true}]}" ``` -------------------------------- ### Member Inactivity Payload Example Source: https://docs.schoolmaker.com/api-reference/endpoints/webhooks/payload This payload is triggered when a member is flagged as inactive. It includes the member's contact information and details about their associated offers and programs. ```json { "email_member": "string", "first_name_member": "string", "last_name_member": "string", "offers": [ { "offer_id": "string", "offer_name": "string" } ], "programs": [ { "id": "string", "name": "string", "program_completion_percentage": 0 } ] } ``` -------------------------------- ### Offers API Endpoints Source: https://docs.schoolmaker.com/quickstart Configure and manage your school's offers using the SchoolMaker API. Endpoints are available to list all offers, get offer details, update offer information, set drip boosts, and manage member access to offers. ```APIDOC ## Offers API Configure and list your school's offers: ### List all offers List all of your school's offers and get their names, descriptions & prices. ### Get offer details Get details from a specific offer like its name, description, prices or creation date. ### Set offer details Updates offer’s name, description, and publish status. ### Set a drip boost Updates the drip boost value for a specific member in a specific offer. ### Set offer access for a member Change member access status for a specific offer in your school or add a new member. ``` -------------------------------- ### Create a webhook Source: https://docs.schoolmaker.com/quickstart Create a new webhook to listen for specific events. ```APIDOC ## Create a webhook ### Description Create a new webhook to listen for specific events. ### Method POST ### Endpoint /webhooks/create ### Parameters #### Request Body - **event_type** (string) - Required - The type of event to listen for (e.g., `element_completed`, `new_payment`). - **url** (string) - Required - The URL to send the webhook payload to. ### Request Example ```json { "event_type": "member_joining_offer", "url": "https://example.com/new-member-hook" } ``` ### Response #### Success Response (201 Created) - **id** (integer) - The ID of the created webhook. - **message** (string) - A success message. #### Response Example ```json { "id": 2, "message": "Webhook created successfully." } ``` ``` -------------------------------- ### Get Leaderboard Ranking Source: https://docs.schoolmaker.com/quickstart Get the top 10 members in the community gamification leaderboard ranking with filters by time range. ```APIDOC ## Get Leaderboard Ranking ### Description Get the top 10 members in the community gamification leaderboard ranking with filters by time range. ### Method GET ### Endpoint /gamifications/leaderboards/list ### Parameters #### Query Parameters - **start_date** (string) - Optional - The start date for filtering the leaderboard (YYYY-MM-DD). - **end_date** (string) - Optional - The end date for filtering the leaderboard (YYYY-MM-DD). ### Response #### Success Response (200 OK) - **leaderboard** (array) - A list of members in the leaderboard. - **rank** (integer) - The rank of the member. - **member_id** (integer) - The ID of the member. - **score** (integer) - The score of the member. #### Response Example ```json { "leaderboard": [ { "rank": 1, "member_id": 10, "score": 1500 }, { "rank": 2, "member_id": 25, "score": 1450 } ] } ``` ``` -------------------------------- ### List all offers Source: https://docs.schoolmaker.com/ Retrieves a list of all offers configured in your school, including their names, descriptions, and prices. ```APIDOC ## GET /offers ### Description List all of your school’s offers and get their names, descriptions & prices ### Method GET ### Endpoint /offers ``` -------------------------------- ### Get Member Accesses OpenAPI Specification Source: https://docs.schoolmaker.com/api-reference/endpoints/members/accesses This OpenAPI 3.0.1 specification defines the GET /members/accesses endpoint. It details the request parameters (id, email) and the structure of the successful response, including member access details. ```yaml openapi: 3.0.1 info: title: SchoolMaker API V1 description: API for managing your SchoolMaker school license: name: MIT version: 1.0.0 servers: - url: https://schoolmaker.co/api/v1 description: Production API security: - bearerAuth: [] paths: /members/accesses: get: summary: Get Member Accesses description: Retrieves all member offer accesses. parameters: - name: id in: query schema: type: string - name: email in: query schema: type: string responses: '200': description: Member accesses content: application/json: schema: type: object properties: accesses: type: array items: type: object properties: id: type: string offer_id: type: string price: type: object properties: id: type: string nullable: true amount: type: number nullable: true currency: type: string nullable: true price_type: type: string nullable: true recurring_interval: type: string nullable: true recurring_interval_count: type: integer nullable: true is_active: type: boolean access_created_at: type: string format: date-time components: securitySchemes: bearerAuth: type: http scheme: bearer ``` -------------------------------- ### List Programs Source: https://docs.schoolmaker.com/ Lists all published programs in your school, including their IDs, names, and descriptions. ```APIDOC ## List Programs ### Description List all of your school’s published programs with their IDs, names & descriptions. ### Method GET ### Endpoint /programs ``` -------------------------------- ### Create a Coaching Appointment Source: https://docs.schoolmaker.com/llms.txt Creates a new coaching appointment with selected members and coaches. ```APIDOC ## Create a Coaching Appointment ### Description Creates an appointment with selected members and coaches. ### Method POST ### Endpoint /coachings/appointments ### Request Body - **member_ids** (array of strings) - Required - IDs of the members to include in the appointment. - **coach_ids** (array of strings) - Required - IDs of the coaches to include in the appointment. - **start_time** (string) - Required - The start time of the appointment (ISO 8601 format). - **end_time** (string) - Required - The end time of the appointment (ISO 8601 format). - **notes** (string) - Optional - Additional notes for the appointment. ### Response #### Success Response (200) - **appointment** (object) - The created coaching appointment object. ``` -------------------------------- ### Create a Webhook Source: https://docs.schoolmaker.com/llms.txt Creates a new webhook to receive event notifications. Supported events include `element_completed`, `member_joining_offer`, `new_payment`, `member_inactivity`, `gamification_level_passed`. ```APIDOC ## Create a Webhook ### Description Create a webhook for events: `element_completed`, `member_joining_offer`, `new_payment`, `member_inactivity`, `gamification_level_passed`. ### Method POST ### Endpoint /webhooks ### Request Body - **url** (string) - Required - The URL to send webhook notifications to. - **events** (array of strings) - Required - A list of events to subscribe to. ### Response #### Success Response (200) - **webhook** (object) - The created webhook object. ``` -------------------------------- ### Create a Webhook Source: https://docs.schoolmaker.com/api-reference/endpoints/webhooks/create Use this endpoint to create a new webhook subscription for specific events. You can filter events like `member_joining_offer` by offer ID or `gamification_level_passed` by level number. ```APIDOC ## POST /webhooks ### Description Create a webhook for events: `element_completed`, `member_joining_offer`, `new_payment`, `member_inactivity`, `gamification_level_passed` ### Method POST ### Endpoint /webhooks ### Request Body - **webhook_url** (string) - Required - The URL where webhook payloads will be sent via POST requests. This should be a publicly accessible HTTPS endpoint that can receive and process the webhook events. - **event_type** (string) - Required - Enum: `element_completed`, `element_pending`, `member_joining_offer`, `new_payment`, `member_inactivity`, `gamification_level_passed` - **provider** (string) - Optional - **extra_parameters** (object) - Optional - **offerFilter** (array) - Optional - List of offer IDs to filter `member_joining_offer` events. Items are strings. - **activeLevels** (array) - Optional - List of level numbers to filter `gamification_level_passed` events. Items are integers. ### Request Example ```json { "webhook_url": "https://example.com/webhook", "event_type": "new_payment", "provider": "SchoolMaker", "extra_parameters": { "offerFilter": ["offer_123", "offer_456"], "activeLevels": [1, 5, 10] } } ``` ### Response #### Success Response (201) - **id** (string) - Description - **webhook_url** (string) - Description - **event_type** (string) - Description - **provider** (string) - Description - **extra_parameters** (object) - Description - **created_at** (string) - Description - **updated_at** (string) - Description #### Response Example ```json { "id": "wh_abc123", "webhook_url": "https://example.com/webhook", "event_type": "new_payment", "provider": "SchoolMaker", "extra_parameters": { "offerFilter": ["offer_123", "offer_456"], "activeLevels": [1, 5, 10] }, "created_at": "2023-10-27T10:00:00Z", "updated_at": "2023-10-27T10:00:00Z" } ``` ``` -------------------------------- ### Get Leaderboard Ranking Source: https://docs.schoolmaker.com/api-reference/endpoints/gamifications/leaderboards/list Retrieves leaderboard ranking and filters by time range. ```APIDOC ## GET /gamifications/leaderboards ### Description Retrieves leaderboard ranking and filters by time range. ### Method GET ### Endpoint /gamifications/leaderboards ### Parameters #### Query Parameters - **time_range** (string) - Optional - Time range for the leaderboard: all time, last 7 days, or last 30 days. Allowed values: `all`, `7`, `30`. Defaults to `all`. ### Response #### Success Response (200) - **leaderboard** (object) - Contains leaderboard data. - **total_members** (integer) - Total number of members in the leaderboard. - **members** (array) - List of members in the leaderboard. - **rank** (integer) - **id** (string) - **first_name** (string) - **last_name** (string) - **status** (string) - **email** (string) - **name** (string) - **total_points** (integer) ### Response Example ```json { "leaderboard": { "total_members": 100, "members": [ { "rank": 1, "id": "user123", "first_name": "John", "last_name": "Doe", "status": "active", "email": "john.doe@example.com", "name": "John Doe", "total_points": 5000 } ] } } ``` ``` -------------------------------- ### List Webhooks Source: https://docs.schoolmaker.com/llms.txt Retrieves a list of all configured webhooks. ```APIDOC ## List Webhooks ### Description Retrieves all webhooks. ### Method GET ### Endpoint /webhooks ### Response #### Success Response (200) - **webhooks** (array) - A list of webhook objects. ``` -------------------------------- ### Get admin or moderator details Source: https://docs.schoolmaker.com/ Retrieves detailed information about a specific admin or moderator. ```APIDOC ## GET /admins-moderators/{adminId} ### Description Get details from a specific admin or moderator from your school ### Method GET ### Endpoint /admins-moderators/{adminId} ``` -------------------------------- ### Create Webhook Source: https://docs.schoolmaker.com/ Creates a new webhook to detect specified events. ```APIDOC ## Create Webhook ### Description Creates a new webhook to detect specified events. ### Method POST ### Endpoint /webhooks ### Request Body - **event_type** (string) - Required - The type of event to trigger the webhook (e.g., 'element_completed', 'new_payment'). - **url** (string) - Required - The URL to send the webhook payload to. ``` -------------------------------- ### New Payment Payload Source: https://docs.schoolmaker.com/api-reference/endpoints/webhooks/payload This payload is sent when a successful payment is processed, including installments and subscriptions. ```APIDOC ## POST /webhooks ### Description Receives real-time HTTP notifications for the `new_payment` event. ### Method POST ### Endpoint /webhooks ### Request Body - **email_member** (string) - Required - Email of the member. - **first_name_member** (string) - Required - First name of the member. - **last_name_member** (string) - Required - Last name of the member. - **offer_name** (string) - Required - Name of the offer. - **offer_id** (string) - Required - ID of the offer. - **transaction_creation_date** (string) - Required - Date of transaction creation. - **transaction_status** (string) - Required - Status of the transaction. - **price** (number) - Required - The price of the transaction. - **currency** (string) - Required - The currency of the transaction. - **price_type** (string) - Required - Type of price (one-time, recurring, multiple-installments). ### Response #### Success Response (200) An empty response indicates successful receipt of the webhook. ``` -------------------------------- ### List Programs Source: https://docs.schoolmaker.com/llms.txt Retrieves a list of all programs available in your school. ```APIDOC ## List Programs ### Description Retrieves all programs of your school. ### Method GET ### Endpoint /products ### Response #### Success Response (200) - **programs** (array) - A list of program objects. ```