GoFundMe Studio Campaign API

Studio Campaign

Operations 3

POST /studio-campaigns/{campaign_id}/share-settings/social-videos createStudioCampaignSocialVideo #
GET /studio-campaigns/{campaign_id}/share-settings/social-videos/{persona} getStudioCampaignSocialVideo #
PUT /studio-campaigns/{campaign_id}/share-settings/social-videos/{persona}/status updateStudioCampaignSocialVideoStatus #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gofundme-studio-campaign-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gofundme-studio-campaign-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: GoFundMe Pro Studio Campaign API
  description: 'GoFundMe Pro API


    Welcome to the GoFundMe Pro API (2.0.0), a powerful toolset that empowers innovative and creative minds to engineer the world for good.'
  version: 2.0.0
servers:
- url: https://pro.gofundme.com/api/2.0
security:
- OAuth2Application: []
- OAuth2Member: []
tags:
- name: Studio Campaign
  description: Studio Campaign
paths:
  /studio-campaigns/{campaign_id}/share-settings/social-videos:
    post:
      tags:
      - Studio Campaign
      summary: createStudioCampaignSocialVideo
      description: Creates a new social video for a studio campaign. The API automatically extracts most data from the campaign, with client-provided values treated as overrides.
      operationId: createStudioCampaignSocialVideo
      parameters:
      - name: campaign_id
        in: path
        description: Campaign ID
        required: true
        schema:
          type: integer
          example: 12345
      requestBody:
        description: The API requires only minimal data (persona, description, main_image) and automatically extracts the rest from the campaign. Any additional fields provided will override the extracted data.
        content:
          application/json:
            schema:
              required:
              - persona
              - description
              - main_image
              properties:
                persona:
                  description: The persona for which the video is created
                  type: string
                  example: donor
                description:
                  description: Description of the video
                  type: string
                  example: Thank you for your donation
                main_image:
                  description: URL of the main image to use in the video
                  type: string
                  example: https://example.com/image.jpg
                theme_data:
                  description: Theme data for the video (optional override - individual properties can be provided without specifying all)
                  properties:
                    primary_color:
                      description: Optional override for primary color
                      type: string
                      example: '#FF0000'
                    secondary_color:
                      description: Optional override for secondary color
                      type: string
                      example: '#00FF00'
                    font_color:
                      description: Optional override for font color
                      type: string
                      example: '#000000'
                    font_name:
                      description: Optional override for font name (client has specialized font mapping knowledge)
                      type: string
                      example: Sans Serif
                  type: object
                logo_image:
                  description: URL of the logo image to use in the video (optional override)
                  type: string
                  example: https://example.com/logo.jpg
                hero_image:
                  description: URL of the hero image to use in the video (optional override)
                  type: string
                  example: https://example.com/hero.jpg
                campaign_content:
                  description: Campaign content for the video (optional override - the API will extract content from campaign pages if not provided)
                  properties:
                    campaign_title:
                      description: Optional override for campaign title
                      type: string
                      example: Campaign Title
                    campaign_paragraphs:
                      description: Optional override for campaign paragraphs
                      type: string
                      example: '[P1] First paragraph\n\n[P2] Second paragraph'
                    campaign_headings:
                      description: Optional override for campaign headings
                      type: string
                      example: '[H1] First heading\n\n[H2] Second heading'
                    campaign_text:
                      description: Optional override for all campaign text
                      type: string
                      example: '[TITLE] Campaign Title\n\n[HEADING 1] First heading\n\n[PARAGRAPH 1] First paragraph'
                  type: object
              type: object
      responses:
        '201':
          description: Success - The API has accepted the request and started the video generation process. The server will gather all necessary data from the campaign, applying any provided overrides.
          content:
            application/json:
              schema:
                properties:
                  status:
                    description: The initial status of the video generation job
                    type: string
                    example: pending
                  message:
                    description: A success message
                    type: string
                    example: Video generation job created successfully
                type: object
        '403':
          description: Requester is not authorized to perform action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
        '404':
          description: Campaign not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundResponse'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                    example: The given data was invalid.
                  errors:
                    type: object
                    example:
                      persona: The persona field is required.
                      description: The description field is required.
                type: object
      security:
      - OAuth2Member: []
  /studio-campaigns/{campaign_id}/share-settings/social-videos/{persona}:
    get:
      tags:
      - Studio Campaign
      summary: getStudioCampaignSocialVideo
      description: Retrieves a specific social video for a studio campaign by persona
      operationId: getStudioCampaignSocialVideo
      parameters:
      - name: campaign_id
        in: path
        description: Campaign ID
        required: true
        schema:
          type: integer
          example: 12345
      - name: persona
        in: path
        description: Persona type (e.g., donor)
        required: true
        schema:
          type: string
          example: donor
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: string
                    example: '12345'
                  entity_type:
                    type: string
                    example: studio_campaign
                  entity_id:
                    type: string
                    example: '12345'
                  persona:
                    type: string
                    example: donor
                  description:
                    type: string
                    example: Thank you for your donation
                  main_image:
                    type: string
                    example: https://example.com/image.jpg
                  is_enabled:
                    type: boolean
                    example: true
                  status:
                    type: string
                    example: completed
                  url:
                    type: string
                    example: https://example.com/video.mp4
                  thumbnail_url:
                    type: string
                    example: https://example.com/thumbnail.jpg
                  created_at:
                    type: string
                    format: date-time
                    example: '2023-01-01T12:00:00Z'
                  updated_at:
                    type: string
                    format: date-time
                    example: '2023-01-01T12:30:00Z'
                type: object
        '403':
          description: Requester is not authorized to perform action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
        '404':
          description: Campaign or social video not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundResponse'
  /studio-campaigns/{campaign_id}/share-settings/social-videos/{persona}/status:
    put:
      tags:
      - Studio Campaign
      summary: updateStudioCampaignSocialVideoStatus
      description: Updates the enabled status of a social video for a studio campaign
      operationId: updateStudioCampaignSocialVideoStatus
      parameters:
      - name: campaign_id
        in: path
        description: Campaign ID
        required: true
        schema:
          type: integer
          example: 12345
      - name: persona
        in: path
        description: Persona type (e.g., donor)
        required: true
        schema:
          type: string
          example: donor
      requestBody:
        content:
          application/json:
            schema:
              required:
              - is_enabled
              properties:
                is_enabled:
                  description: Whether the social video is enabled
                  type: boolean
                  example: true
              type: object
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                properties:
                  is_enabled:
                    type: boolean
                    example: true
                type: object
        '403':
          description: Requester is not authorized to perform action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
        '404':
          description: Campaign not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                    example: The given data was invalid.
                  errors:
                    type: object
                    example:
                      is_enabled: The is_enabled field is required.
                type: object
        '400':
          description: Bad Request - Invalid persona or no video exists
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: Error message
                    type: string
                    example: 'Invalid persona. Must be one of: donor, fundraiser, team_member'
                type: object
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                    example: Failed to update social video settings
                type: object
      security:
      - OAuth2Member: []
components:
  schemas:
    ResourceNotFoundResponse:
      title: Resource Not Found Response
      properties:
        error:
          description: Description of detected errors in request
          type: string
      type: object
    ForbiddenResponse:
      title: Forbidden Response
      properties:
        error:
          description: Description of detected error in request
          type: string
          example: This action is unauthorized.
      type: object
  securitySchemes:
    OAuth2Application:
      type: oauth2
      description: OAuth bearer token for client application
      flows:
        clientCredentials:
          tokenUrl: /oauth2/auth
          refreshUrl: /oauth2/auth
          scopes:
            read: Read access
            write: Write access
    OAuth2Member:
      type: oauth2
      description: OAuth bearer token for client application with additional member context
      flows:
        password:
          tokenUrl: /oauth2/auth
          refreshUrl: /oauth2/auth
          scopes:
            read: Read access
            write: Write access