# Apple ID Comprehensive Lookup

> Pod Engine API endpoint reference, optimized for LLM consumption.
> Auto-generated from the source-of-truth endpoint registry.
>
> Category: Podcasts
> Source: https://www.podengine.ai/api-docs/get-apple-id-comprehensive-lookup.md
> Interactive HTML docs: https://www.podengine.ai/api-docs/get-apple-id-comprehensive-lookup
> Full API reference (all endpoints): https://www.podengine.ai/api-docs/llms.txt

**Base URL:** `http://localhost:4000`
**Auth:** Requires a Bearer token: `Authorization: Bearer YOUR_API_KEY`

---

#### GET /api/v1/podcasts/apple-id/lookup
**Apple ID Comprehensive Lookup**

Comprehensive lookup by Apple ID - checks Podcast, PodcastAppleId, PodcastNewRequest, and scraper database

```bash
curl -X GET "http://localhost:4000/api/v1/podcasts/apple-id/lookup?id=315114957" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

**Query schema:**
```json
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 0,
      "exclusiveMinimum": true,
      "maximum": 9007199254740991,
      "description": "Apple Podcasts ID"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
```

**Response schema:**
```json
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "OK"
      ]
    },
    "data": {
      "type": "object",
      "properties": {
        "appleId": {
          "type": "number"
        },
        "status": {
          "type": "string",
          "enum": [
            "found",
            "linked",
            "apple_details_not_found",
            "apple_not_scraped",
            "create_podcast_failed",
            "duplicate_apple_id",
            "duplicate_podcast_guid",
            "duplicate_rss_url",
            "malformed_apple_url",
            "no_episodes_count",
            "no_podcast_image",
            "non_us_apple_url",
            "not_active",
            "request_not_found",
            "rss_download_failed",
            "rss_parsing_failed",
            "rss_url_not_found",
            "import_error_unknown",
            "pending_import",
            "scraped_not_imported_non_english",
            "scraped_not_imported_no_rss_url",
            "scraped_not_imported_not_fully_scraped",
            "scraped_not_imported_too_few_episodes",
            "scraped_not_imported_inactive",
            "scraped_not_imported_low_engagement",
            "scraped_not_imported_unknown",
            "not_found"
          ]
        },
        "podcast": {
          "nullable": true,
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "slug": {
              "type": "string"
            },
            "title": {
              "type": "string"
            },
            "imageUrl": {
              "nullable": true,
              "type": "string"
            },
            "isPrimaryAppleId": {
              "type": "boolean"
            },
            "primaryAppleId": {
              "type": "number"
            },
            "createdAt": {},
            "podEngineUrl": {
              "type": "string",
              "description": "Direct link to the podcast in the Pod Engine app"
            }
          },
          "required": [
            "id",
            "slug",
            "title",
            "imageUrl",
            "isPrimaryAppleId",
            "primaryAppleId",
            "createdAt",
            "podEngineUrl"
          ],
          "additionalProperties": false
        },
        "importRequest": {
          "nullable": true,
          "type": "object",
          "properties": {
            "id": {
              "type": "number"
            },
            "appleTitle": {
              "type": "string"
            },
            "rssUrl": {
              "type": "string"
            },
            "creationSource": {
              "type": "string"
            },
            "createdAt": {},
            "importedAt": {
              "nullable": true
            },
            "podcastId": {
              "nullable": true,
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "importErrorAt": {
              "nullable": true
            },
            "importError": {
              "nullable": true,
              "type": "string"
            },
            "importErrorType": {
              "nullable": true,
              "type": "string"
            }
          },
          "required": [
            "id",
            "appleTitle",
            "rssUrl",
            "creationSource",
            "createdAt",
            "importedAt",
            "podcastId",
            "importErrorAt",
            "importError",
            "importErrorType"
          ],
          "additionalProperties": false
        },
        "scraperData": {
          "nullable": true,
          "type": "object",
          "properties": {
            "entries": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "number"
                  },
                  "country": {
                    "type": "string"
                  },
                  "podcastTitle": {
                    "type": "string"
                  },
                  "createdAt": {},
                  "lastScrapedAt": {
                    "nullable": true
                  },
                  "lastSuccessAt": {
                    "nullable": true
                  },
                  "lastErrorAt": {
                    "nullable": true
                  },
                  "rssUrl": {
                    "nullable": true,
                    "type": "string"
                  },
                  "ratingsCount": {
                    "nullable": true,
                    "type": "number"
                  },
                  "averageRating": {
                    "nullable": true,
                    "type": "number"
                  },
                  "episodesCount": {
                    "nullable": true,
                    "type": "number"
                  },
                  "lastEpisodeDate": {
                    "nullable": true
                  },
                  "isLikelyNonEnglishTitle": {
                    "type": "boolean"
                  },
                  "skippedPodcastImportReason": {
                    "nullable": true,
                    "type": "string"
                  },
                  "skippedPodcastImportAt": {
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "country",
                  "podcastTitle",
                  "createdAt",
                  "lastScrapedAt",
                  "lastSuccessAt",
                  "lastErrorAt",
                  "rssUrl",
                  "ratingsCount",
                  "averageRating",
                  "episodesCount",
                  "lastEpisodeDate",
                  "isLikelyNonEnglishTitle",
                  "skippedPodcastImportReason",
                  "skippedPodcastImportAt"
                ],
                "additionalProperties": false
              }
            },
            "countries": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "mostRecentScrape": {
              "nullable": true
            },
            "recentAttempts": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "number"
                  },
                  "createdAt": {},
                  "type": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  },
                  "appleId": {
                    "nullable": true,
                    "type": "number"
                  },
                  "spotifyId": {
                    "nullable": true,
                    "type": "string"
                  },
                  "podcastId": {
                    "nullable": true,
                    "type": "string"
                  },
                  "errorType": {
                    "nullable": true,
                    "type": "string"
                  },
                  "errorDetails": {
                    "nullable": true,
                    "type": "string"
                  },
                  "timeTakenMs": {
                    "type": "number"
                  }
                },
                "required": [
                  "id",
                  "createdAt",
                  "type",
                  "url",
                  "appleId",
                  "spotifyId",
                  "podcastId",
                  "errorType",
                  "errorDetails",
                  "timeTakenMs"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "entries",
            "countries",
            "mostRecentScrape",
            "recentAttempts"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "appleId",
        "status",
        "podcast",
        "importRequest",
        "scraperData"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "status",
    "data"
  ],
  "additionalProperties": false
}
```

---

## See also

- All endpoints in one file: https://www.podengine.ai/api-docs/llms.txt
- Full reference with every schema inlined: https://www.podengine.ai/api-docs/llms-full.txt
- OpenAPI 3.1 spec: https://www.podengine.ai/api-docs/openapi.json
- Get an API key: https://www.podengine.ai/get-started
- Support: support@podengine.ai
