Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/brightbeanxyz/brightbean-studio
/ endpoints
Endpoints
120 in github.com/brightbeanxyz/brightbean-studio
⨍
Functions
3,156
◇
Types & classes
668
↳
Endpoints
120
Route
_invalidate_on_apikey_save
receiver(post_save, sender=ApiKey)
apps/api_keys/signals.py:None
Route
account_analytics
router.get( "/accounts/{account_id}", response=AccountAnalyticsResponse, summary="Read channel ana
apps/api/routers/analytics.py:None
Route
approve
require_permission("approve_posts")
apps/approvals/views.py:None
Route
asset_delete
require_permission("delete_media")
apps/media_library/views.py:None
Route
autosave
require_permission("create_posts")
apps/composer/views.py:None
Route
bulk_action
require_permission("approve_posts")
apps/approvals/views.py:None
Route
cancel
router.post("/{post_id}/cancel", response=PostResponse, summary="Cancel a scheduled post (back to draft)")
apps/api/routers/posts.py:None
Route
compose
require_permission("create_posts")
apps/composer/views.py:None
Route
create
router.post("/", response={201: PostResponse, 200: PostResponse}, summary="Create a draft or scheduled post")
apps/api/routers/posts.py:None
Route
create_landing
require_permission("create_posts")
apps/composer/views.py:None
Route
create_organization_on_user_create
receiver(post_save, sender="accounts.User")
apps/accounts/signals.py:None
Route
csv_confirm_import
require_permission("create_posts")
apps/composer/views.py:None
Route
csv_preview
require_permission("create_posts")
apps/composer/views.py:None
Route
csv_upload
require_permission("create_posts")
apps/composer/views.py:None
Route
enqueue_analytics_backfill
receiver(post_save, sender=SocialAccount)
apps/analytics/signals.py:None
Route
event_create
require_permission("create_posts")
apps/calendar/views.py:None
Route
event_delete
require_permission("create_posts")
apps/calendar/views.py:None
Route
event_edit
require_permission("create_posts")
apps/calendar/views.py:None
Route
feed_add
require_permission("create_posts")
apps/composer/views.py:None
Route
feed_delete
require_permission("create_posts")
apps/composer/views.py:None
Route
feed_explore
require_permission("create_posts")
apps/composer/views.py:None
Route
feed_list
require_permission("create_posts")
apps/composer/views.py:None
Route
idea_board
require_permission("create_posts")
apps/composer/views.py:None
Route
idea_create
require_permission("create_posts")
apps/composer/views.py:None
Route
idea_create_post
require_permission("create_posts")
apps/composer/views.py:None
Route
idea_delete
require_permission("create_posts")
apps/composer/views.py:None
Route
idea_edit
require_permission("create_posts")
apps/composer/views.py:None
Route
idea_group_create
require_permission("create_posts")
apps/composer/views.py:None
Route
idea_group_delete
require_permission("create_posts")
apps/composer/views.py:None
Route
idea_group_reorder
require_permission("create_posts")
apps/composer/views.py:None
Route
idea_move
require_permission("create_posts")
apps/composer/views.py:None
Route
idea_upload_media
require_permission("create_posts")
apps/composer/views.py:None
Route
list_accounts
router.get( "/", response=AccountsListResponse, summary="List the SocialAccounts this API key is a
apps/api/routers/accounts.py:None
Route
list_media
router.get( "/", response=MediaAssetListResponse, summary="List media assets — recency-first, with
apps/api/routers/media.py:None
Route
mcp_endpoint
router.post("", include_in_schema=False)
apps/mcp/transport.py:None
Route
me
router.get("/", response=MeResponse, summary="Inspect the caller's scope")
apps/api/routers/me.py:None
Route
post_analytics
router.get( "/posts/{post_id}", response=PostAnalyticsResponse, summary="Read post analytics with
apps/api/routers/analytics.py:None
Route
reject
require_permission("approve_posts")
apps/approvals/views.py:None
Route
request_changes_view
require_permission("approve_posts")
apps/approvals/views.py:None
Route
resume
require_permission("approve_posts")
apps/approvals/views.py:None
Route
retrieve
router.get("/{media_id}", response=MediaAssetResponse, summary="Retrieve a single media asset")
apps/api/routers/media.py:None
Route
retrieve
router.get("/{post_id}", response=PostResponse, summary="Read a single post")
apps/api/routers/posts.py:None
Route
save_post
require_permission("create_posts")
apps/composer/views.py:None
Route
schedule
router.post("/{post_id}/schedule", response=PostResponse, summary="Schedule a draft")
apps/api/routers/posts.py:None
Route
test_accepts_public_http
patch("socket.getaddrinfo")
apps/common/tests/test_validators.py:None
Route
test_accepts_public_https
patch("socket.getaddrinfo")
apps/common/tests/test_validators.py:None
Route
test_all_frames_fail_returns_502
patch("apps.media_library.services.extract_video_frames")
apps/composer/tests/test_media_stream.py:None
Route
test_bluesky_bootstrap_refresh_when_expires_at_null
patch("providers.get_provider")
apps/social_accounts/tests/test_tasks.py:None
Route
test_bluesky_safe_pds_url_is_injected
patch("apps.common.validators.is_safe_url", return_value=True)
apps/publisher/tests.py:None
Route
test_bluesky_unsafe_pds_url_is_rejected
patch("apps.common.validators.is_safe_url", return_value=False)
apps/publisher/tests.py:None
Route
test_chunks_over_filter_cap
patch.object(YouTubeProvider, "_request")
tests/providers/test_youtube.py:None
Route
test_creator_info_failure_does_not_block_publish
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_creator_info_queried_before_video_init
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_does_not_inject_author_for_other_platforms
patch("apps.publisher.engine.get_provider")
apps/publisher/tests.py:None
Route
test_does_not_overwrite_explicit_author
patch("apps.publisher.engine.get_provider")
apps/publisher/tests.py:None
Route
test_empty_post_ids_skips_request
patch.object(YouTubeProvider, "_request")
tests/providers/test_youtube.py:None
Route
test_empty_rows_returns_empty_dict
patch.object(YouTubeProvider, "_request")
tests/providers/test_youtube.py:None
Route
test_facebook_credentials_include_selected_page_id
patch("apps.publisher.engine.resolve_platform_credentials", return_value={"client_id": "id"})
apps/publisher/tests.py:None
Route
test_failed_health_check_preserves_profile_fields
patch("providers.get_provider")
apps/social_accounts/tests/test_tasks.py:None
Route
test_failed_health_check_sets_error
patch("providers.get_provider")
apps/social_accounts/tests/test_tasks.py:None
Route
test_get_due_platform_posts_filters_correctly
patch("apps.publisher.engine.PlatformPost.objects")
apps/publisher/tests.py:None
Route
test_health_check_preserves_avatar_when_provider_returns_empty
patch("providers.get_provider")
apps/social_accounts/tests/test_tasks.py:None
Route
test_health_check_refreshes_avatar_name_handle
patch("providers.get_provider")
apps/social_accounts/tests/test_tasks.py:None
Route
test_id_falls_back_to_expanded_when_urn_missing
patch.object(LinkedInCompanyProvider, "_request")
tests/providers/test_linkedin_company.py:None
Route
test_inbox_publish_handle_resolves_via_status_fetch
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_init_unaudited_error_becomes_non_retryable
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_init_unknown_error_stays_retryable
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_injects_ig_user_id_for_instagram
patch("apps.publisher.engine.get_provider")
apps/publisher/tests.py:None
Route
test_injects_organization_author_for_linkedin_company
patch("apps.publisher.engine.get_provider")
apps/publisher/tests.py:None
Route
test_instagram_credentials_include_selected_ig_user_id
patch("apps.publisher.engine.resolve_platform_credentials", return_value={"client_id": "id"})
apps/publisher/tests.py:None
Route
test_instagram_health_check_passes_selected_ig_user_id
patch("providers.get_provider")
apps/social_accounts/tests/test_tasks.py:None
Route
test_invalid_privacy_level_rejected_without_requests
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_mastodon_health_check_injects_instance_url_without_registration
patch("apps.common.validators.is_safe_url", return_value=True)
apps/social_accounts/tests/test_tasks.py:None
Route
test_missing_fields_default_to_zero
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_missing_video_returns_empty_metrics
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_non_object_body_maps_to_502
patch("apps.composer.views.httpx.get")
apps/composer/tests/test_unsplash.py:None
Route
test_none_columns_are_skipped
patch.object(YouTubeProvider, "_request")
tests/providers/test_youtube.py:None
Route
test_none_post_id_returns_empty_without_request
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_null_counts_coerce_to_zero
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_omits_code_verifier_when_absent
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_optional_post_info_fields_forwarded
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_parses_counts_into_post_metrics
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_parses_rows_into_post_metrics
patch.object(YouTubeProvider, "_request")
tests/providers/test_youtube.py:None
Route
test_picture_is_none_when_logo_elements_empty
patch.object(LinkedInCompanyProvider, "_request")
tests/providers/test_linkedin_company.py:None
Route
test_picture_is_none_when_logo_missing
patch.object(LinkedInCompanyProvider, "_request")
tests/providers/test_linkedin_company.py:None
Route
test_populates_expires_in_from_jwt
patch.object(BlueskyProvider, "_request")
tests/providers/test_bluesky.py:None
Route
test_probes_duration_when_missing
patch("apps.media_library.services.extract_video_metadata")
apps/composer/tests/test_media_stream.py:None
Route
test_publish_id_in_progress_returns_empty
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_publish_id_resolves_to_video_id_before_query
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
Route
test_rate_limit_maps_to_429
patch("apps.composer.views.httpx.get")
apps/composer/tests/test_unsplash.py:None
Route
test_refresh_failure_marks_expiring
patch("providers.get_provider")
apps/social_accounts/tests/test_tasks.py:None
Route
test_rejects_dns_rebind_with_any_private_address
patch("socket.getaddrinfo")
apps/common/tests/test_validators.py:None
Route
test_rejects_link_local_metadata
patch("socket.getaddrinfo")
apps/common/tests/test_validators.py:None
Route
test_rejects_loopback_ipv4
patch("socket.getaddrinfo")
apps/common/tests/test_validators.py:None
Route
test_rejects_loopback_ipv6
patch("socket.getaddrinfo")
apps/common/tests/test_validators.py:None
Route
test_rejects_private_10
patch("socket.getaddrinfo")
apps/common/tests/test_validators.py:None
Route
test_rejects_private_172
patch("socket.getaddrinfo")
apps/common/tests/test_validators.py:None
Route
test_rejects_private_192
patch("socket.getaddrinfo")
apps/common/tests/test_validators.py:None
Route
test_request_shape
patch.object(YouTubeProvider, "_request")
tests/providers/test_youtube.py:None
Route
test_request_shape_with_video_id
patch.object(TikTokProvider, "_request")
tests/providers/test_tiktok.py:None
next →
1–100 of 120, ranked by callers