Create catalog snapshot diff.
Changed onApply the snapshot's saved filters to the current catalog and store channels added or removed relative to the original snapshot, not the previous diff. The original snapshot is not updated. Returns counts; use List diff changes with change_type=added or removed to retrieve channel IDs. Removed means no longer matching the saved result, not necessarily deleted from Telegram.
The saved baseline and current matching set must both fit the maximum from your current API plan or Subscription key settings. Larger sets return 422 without truncation. Each diff expires 30 days after its creation. Your active diff cap applies across all snapshots and is returned as active_limit by List diffs. Reaching it returns 429 DIFF_LIMIT_REACHED. Only one diff creation per user can run at a time; concurrent requests return 429 DIFF_CREATION_IN_PROGRESS. Snapshot mutation conflicts also return 429. Retry temporary conflicts after Retry-After. The source snapshot must be active. Catalog and snapshot access must both be enabled. Credits keys: 0.400 credits per successful creation, including a diff with no changes. No additional base or per-channel fee; 30-day storage is included. Each POST creates and bills a new diff. After a timeout, inspect existing diffs before retrying: creation requests are not deduplicated.
Request
- Base URLhttps://api.tlmtr.io
- AuthAPI key in header x-api-key
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
Unique snapshot identifier. Pass the value returned when creating or listing snapshots unchanged.
Response
Example response
{
"diff_id": "01900000-0000-7000-8000-000000000002",
"snapshot_id": "01900000-0000-7000-8000-000000000001",
"added_count": 25,
"removed_count": 10,
"created_at": "2026-09-08T12:00:00Z",
"expires_at": "2026-10-08T12:00:00Z"
}Changes
- breaking
the response's body type changed from
objectto no type for status - breaking
removed the required property
from the response with the status - breaking
removed the required property
from the response with the status - breaking
removed the required property
from the response with the status - info
added
subschema #2to the response bodyallOflist for the response status
- breaking
- info
endpoint added
- info