canonical: https://jentic.com/apis/contribly.com/contribly

# Contribly

Contribly is a user-generated content and audience contribution platform that lets publishers, broadcasters, and community sites collect, moderate, and publish submissions from their audiences. The API exposes assignments (calls for content), contributions (submitted text, photos, video, and form responses), media uploads, tag and tagset management, moderation workflows, and export jobs that bundle approved contributions for downstream use. It also covers form-based response collection, contribution flagging and likes, subscription management, and OAuth-secured user identity lookups. Integrations typically run a contribution lifecycle of create assignment, intake media or form responses, moderate, then export.

## For AI agents

Run an end-to-end audience contribution workflow: create assignments, accept text, photo, video and form submissions, moderate them, and export approved content via a single OAuth 2.0 password-flow API.

## Scope

Does not handle email marketing, social-media publishing, or general CMS authoring - use for audience contribution intake, moderation, and export only.

## Capabilities

- Create assignments that solicit specific photo, video, text, or form contributions from a defined audience
- Accept inbound contributions through POST /contributions and attach uploaded files via POST /media
- Moderate user-generated content with flag, like, and explicit moderation actions on each contribution
- Build structured intake forms and collect responses through the /forms and /form-responses endpoints
- Organise submissions with tags and tagsets so editorial teams can filter contributions by topic or campaign
- Bundle approved contributions into export jobs and poll /exports/{id} until the export is ready for download
- Manage authenticated user subscriptions and inspect linked social profiles via /users/{id}/linked/{type}

## Use cases

### Audience Photo and Video Assignments

Newsrooms and broadcasters use Contribly to issue assignments such as 'send us your storm damage photos' and collect media submissions from the public. Each assignment is created with POST /assignments, contributions are submitted with POST /contributions and POST /media, and editors moderate inbound items before publication. The platform handles validation of artifact formats and tracks each contribution's moderation state across the editorial pipeline.

Example prompt: Create a new assignment titled 'Storm photos' with closing date set 7 days out, then list contributions tagged 'storm-damage' and approve those that pass moderation.

### Form-Based Audience Surveys

Editorial and engagement teams publish structured forms via POST /forms and collect typed responses through POST /form-responses. This is used for tip lines, competition entries, eyewitness questionnaires, and audience polling where free-form contributions are not enough. Responses are queryable by id and can be tagged and exported alongside other contributions for unified analysis.

Example prompt: Create a form with three required fields (location, eyewitness account, contact email) and list every form-response submitted in the last 24 hours.

### Moderation and Flagging Workflows

Community managers handle inbound flags through POST /contributions/{id}/flag and act on them via POST /contributions/{id}/moderate to approve, reject, or hide contributions. Likes are recorded through POST /contributions/{id}/like, giving downstream ranking signals. The endpoints surface enough state for an automated moderation agent to triage, escalate, and act without leaving the API.

Example prompt: Fetch every contribution flagged in the past hour, classify each one against community guidelines, and call POST /contributions/{id}/moderate with the appropriate action.

### Exporting Approved Contributions

Once contributions are approved, teams export them in bulk for use in editorial systems, archives, or partner feeds. POST /export-summary returns a preflight count, POST /export creates the job, and GET /exports/{id} is polled until completion. This pattern is well suited to scheduled agent runs that compile daily or weekly digests of audience content.

Example prompt: Call POST /export-summary for last week's approved contributions, kick off POST /export if the count is above zero, then poll GET /exports/{id} every 30 seconds until status is complete.

### AI Agent Integration via Jentic

AI agents discover Contribly through Jentic by searching for intents like 'collect audience submissions' or 'moderate user generated content'. Jentic returns the matching operation schema, executes the call against Contribly using a stored OAuth 2.0 password-flow token, and never exposes the credential to the agent's prompt context. This lets a content-ops agent run the full assignment-to-export lifecycle as one chained workflow.

Example prompt: Through Jentic, search 'moderate audience contributions', load the moderation operation schema, and execute POST /contributions/{id}/moderate for every flagged item with a model-decided action.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /assignments | Create a new assignment |
| POST | /contributions | Submit a new contribution |
| POST | /media | Upload a new media file |
| POST | /contributions/{id}/moderate | Moderate a contribution |
| POST | /contributions/{id}/flag | Flag a contribution for review |
| POST | /forms | Create a form |
| POST | /export | Export approved contributions |
| GET | /exports/{id} | Poll an export job for completion |

## Key resources

- **Assignments** — Create, list, fetch, and delete assignments that solicit contributions from an audience
- **Contributions** — Submit, retrieve, delete, flag, like, and moderate user-submitted content
- **Forms and form responses** — Build structured forms and capture typed responses for surveys, tip lines, and competitions
- **Media** — Upload binary media files to attach to contributions
- **Tags and tagsets** — Categorise contributions with tags grouped into tagsets for editorial filtering
- **Exports** — Bundle approved contributions into export jobs and poll for completion
- **Users and subscriptions** — Inspect contributor profiles, linked social accounts, scopes, and subscriptions

## Why Jentic

- **Setup:** Wiring the Contribly API by hand means running its OAuth 2.0 password flow, refreshing the bearer token, and mapping the assignment, contribution, moderation, and export calls yourself. Through Jentic you install once, import the Contribly API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Contribly puts the contribution id in the URL path (/contributions/{id}/moderate), so a rule can pin your agent to acting on one contribution. You choose the operations it may call, so state-changing ones like moderating or flagging a contribution are not included unless you add them.
- **Credential handling:** Your Contribly client credentials and refresh token are stored once, encrypted, by your own Jentic One instance and a scoped bearer token is injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'submit an audience contribution' or 'moderate a contribution', and Jentic returns the matching Contribly operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Typeform** — Typeform focuses on conversational forms and surveys; Contribly extends to media-rich UGC and editorial moderation
- **Jotform** — Jotform is a general-purpose form builder; Contribly is a dedicated audience contribution and moderation platform
- **ModerateContent** — ModerateContent classifies images for adult or unsafe material; pair with Contribly to auto-screen incoming media
- **SurveyMonkey** — SurveyMonkey handles long-running structured surveys; Contribly handles editorial-grade audience contributions

## FAQ

### What authentication does the Contribly API use?

Contribly uses OAuth 2.0 with the password grant flow. Tokens are issued by the token endpoint declared in the spec and presented as a bearer token on each request. Through Jentic, the OAuth credentials are stored in your encrypted Jentic One instance and never appear in the agent's prompt context.

### Can I moderate user-submitted contributions through the Contribly API?

Yes. Each contribution can be flagged via POST /contributions/{id}/flag and acted on via POST /contributions/{id}/moderate. Likes are tracked through POST /contributions/{id}/like and you can permanently remove items with DELETE /contributions/{id}, which makes it suitable for both human-in-the-loop and fully automated moderation flows.

### How do I collect form responses with the Contribly API?

Create a form with POST /forms, then accept submissions with POST /form-responses. List all responses with GET /form-responses or fetch a specific one with GET /form-responses/{id}. This is the recommended path for tip lines, eyewitness questionnaires, and competition entries where you want structured fields rather than free-form contributions.

### What are the rate limits for the Contribly API?

The published OpenAPI specification does not declare explicit rate limits. Treat the API as bound by standard HTTP 429 backoff and consult Contribly's onboarding documentation for the limit applied to your account tier before running bulk export or media upload jobs.

### How do I export approved contributions through Jentic?

Through Jentic, search for 'export contributions', load the schema for POST /export, and execute it after calling POST /export-summary to confirm the row count. Then poll GET /exports/{id} until the job reports complete. The Jentic SDK pattern is search, load, execute via the async Python client (pip install jentic). Get started with Jentic One, the self-hosted execution layer.

### Can I attach media files to contributions?

Yes. Upload the binary file with POST /media first, then reference the resulting media identifier when creating the contribution via POST /contributions. The /artifact-formats endpoint lists the formats Contribly accepts for the current account.

### Can I limit what my agent is allowed to do with the Contribly API?

Yes. Because you run Jentic One yourself, your own rules decide which Contribly operations and credentials the agent may use, so you can grant read-only intake calls while withholding state-changing ones like POST /contributions/{id}/moderate or POST /contributions/{id}/flag until you explicitly add them. Since Contribly puts the contribution id in the URL path, such as /contributions/{id}/moderate, a rule can also pin the agent to acting on a single contribution rather than the whole queue. The OAuth credentials stay in your self-hosted instance and are injected only at execution time, so the agent never sees them.
