Gist Content API

This document describes how publisher partners can push articles to ProRata using our ingest API. It supports both real-time article delivery and bulk ingestion for archived content.

This push-based approach is recommended because:

  • Publishers can send content as soon as it's available (ideal for breaking news)
  • It removes the dependency on crawlers and scheduled fetches
  • It minimizes errors from network timeouts or crawl failures
  • It allows publishers to manage their own submission flow

Key Concepts

Publisher Group:
A Publisher Group represents a collection of related publications managed under one umbrella. For example, a large media company might have multiple publications, each with its own domain or external ID, but all fall under the same Publisher Group. The API key for authentication is issued at the Publisher Group level, allowing all associated publications to submit articles through the same credentials.

Publication (or Publisher):
An individual publication or outlet within a Publisher Group. Publications may share the same domain or have distinct external IDs to differentiate them.


API Overview

The ingest API allows partners to submit one or multiple articles. A unique API key is issued at the Publisher Group level for authentication.

⚠️

Authentication is required for all endpoints.


Authentication

All requests require an API key. Include your key in the Authorization header using the Bearer scheme:

Authorization: Bearer <your-api-key>

API keys are provided during onboarding. Contact us if you need access.


Submit a Single Article

Use this endpoint to submit current or new articles.

  • Method: POST
  • Endpoint: /ingest/article
  • Content-Type: application/json

Parameters

FieldTypeRequiredDescription
publication_external_idstringUsed to identify the publication.
publish_datedatetimeISO 8601 format (e.g., 2025-06-27T14:45:00Z).
article_thumbnail_urlstringOptional thumbnail image URL for display.
titlestringTitle of the article.
content_typeenumOne of: text, video, image.
external_urlstringURL to the article on your site.
canonical_urlstringOriginal source URL (for syndicated articles).
content (if text)stringHTML content of the article. Required for text type.

Request Example

{
  "publication_external_id": "BillingsGazette",
  "publish_date": "2025-02-18T22:25:35Z",
  "title": "Finland again ranked happiest country",
  "content_type": "text",
  "external_url": "https://billingsgazette.com/article.html",
  "content": "<div><h1>Header</h1><p>Some content here.</p></div>"
}

Success Response

{
  "status": "success",
  "message": "Ingest was successful."
}

Submit Multiple Articles

Use this endpoint to ingest archived or historical articles in bulk.

  • Method: POST
  • Endpoint: /ingest/multiple_articles
  • Content-Type: application/json

Each article must include:

FieldTypeRequiredDescription
publication_domainstringDomain of the article’s source publication.
article_datedatetimePublication date and time.
titlestringTitle of the article.
contentstringHTML content of the article.
urlstringArticle URL.
canonical_urlstringOptional original source URL.

Request Example

[
  {
    "publication_domain": "billingsgazette.com",
    "article_date": "2024-01-18T22:25:35Z",
    "title": "Finland again ranked happiest country",
    "content": "<div><h1>Header</h1><p>Content here.</p></div>",
    "url": "https://billingsgazette.com/article1.html"
  },
  {
    "publication_domain": "billingsgazette.com",
    "article_date": "2024-02-18T22:25:35Z",
    "title": "Some other article",
    "content": "<div><h1>Header</h1><p>More content here.</p></div>",
    "url": "https://billingsgazette.com/article2.html"
  }
]

Success Response

{
  "status": "success",
  "message": "Ingest was successful."
}

Rate Limits

The default rate limit is:

  • 10 requests per minute

If you need a higher rate limit, please contact our support team.


Error Handling

You may encounter the following error responses:

Status CodeMeaning
400Invalid or missing parameters
401Unauthorized / invalid API key
429Rate limit exceeded
500Internal server error

Security Considerations

HTML content submitted via the API should be:

  • Sanitized to avoid harmful scripts or embedded content (e.g., XSS)
  • Well-formed and free from unsupported tags

ProRata is actively reviewing ingestion content for security risks.