---
title: "Create a product feed"
method: POST
path: "/v1/ads/catalogs/{catalogId}/feeds"
tags: ["Product Catalogs"]
---

# Create a product feed

`POST /v1/ads/catalogs/{catalogId}/feeds`

A feed pulls a CSV/TSV/XML product file from a URL. With `schedule` Meta fetches it on a cadence; without it, trigger fetches with POST /v1/ads/catalogs/{catalogId}/feeds/{feedId}/uploads.

## Path parameters

- `catalogId` string, required

## Request body

- object
  - `accountId` string, required
  - `catalogAccountId` string
  - `name` string, required
  - `schedule` object
    - `interval` 'HOURLY' | 'DAILY' | 'WEEKLY', required
    - `url` string, uri, required
    - `hour` integer
    - `dayOfWeek` 'SUNDAY' | 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY'

## Response `201`

Feed created

- object
  - `feed` MetaProductFeed
    - `id` string
    - `name` string
    - `productCount` integer
    - `schedule` object, nullable
      - `interval` string
      - `url` string
      - `hour` integer, nullable
      - `dayOfWeek` string, nullable
    - `createdTime` string, nullable
    - `latestUpload` MetaFeedUpload
      - `id` string
      - `url` string, nullable
      - `startTime` string, nullable
      - `endTime` string, nullable
      - `errorCount` integer
      - `warningCount` integer
      - `itemsDetected` integer
      - `itemsDeleted` integer

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — The Meta login behind the account lacks catalog_management (code insufficient_permissions). Reconnect granting it, or pass catalogAccountId.
- `404` — Resource not found

## Changes

- **2026-09-17** `fdaf9a9fb1a7` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/ads/catalogs/:catalogId/feeds/post.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/dd3865482f9f?raw)
