version: 6.34.0 type: DeclarativeSource description: Getting Course information from thinkific check: type: CheckStream stream_names: - Courses definitions: streams: Courses: type: DeclarativeStream name: Courses retriever: type: SimpleRetriever requester: $ref: "#/definitions/base_requester" path: courses http_method: GET request_headers: X-Auth-Subdomain: "{{config['X-Auth-Subdomain']}}" record_selector: type: RecordSelector extractor: type: DpathExtractor field_path: - items paginator: type: DefaultPaginator page_token_option: type: RequestOption field_name: page inject_into: request_parameter page_size_option: type: RequestOption field_name: limit inject_into: request_parameter pagination_strategy: type: PageIncrement page_size: 250 start_from_page: 1 inject_on_first_request: true schema_loader: type: InlineSchemaLoader schema: $ref: "#/schemas/Courses" Courses Chapters: type: DeclarativeStream name: Courses Chapters retriever: type: SimpleRetriever requester: $ref: "#/definitions/base_requester" path: courses/{{ stream_partition['course_id'] }}/chapters http_method: GET request_headers: X-Auth-Subdomain: "{{config['X-Auth-Subdomain']}}" record_selector: type: RecordSelector extractor: type: DpathExtractor field_path: - items paginator: type: DefaultPaginator page_token_option: type: RequestOption inject_into: request_parameter field_name: page page_size_option: type: RequestOption inject_into: request_parameter field_name: limit pagination_strategy: type: OffsetIncrement page_size: 250 inject_on_first_request: true partition_router: type: SubstreamPartitionRouter parent_stream_configs: - type: ParentStreamConfig parent_key: id partition_field: course_id stream: $ref: "#/definitions/streams/Courses" schema_loader: type: InlineSchemaLoader schema: $ref: "#/schemas/Courses Chapters" Contents: type: DeclarativeStream name: Contents retriever: type: SimpleRetriever requester: $ref: "#/definitions/base_requester" path: /chapters/{{ stream_partition['chapter_id'] }}/contents http_method: GET request_headers: X-Auth-Subdomain: "{{config['X-Auth-Subdomain']}}" record_selector: type: RecordSelector extractor: type: DpathExtractor field_path: - items paginator: type: DefaultPaginator page_token_option: type: RequestOption inject_into: request_parameter field_name: page page_size_option: type: RequestOption inject_into: request_parameter field_name: limit pagination_strategy: type: OffsetIncrement page_size: 250 inject_on_first_request: true partition_router: type: SubstreamPartitionRouter parent_stream_configs: - type: ParentStreamConfig parent_key: id partition_field: chapter_id stream: $ref: "#/definitions/streams/Courses Chapters" schema_loader: type: InlineSchemaLoader schema: $ref: "#/schemas/Contents" base_requester: type: HttpRequester url_base: https://api.thinkific.com/api/public/v1/ authenticator: type: ApiKeyAuthenticator api_token: "{{ config[\"api_key\"] }}" inject_into: type: RequestOption field_name: X-Auth-API-Key inject_into: header streams: - $ref: "#/definitions/streams/Courses" - $ref: "#/definitions/streams/Courses Chapters" - $ref: "#/definitions/streams/Contents" spec: type: Spec connection_specification: type: object $schema: http://json-schema.org/draft-07/schema# required: - api_key - X-Auth-Subdomain properties: api_key: type: string order: 0 title: API Key airbyte_secret: true X-Auth-Subdomain: type: string order: 1 title: subdomain additionalProperties: true metadata: autoImportSchema: Courses: true Courses Chapters: true Contents: true yamlComponents: global: - authenticator testedStreams: Courses: streamHash: 502c97d516c0cc742f9284ee1036ba428400769f hasResponse: true responsesAreSuccessful: true hasRecords: true primaryKeysArePresent: true primaryKeysAreUnique: true Courses Chapters: streamHash: 5eaff284c21c79afedd7c176e8be15bb6d972145 hasResponse: true responsesAreSuccessful: true hasRecords: true primaryKeysArePresent: true primaryKeysAreUnique: true Contents: streamHash: 6827e7bd3857e8469a75c6a43a94cfc5d3b14edf hasResponse: true responsesAreSuccessful: true hasRecords: true primaryKeysArePresent: true primaryKeysAreUnique: true assist: {} schemas: Courses: type: object $schema: http://json-schema.org/schema# additionalProperties: true properties: description: type: - string - "null" administrator_user_ids: type: - array - "null" items: type: - number - "null" banner_image_url: type: - string - "null" chapter_ids: type: - array - "null" items: type: - number - "null" contact_information: type: - string - "null" course_card_image_url: type: - string - "null" id: type: - number - "null" instructor_id: type: - number - "null" name: type: - string - "null" product_id: type: - number - "null" reviews_enabled: type: - boolean - "null" slug: type: - string - "null" user_id: type: - number - "null" Courses Chapters: type: object $schema: http://json-schema.org/schema# additionalProperties: true properties: content_ids: type: - array - "null" items: type: - number - "null" duration_in_seconds: type: - number - "null" id: type: - number - "null" name: type: - string - "null" position: type: - number - "null" Contents: type: object $schema: http://json-schema.org/schema# additionalProperties: true properties: chapter_id: type: - number - "null" contentable_type: type: - string - "null" free: type: - boolean - "null" id: type: - number - "null" name: type: - string - "null" position: type: - number - "null" take_url: type: - string - "null"