### Install Dependencies with npm ci Source: https://github.com/planningcenter/developers/blob/main/CLAUDE.md Use 'npm ci' to install project dependencies. This command is generally faster and more reliable for continuous integration environments than 'npm install'. ```bash npm ci ``` -------------------------------- ### Example Webhook Payload for Donation Created Source: https://context7.com/planningcenter/developers/llms.txt This is an example of the JSON payload received when a 'donation.created' event is triggered via Planning Center webhooks. ```json # Example webhook payload (donation.created): # { # "data": { # "type": "Donation", # "id": "987654", # "attributes": { # "amount_cents": 5000, ``` -------------------------------- ### Example JSON Output from Duplicate Detection Stage 2 Source: https://context7.com/planningcenter/developers/llms.txt This JSON structure represents the output from the AI model in Stage 2 of the duplicate detection process, indicating potential matches with confidence scores and explanations. ```json { "matches": [{ "issue_number": 42, "relationship": "duplicate", "confidence": 0.91, "explanation": "...", "resolution_summary": "..." }] } ``` -------------------------------- ### Query for Default Fund using API Source: https://github.com/planningcenter/developers/blob/main/guides/giving_donations_integration.md Use this GET request to find the default fund for an organization. This is useful when you need to associate donations with the primary fund. ```http GET https://api.planningcenteronline.com/giving/v2/funds?where[default]=true ``` -------------------------------- ### Check for Person Merges Source: https://github.com/planningcenter/developers/blob/main/guides/giving_donations_integration.md Use this GET request to check if a specific person has been merged into another. If the response is empty, the person was likely deleted. Otherwise, the response will contain the `person_to_keep_id`. ```http GET https://api.planningcenteronline.com/people/v2/person_mergers?where[person_to_remove_id]=14994497 ``` -------------------------------- ### Run Product Labeling Action Locally Source: https://context7.com/planningcenter/developers/llms.txt Execute the product labeling script locally for testing. Set environment variables for API keys and desired model. DRY_RUN=true prevents actual GitHub writes. ```bash export ANTHROPIC_API_KEY=sk-ant-... export GITHUB_TOKEN=ghp_... export DRY_RUN=true export LABELING_MODEL=claude-haiku-4-5-20251001 node .github/scripts/label-product.js ``` -------------------------------- ### Authenticate with Personal Access Token (Bash) Source: https://github.com/planningcenter/developers/blob/main/README.md Use this command for single-user authentication with your Personal Access Token. Replace 'client_id' and 'secret' with your actual token credentials. ```bash curl -u client_id:secret https://api.planningcenteronline.com/services/v2/ ``` -------------------------------- ### Run Product Labeling Locally Source: https://github.com/planningcenter/developers/blob/main/CLAUDE.md Execute the AI-powered product label assignment script locally. This script requires ANTHROPIC_API_KEY and GITHUB_TOKEN environment variables. Model selection can be configured via LABELING_MODEL. ```bash node .github/scripts/label-product.js ``` -------------------------------- ### Configure GitHub Action for Automated Product Labeling Source: https://context7.com/planningcenter/developers/llms.txt This YAML configuration sets up a GitHub Actions job to automatically label new issues based on product classification using Claude. Ensure ANTHROPIC_API_KEY is set in secrets. ```yaml jobs: label-product: runs-on: ubuntu-latest permissions: issues: write steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" cache: "npm" - run: npm ci - name: Run product labeling env: GITHUB_TOKEN: ${{ github.token }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} LABELING_MODEL: "claude-haiku-4-5-20251001" # override to use a different model run: node .github/scripts/label-product.js ``` -------------------------------- ### Search People by Name using Planning Center API Source: https://context7.com/planningcenter/developers/llms.txt Use this endpoint to find people records by their first and last names. Requires client authentication. ```bash curl -u CLIENT_ID:SECRET \ "https://api.planningcenteronline.com/people/v2/people?where[first_name]=Gene&where[last_name]=Parm" ``` -------------------------------- ### Authenticate with Personal Access Token Source: https://context7.com/planningcenter/developers/llms.txt Use a Personal Access Token with HTTP Basic Auth for single-user authentication. Tokens are generated via the Planning Center website. ```bash # Authenticate with Personal Access Token (client_id:secret as Basic Auth credentials) curl -u YOUR_CLIENT_ID:YOUR_SECRET \ https://api.planningcenteronline.com/services/v2/ ``` ```bash # Example: Fetch people from the People API curl -u YOUR_CLIENT_ID:YOUR_SECRET \ "https://api.planningcenteronline.com/people/v2/people?where[first_name]=Jane&where[last_name]=Smith" ``` -------------------------------- ### Run Duplicate Detection Action Locally Source: https://context7.com/planningcenter/developers/llms.txt Execute the duplicate detection script locally for testing. Set environment variables for API keys and desired model. DRY_RUN=true prevents actual GitHub writes and prints the comment that would be posted. ```bash export ANTHROPIC_API_KEY=sk-ant-... export GITHUB_TOKEN=ghp_... export DRY_RUN=true export DUPLICATE_DETECTION_MODEL=claude-sonnet-4-5-20250929 node .github/scripts/detect-duplicates.js ``` -------------------------------- ### Run Duplicate Detection Locally Source: https://github.com/planningcenter/developers/blob/main/CLAUDE.md Execute the AI-powered duplicate issue detection script locally. Ensure you have the necessary environment variables set, such as ANTHROPIC_API_KEY and GITHUB_TOKEN. ```bash node .github/scripts/detect-duplicates.js ``` -------------------------------- ### Giving API - Create a Donation via Batch Source: https://context7.com/planningcenter/developers/llms.txt This process involves creating a batch, adding donations with their respective details and designations, and then committing the batch to make the donations official. ```APIDOC ## Giving API — Create a Donation via Batch Donations must be created within a `Batch`. Create an uncommitted batch, add donations with designations, then commit. ### 1. Create a Batch #### Method POST #### Endpoint `https://api.planningcenteronline.com/giving/v2/batches` #### Authentication Basic Auth with `CLIENT_ID:SECRET` #### Headers - **Content-Type**: `application/json` #### Request Body ```json { "data": { "type": "Batch", "attributes": { "description": "Sunday Offering 2024-01-14" } } } ``` #### Response Example ```json { "data": { "type": "Batch", "id": "BATCH_ID", ... } } ``` ### 2. Create a Donation inside the Batch #### Method POST #### Endpoint `https://api.planningcenteronline.com/giving/v2/batches/BATCH_ID/donations` #### Authentication Basic Auth with `CLIENT_ID:SECRET` #### Headers - **Content-Type**: `application/json` #### Request Body ```json { "data": { "type": "Donation", "attributes": { "payment_method": "check", "received_at": "2024-01-14T10:30:00Z" }, "relationships": { "person": { "data": { "type": "Person", "id": "52665741" } }, "payment_source": { "data": { "type": "PaymentSource", "id": "PS_ID" } }, "designations": { "data": [{ "type": "Designation", "attributes": { "amount_cents": 5000 }, "relationships": { "fund": { "data": { "type": "Fund", "id": "FUND_ID" } } } }] } } } } ``` ### 3. Commit the Batch #### Method POST #### Endpoint `https://api.planningcenteronline.com/giving/v2/batches/BATCH_ID/commit` #### Authentication Basic Auth with `CLIENT_ID:SECRET` #### Example ```bash curl -u CLIENT_ID:SECRET \ -X POST "https://api.planningcenteronline.com/giving/v2/batches/BATCH_ID/commit" ``` ``` -------------------------------- ### Key Giving Webhook Events Source: https://context7.com/planningcenter/developers/llms.txt This list outlines important event types for the Giving webhooks, such as donation creation/updates and profile events. Use 'profile.first_donated' to specifically detect first-time donors. ```bash # Key Giving webhook events: # donation.created – a new donation was recorded # donation.updated – a donation was modified # donation.destroyed – a donation was deleted # profile.created – a new donor profile was created # profile.first_donated – a person gave their first donation (use this, not profile.created, # to detect first-time donors) ``` -------------------------------- ### Search People by Email using Planning Center API Source: https://context7.com/planningcenter/developers/llms.txt This endpoint allows searching for people by email address and includes associated email records. Requires client authentication. ```bash curl -u CLIENT_ID:SECRET \ "https://api.planningcenteronline.com/people/v2/people?include=emails&where[search_name_or_email]=gene@example.com" ``` -------------------------------- ### Configure GitHub Action for AI Duplicate Detection Source: https://context7.com/planningcenter/developers/llms.txt This YAML configuration sets up a GitHub Actions job for AI-powered duplicate issue detection using Claude. It involves keyword extraction, AI analysis, and comment generation. Ensure ANTHROPIC_API_KEY is set in secrets. ```yaml jobs: detect-duplicates: runs-on: ubuntu-latest permissions: issues: write steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" cache: "npm" - run: npm ci - name: Run duplicate detection env: GITHUB_TOKEN: ${{ github.token }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} DUPLICATE_DETECTION_MODEL: "claude-sonnet-4-5-20250929" run: node .github/scripts/detect-duplicates.js ``` -------------------------------- ### Look Up Person by ID using Planning Center API Source: https://context7.com/planningcenter/developers/llms.txt Retrieve a specific person's record using their unique ID. Requires client authentication. ```bash curl -u CLIENT_ID:SECRET \ "https://api.planningcenteronline.com/people/v2/people/52665741" ``` -------------------------------- ### Handle 404 by Checking for Merged Records Source: https://context7.com/planningcenter/developers/llms.txt When a person record is not found (404), check for a merger record to identify if the person was merged into another. This helps in updating local references. ```bash curl -u CLIENT_ID:SECRET \ "https://api.planningcenteronline.com/people/v2/person_mergers?where[person_to_remove_id]=14994497" ``` ```json { "data": [{ "attributes": { "person_to_keep_id": 7504309, "person_to_remove_id": 14994497 } }] } ``` -------------------------------- ### Search People by Email Source: https://github.com/planningcenter/developers/blob/main/guides/giving_donations_integration.md Use this endpoint to find a person in Planning Center People by their email address. It also includes emails in the response. ```http GET https://api.planningcenteronline.com/people/v2/people?include=emails&where[search_name_or_email]=gene@example.com ``` -------------------------------- ### Search People by First and Last Name Source: https://github.com/planningcenter/developers/blob/main/guides/giving_donations_integration.md Use this endpoint to find a person in Planning Center People by their first and last name. ```http GET https://api.planningcenteronline.com/people/v2/people?where[first_name]=Gene&where[last_name]=Parm ``` -------------------------------- ### OAuth 2.0 Multi-User Authentication Source: https://context7.com/planningcenter/developers/llms.txt Implement OAuth 2.0 for applications that need to act on behalf of multiple Planning Center users. This involves an authorization flow to obtain an access token. ```APIDOC ## OAuth 2.0 Multi-User Authentication For apps acting on behalf of multiple PCO users, implement OAuth 2.0. Register your app at `https://api.planningcenteronline.com/oauth/applications` to get a client ID and secret. ### Step 1: Redirect user to authorization URL #### Endpoint `https://api.planningcenteronline.com/oauth/authorize` #### Query Parameters - **client_id** (string) - Required - Your application's client ID. - **redirect_uri** (string) - Required - The URI to redirect the user back to after authorization. - **response_type** (string) - Required - Must be `code`. - **scope** (string) - Optional - Space-separated list of requested scopes (e.g., `people+giving`). ### Step 2: Exchange authorization code for access token #### Method POST #### Endpoint `https://api.planningcenteronline.com/oauth/token` #### Request Body - **grant_type** (string) - Required - Must be `authorization_code`. - **code** (string) - Required - The authorization code received from Step 1. - **client_id** (string) - Required - Your application's client ID. - **client_secret** (string) - Required - Your application's client secret. - **redirect_uri** (string) - Required - The redirect URI used in Step 1. #### Example ```bash curl -X POST https://api.planningcenteronline.com/oauth/token \ -d "grant_type=authorization_code" \ -d "code=AUTHORIZATION_CODE" \ -d "client_id=YOUR_CLIENT_ID" \ -d "client_secret=YOUR_CLIENT_SECRET" \ -d "redirect_uri=https://yourapp.com/callback" ``` ### Step 3: Use the access token to make API calls #### Method GET #### Endpoint `https://api.planningcenteronline.com/people/v2/me` #### Headers - **Authorization**: `Bearer ACCESS_TOKEN` #### Example ```bash curl -H "Authorization: Bearer ACCESS_TOKEN" \ https://api.planningcenteronline.com/people/v2/me ``` ``` -------------------------------- ### Subscribe to Giving Webhook Events Source: https://context7.com/planningcenter/developers/llms.txt Configure webhook subscriptions to receive real-time notifications for various Giving events. ```APIDOC ## Webhooks - Giving Events ### Description Subscribe to real-time events for the Giving module to stay updated on changes. ### Available Events - **donation.created**: A new donation was recorded. - **donation.updated**: A donation was modified. - **donation.destroyed**: A donation was deleted. - **profile.created**: A new donor profile was created. - **profile.first_donated**: A person made their first donation. ``` -------------------------------- ### OAuth 2.0 Multi-User Authentication Flow Source: https://context7.com/planningcenter/developers/llms.txt Implement OAuth 2.0 for apps acting on behalf of multiple users. This involves redirecting users for authorization, exchanging codes for tokens, and using tokens for API calls. ```bash # Step 1: Redirect user to authorization URL # https://api.planningcenteronline.com/oauth/authorize # ?client_id=YOUR_CLIENT_ID # &redirect_uri=https://yourapp.com/callback # &response_type=code # &scope=people+giving ``` ```bash # Step 2: Exchange authorization code for access token curl -X POST https://api.planningcenteronline.com/oauth/token \ -d "grant_type=authorization_code" \ -d "code=AUTHORIZATION_CODE" \ -d "client_id=YOUR_CLIENT_ID" \ -d "client_secret=YOUR_CLIENT_SECRET" \ -d "redirect_uri=https://yourapp.com/callback" ``` ```bash # Step 3: Use the access token to make API calls curl -H "Authorization: Bearer ACCESS_TOKEN" \ https://api.planningcenteronline.com/people/v2/me ``` -------------------------------- ### Search People by Name Source: https://context7.com/planningcenter/developers/llms.txt Retrieve a list of people matching specific first and last name criteria. ```APIDOC ## GET /people ### Description Searches for people based on first and last name. ### Method GET ### Endpoint /people ### Query Parameters - **where[first_name]** (string) - Required - The first name to search for. - **where[last_name]** (string) - Required - The last name to search for. ``` -------------------------------- ### Find the Default Fund in Giving API Source: https://context7.com/planningcenter/developers/llms.txt Retrieve the default fund for an organization. The response includes fund details, with the default fund marked by `"default": true`. ```bash # Retrieve the default fund for an organization curl -u CLIENT_ID:SECRET \ "https://api.planningcenteronline.com/giving/v2/funds?where[default]=true" ``` -------------------------------- ### Create a Donation via Batch in Giving API Source: https://context7.com/planningcenter/developers/llms.txt Donations must be created within a batch. This process involves creating an uncommitted batch, adding donations with designations, and then committing the batch. ```bash # 1. Create a Batch curl -u CLIENT_ID:SECRET \ -X POST https://api.planningcenteronline.com/giving/v2/batches \ -H "Content-Type: application/json" \ -d '{ "data": { "type": "Batch", "attributes": { "description": "Sunday Offering 2024-01-14" } } }' # Returns: { "data": { "type": "Batch", "id": "BATCH_ID", ... } } ``` ```bash # 2. Create a Donation inside the Batch curl -u CLIENT_ID:SECRET \ -X POST https://api.planningcenteronline.com/giving/v2/batches/BATCH_ID/donations \ -H "Content-Type: application/json" \ -d '{ "data": { "type": "Donation", "attributes": { "payment_method": "check", "received_at": "2024-01-14T10:30:00Z" }, "relationships": { "person": { "data": { "type": "Person", "id": "52665741" } }, "payment_source": { "data": { "type": "PaymentSource", "id": "PS_ID" } }, "designations": { "data": [{ "type": "Designation", "attributes": { "amount_cents": 5000 }, "relationships": { "fund": { "data": { "type": "Fund", "id": "FUND_ID" } } } }] } } } }' ``` ```bash # 3. Commit the Batch (makes donations visible to donors) curl -u CLIENT_ID:SECRET \ -X POST "https://api.planningcenteronline.com/giving/v2/batches/BATCH_ID/commit" ``` -------------------------------- ### Search People by Full Name Source: https://github.com/planningcenter/developers/blob/main/guides/giving_donations_integration.md Use this endpoint to find a person in Planning Center People by their full name. ```http GET https://api.planningcenteronline.com/people/v2/people?where[search_name]=Gene%20Parm ``` -------------------------------- ### Search People by ID Source: https://github.com/planningcenter/developers/blob/main/guides/giving_donations_integration.md Retrieve a specific person record from Planning Center People using their unique ID. ```http GET https://api.planningcenteronline.com/people/v2/people/52665741 ``` -------------------------------- ### Giving API - Find the Default Fund Source: https://context7.com/planningcenter/developers/llms.txt Retrieve the default fund for an organization using a query parameter to filter for the default fund. ```APIDOC ## Giving API — Find the Default Fund Retrieve the default fund for an organization. ### Method GET ### Endpoint `https://api.planningcenteronline.com/giving/v2/funds?where[default]=true` ### Authentication Basic Auth with `CLIENT_ID:SECRET` ### Example ```bash curl -u CLIENT_ID:SECRET \ "https://api.planningcenteronline.com/giving/v2/funds?where[default]=true" ``` ### Response Example ```json { "data": [{ "type": "Fund", "id": "123456", "attributes": { "name": "General", "default": true, ... } }] } ``` ``` -------------------------------- ### Search People by Email or Name Source: https://context7.com/planningcenter/developers/llms.txt Find people by searching their name or email address. Includes email details in the response. ```APIDOC ## GET /people ### Description Searches for people by name or email address, and includes their email information. ### Method GET ### Endpoint /people ### Query Parameters - **include** (string) - Optional - Specifies related resources to include, e.g., "emails". - **where[search_name_or_email]** (string) - Required - The name or email address to search for. ``` -------------------------------- ### Personal Access Token Authentication Source: https://context7.com/planningcenter/developers/llms.txt Authenticate API requests using a Personal Access Token, which is a client ID and secret pair, via HTTP Basic Auth. This method is suitable for authenticating as a single user. ```APIDOC ## Personal Access Token Authentication Authenticate as a single user using a Personal Access Token (client ID + secret) via HTTP Basic Auth. Tokens are generated at `https://api.planningcenteronline.com/personal_access_tokens`. ### Method GET ### Endpoint `https://api.planningcenteronline.com/services/v2/` ### Authentication HTTP Basic Auth with `YOUR_CLIENT_ID:YOUR_SECRET` ### Example ```bash curl -u YOUR_CLIENT_ID:YOUR_SECRET \ https://api.planningcenteronline.com/services/v2/ ``` ## Example: Fetch people from the People API ### Method GET ### Endpoint `https://api.planningcenteronline.com/people/v2/people?where[first_name]=Jane&where[last_name]=Smith` ### Authentication HTTP Basic Auth with `YOUR_CLIENT_ID:YOUR_SECRET` ### Example ```bash curl -u YOUR_CLIENT_ID:YOUR_SECRET \ "https://api.planningcenteronline.com/people/v2/people?where[first_name]=Jane&where[last_name]=Smith" ``` ### Response Example ```json { "data": [ { "type": "Person", "id": "52665741", "attributes": { "first_name": "Jane", "last_name": "Smith", ... }, "relationships": { ... } } ], "meta": { "total_count": 1, "count": 1 } } ``` ``` -------------------------------- ### Empty Response for Person Merger Source: https://github.com/planningcenter/developers/blob/main/guides/giving_donations_integration.md An empty response from the `person_mergers` endpoint indicates that the specified person was deleted, not merged. ```json { "links": { "self": "https://api.planningcenteronline.com/people/v2/person_mergers?where[person_to_remove_id]=14994497" }, "data": [], "included": [], "meta": { "total_count": 0, "count": 0, "can_order_by": [ "created_at" ], "can_query_by": [ "created_at", "person_to_keep_id", "person_to_remove_id" ], "parent": { "id": "127", "type": "Organization" } } } ``` -------------------------------- ### Look Up Person by ID Source: https://context7.com/planningcenter/developers/llms.txt Retrieve a specific person's record using their unique ID. ```APIDOC ## GET /people/{id} ### Description Retrieves a specific person's details using their unique identifier. ### Method GET ### Endpoint /people/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The unique ID of the person to retrieve. ``` -------------------------------- ### Handle Person Mergers Source: https://context7.com/planningcenter/developers/llms.txt Check for records indicating a person has been merged into another. Provides the ID of the person to keep. ```APIDOC ## GET /person_mergers ### Description Finds records of merged person accounts to identify the correct person ID. ### Method GET ### Endpoint /person_mergers ### Query Parameters - **where[person_to_remove_id]** (integer) - Required - The ID of the person record that was removed or merged. ``` -------------------------------- ### Check for Person Merges Source: https://github.com/planningcenter/developers/blob/main/guides/giving_donations_integration.md When a Person record is not found (404 error), use this endpoint to check if the Person was merged into another record. This helps differentiate between a deleted Person and a merged Person. ```APIDOC ## GET /people/v2/person_mergers ### Description Retrieves information about person merges. This is useful for determining if a person record has been merged into another, which can cause a 404 error when trying to access the original person ID. ### Method GET ### Endpoint https://api.planningcenteronline.com/people/v2/person_mergers ### Parameters #### Query Parameters - **where[person_to_remove_id]** (integer) - Required - The ID of the person record that may have been removed due to a merge. ### Response #### Success Response (200) - **data** (array) - An array of PersonMerger objects. If the array is empty, the person was likely deleted. If it contains records, the person was merged. - **attributes.person_to_keep_id** (integer) - The ID of the person record that the removed person was merged into. ### Request Example ``` GET https://api.planningcenteronline.com/people/v2/person_mergers?where[person_to_remove_id]=14994497 ``` ### Response Example (Person Merged) ```json { "links": { "self": "https://api.planningcenteronline.com/people/v2/person_mergers?where[person_to_remove_id]=14994497" }, "data": [ { "type": "PersonMerger", "id": "3518", "attributes": { "created_at": "2016-06-15T16:07:33Z", "person_to_keep_id": 7504309, "person_to_remove_id": 14994497 }, "relationships": { "person_to_keep": { "data": { "type": "Person", "id": "7504309" } }, "person_to_remove": { "data": { "type": "Person", "id": "14994497" } } }, "links": { "self": "https://api.planningcenteronline.com/people/v2/person_mergers/3518" } } ], "included": [], "meta": { "total_count": 1, "count": 1, "can_order_by": [ "created_at" ], "can_query_by": [ "created_at", "person_to_keep_id", "person_to_remove_id" ], "parent": { "id": "127", "type": "Organization" } } } ``` ### Response Example (Person Not Merged/Deleted) ```json { "links": { "self": "https://api.planningcenteronline.com/people/v2/person_mergers?where[person_to_remove_id]=14994497" }, "data": [], "included": [], "meta": { "total_count": 0, "count": 0, "can_order_by": [ "created_at" ], "can_query_by": [ "created_at", "person_to_keep_id", "person_to_remove_id" ], "parent": { "id": "127", "type": "Organization" } } } ``` ``` -------------------------------- ### Response When Person Has Been Merged Source: https://github.com/planningcenter/developers/blob/main/guides/giving_donations_integration.md This response indicates that Person `14994497` was merged into Person `7504309`. Update your system to use the `person_to_keep_id` for future references. ```json { "links": { "self": "https://api.planningcenteronline.com/people/v2/person_mergers?where[person_to_remove_id]=14994497" }, "data": [ { "type": "PersonMerger", "id": "3518", "attributes": { "created_at": "2016-06-15T16:07:33Z", "person_to_keep_id": 7504309, "person_to_remove_id": 14994497 }, "relationships": { "person_to_keep": { "data": { "type": "Person", "id": "7504309" } }, "person_to_remove": { "data": { "type": "Person", "id": "14994497" } } }, "links": { "self": "https://api.planningcenteronline.com/people/v2/person_mergers/3518" } } ], "included": [], "meta": { "total_count": 1, "count": 1, "can_order_by": [ "created_at" ], "can_query_by": [ "created_at", "person_to_keep_id", "person_to_remove_id" ], "parent": { "id": "127", "type": "Organization" } } } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.