Skip to content

Instantly share code, notes, and snippets.

@aaronsteers
Last active July 24, 2025 23:04
Show Gist options
  • Save aaronsteers/9246ee3743c2057e5d48afcb139eb55c to your computer and use it in GitHub Desktop.
Save aaronsteers/9246ee3743c2057e5d48afcb139eb55c to your computer and use it in GitHub Desktop.
rick-and-morty Airbyte Connector
{
"streams": [
{
"stream": {
"name": "characters",
"json_schema": {},
"supported_sync_modes": [
"full_refresh"
]
},
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
}
]
}
version: 6.48.15
type: DeclarativeSource
check:
type: CheckStream
stream_names:
- characters
definitions:
streams:
characters:
type: DeclarativeStream
name: characters
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /character/
http_method: GET
error_handler:
type: CompositeErrorHandler
error_handlers:
- type: DefaultErrorHandler
response_filters:
- type: HttpResponseFilter
action: SUCCESS
error_message_contains: There is nothing here
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- results
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
field_name: page
inject_into: request_parameter
pagination_strategy:
type: PageIncrement
start_from_page: 1
decoder:
type: JsonDecoder
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/characters"
episodes:
type: DeclarativeStream
name: episodes
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /api/episode/
http_method: GET
error_handler:
type: CompositeErrorHandler
error_handlers:
- type: DefaultErrorHandler
response_filters:
- type: HttpResponseFilter
action: SUCCESS
error_message_contains: There is nothing here
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- results
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
field_name: page
inject_into: request_parameter
pagination_strategy:
type: PageIncrement
start_from_page: 1
decoder:
type: JsonDecoder
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/episodes"
locations:
type: DeclarativeStream
name: locations
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /api/location/
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: []
paginator:
type: DefaultPaginator
page_token_option:
type: RequestPath
pagination_strategy:
type: CursorPagination
cursor_value: "{{ response.get('info', {}).get('next') }}"
stop_condition: "{{ not response.get('info', {}).get('next') }}"
decoder:
type: JsonDecoder
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/locations"
base_requester:
type: HttpRequester
url_base: https://rickandmortyapi.com/api
streams:
- $ref: "#/definitions/streams/characters"
- $ref: "#/definitions/streams/episodes"
- $ref: "#/definitions/streams/locations"
spec:
type: Spec
connection_specification:
type: object
$schema: http://json-schema.org/draft-07/schema#
required: []
properties: {}
additionalProperties: true
metadata:
autoImportSchema:
characters: true
episodes: false
locations: false
testedStreams:
characters:
hasRecords: true
streamHash: 50b74017637a458ef340e332b533367a662f83ba
hasResponse: true
primaryKeysAreUnique: true
primaryKeysArePresent: true
responsesAreSuccessful: true
episodes:
hasRecords: true
streamHash: eff5ec8cc9182ef189b077d42226c56e8cd94067
hasResponse: true
primaryKeysAreUnique: true
primaryKeysArePresent: true
responsesAreSuccessful: false
locations:
streamHash: null
assist:
docsUrl: https://rickandmortyapi.com/documentation/
openApiSpecUrl: https://rickandmorty.zuplo.io/openapi.json
schemas:
characters:
type: object
$schema: http://json-schema.org/schema#
additionalProperties: true
properties:
type:
type:
- string
- "null"
created:
type:
- string
- "null"
episode:
type:
- array
- "null"
items:
type:
- string
- "null"
gender:
type:
- string
- "null"
id:
type: number
image:
type:
- string
- "null"
location:
type:
- object
- "null"
properties:
name:
type:
- string
- "null"
url:
type:
- string
- "null"
name:
type:
- string
- "null"
origin:
type:
- object
- "null"
properties:
name:
type:
- string
- "null"
url:
type:
- string
- "null"
species:
type:
- string
- "null"
status:
type:
- string
- "null"
url:
type:
- string
- "null"
required:
- id
episodes:
type: object
$schema: http://json-schema.org/draft-07/schema#
additionalProperties: true
properties: {}
locations:
type: object
$schema: http://json-schema.org/draft-07/schema#
additionalProperties: true
properties: {}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment