From 0158931b1bd7301ff92f3c0f43a88f6356b097fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 13:38:40 +0200 Subject: [PATCH 01/25] Update dataset.md --- sources/platform/storage/dataset.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/platform/storage/dataset.md b/sources/platform/storage/dataset.md index 15e6ba1cca..e4ce472499 100644 --- a/sources/platform/storage/dataset.md +++ b/sources/platform/storage/dataset.md @@ -19,8 +19,8 @@ Dataset storage enables you to sequentially save and retrieve data. A unique dat Typically, datasets comprise results from web scraping, crawling, and data processing jobs. You can visualize this data in a table, where each object is forming a row and its attributes are represented as columns. You have the option to export data in various formats, including JSON, CSV, XML, Excel, HTML Table, RSS or JSONL. -> Named datasets are retained indefinitely.
-> Unnamed datasets expire after 7 days unless otherwise specified.
> [Learn more](/platform/storage/usage#named-and-unnamed-storages) +> Named datasets are retained indefinitely. +> Unnamed datasets expire after 7 days unless otherwise specified. [Learn more](/platform/storage/usage#named-and-unnamed-storages) Dataset storage is _append-only_ - data can only be added and cannot be modified or deleted once stored. From 329288993d85dc61d392bf81891521c761d1e6f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 13:42:53 +0200 Subject: [PATCH 02/25] Update index.mdx --- sources/platform/actors/index.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 69cbb6c0c3..ebff3eb9e0 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -34,6 +34,7 @@ import CardGrid from "@site/src/components/CardGrid"; ## What is an Actor? Actors are serverless programs running in the cloud. They can perform anything from simple actions (such as filling out a web form or sending an email) to complex operations (such as crawling an entire website or removing duplicates from a large dataset). Actor runs can be as short or as long as necessary. They could last seconds, hours, or even infinitely. +[Read whitepaper](https://whitepaper.actor/) > **To get better idea of what Apify Actors are, visit [Apify Store](https://apify.com/store), and try out some of them!** > ![Apify Store](./running/images/store-google-maps-scraper.png) From 036c472436122658ccfe73530420f0cc4b7f3568 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 14:00:02 +0200 Subject: [PATCH 03/25] Update index.mdx --- sources/platform/actors/index.mdx | 44 +++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index ebff3eb9e0..7f09577a65 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -33,19 +33,47 @@ import CardGrid from "@site/src/components/CardGrid"; ## What is an Actor? -Actors are serverless programs running in the cloud. They can perform anything from simple actions (such as filling out a web form or sending an email) to complex operations (such as crawling an entire website or removing duplicates from a large dataset). Actor runs can be as short or as long as necessary. They could last seconds, hours, or even infinitely. -[Read whitepaper](https://whitepaper.actor/) +> [Read Actor whitepaper](https://whitepaper.actor/) -> **To get better idea of what Apify Actors are, visit [Apify Store](https://apify.com/store), and try out some of them!** -> ![Apify Store](./running/images/store-google-maps-scraper.png) +Actors are serverless programs that run in the cloud. +They can perform anything from simple actions such as +filling out a web form or sending an email, +to complex operations such as crawling an entire website, +or removing duplicates from a large dataset. +Actors can persist their state and be restarted, and thus they can +run as short or as long as necessary, from seconds to hours, even infinitely. + +Basically, Actors are programs packaged as Docker images, +which accept a well-defined JSON input, perform +an action, and optionally produce a well-defined JSON output. + +## What is an Actor made of? + +Actors have the following elements: -You can use Actors [manually in Apify Console](https://console.apify.com/actors), by using the [API](/api/v2) or [scheduler](../schedules.md). You can easily [integrate them with other apps](../integrations/index.mdx) and share your Actors with other Apify users via [Apify Store](https://apify.com/store) or [access rights](./collaboration/access-rights) system. +- **Dockerfile** which specifies where the Actor's source code is, + how to build it, and run it. +- **Documentation** in a form of a README.md file. +- **Input and output schemas** that describe what input the Actor requires, + and what results it produces. +- Access to an out-of-the-box **storage system** for Actor data, results, and files. +- **Metadata** such as the Actor name, description, author, and version. -## Actors are containers +The documentation and the input/output schemas make it possible for people to easily understand what the Actor does, +enter the required inputs both in user interface or API, +and integrate the results of the Actor into their other workflows. +Actors can easily call and interact with each other, enabling the building of more complex +systems on top of simple ones. -A single isolated Actor consists of source code and various settings. You can think of an Actor as a cloud app or service that runs on the Apify platform. The run of an Actor is not limited to the lifetime of a single HTTP transaction. It can run for as long as necessary, even forever. +![Apify Actor diagram](./images/apify-actor-drawing.png) + +## Running Actors + +You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](./collaboration/access-rights) them with other people, [publish](./publishing) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize). + +> **To get better idea of what Apify Actors are, visit [Apify Store](https://apify.com/store), and try out some of them!** +> ![Apify Store](./running/images/store-google-maps-scraper.png) -Basically, Actors are programs packaged as [Docker images](https://hub.docker.com/), which accept a well-defined JSON input, perform an action, and optionally produce an output. ## Public and private Actors From 56cb81011ccd3e6a659dcf2348389001836cebbc Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Fri, 25 Jul 2025 14:02:36 +0200 Subject: [PATCH 04/25] Better copy --- .../actors/images/apify-actor-drawing.png | Bin 0 -> 58613 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sources/platform/actors/images/apify-actor-drawing.png diff --git a/sources/platform/actors/images/apify-actor-drawing.png b/sources/platform/actors/images/apify-actor-drawing.png new file mode 100644 index 0000000000000000000000000000000000000000..1e57b23cefc6df26e40281b87acc0c5d0d12a844 GIT binary patch literal 58613 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

LxBA;3{5ozF%8TZnHB--%I6hWUK54AY-G5tLy% zZ)qxK+#3TQgiYD|eH+pgGLR=VLzSUt;-F_)_Qsn5oT}$VNTJn9WRANEdY~5mqVs>S zA8{vR>jsZpMHs;j%w4HYc^cb~g zwFEBIWmQEzvh{Xm_qh_}~SK(w@4c(AI(7s^891rj;dm50F*?SMjX8p<`W zy=$Lu(ul1=(??EnpPKPl+Lu$*S}utb!haU-8`#9Y-Faak?xx4fD#u(-g&r$E8i&+J|&hcSI=AgiQVA-5!Zp=Lg(r_ct-0 z%mJsH4!NDs>>@u_UhzCHX7!u%LwjSUK5CZFHFw~8Gn4{WYQ4y7LDvdd!yFpJvcU!H z%J65;&mrryUA$Pdy;!YoSE?`-8d}*_++|ECBL15|kjESbwj?L*qBS_pRuj;-r@(%0juPp30Lop=pBBG{hN#$n@s=E`R)4SfT}DL~ycRQb zrmTT-Y)SMs-lZBi1NA?6TEF&7c<&_G85*uOJ9d1$KX1KlSx)%_%N#YQT1((Z>vj7m z>FLaj?IV`Oz=u`sWDm*SnDAp;tpmEV`c%*amamN+srG2g;N_%6wuG6^b*k!b;{YR^ zR|1vgw45tu7*WO6ALVGj&XDIdFn^MSxVLs;Bwv#3bU!{{%S#Qe?luBDBU}**wq_`6 zBUX>nSEe#UF4TFe&2Ow$Z=X?9T_l9Q)UD3*eHpq`lhQ-zILNE`>2dpjucATP4+Io2 z!K&jw_pEQfq6f%EHQQJpza?{t_TAx63Zuwi)g2mLd-YJm@Ihj~;7QmT+0??{k+Y~t z-q$7%HjM~a=ht5TvDn()7D8<2eHygd<`DSWl0@Uqbl1?RxB_3iLJ z*aSmx#4Ai*izefkc`WpL^8PO;>eol&H6gX}6)z|0-=x1~bf;RHQPt#2;*^X^Sz+T1 zHX@I`vN9P?{tS))Tisn|jhmuRhL%WW*~APZ$VoS)#AF7of4$>3!L;BP+W8A$m*E02 zBJk%b9tT}Tof`|@o%Vgv_mMh?Bq85qw=J9iyhdToFpLgt0^0&&W_uu~4@C~dr9(rb zjY!sP4r+j2zUsOJFaiyr)0fZ!YhdS~FT4`IWEqO}A;_JkGpIB}MT8y>H6jaXYS9Pi zgUIBmp$m4?o>jnl`1)fLp|@kQ#1qstazpfJPODqjhW*1RppSP~!h7G>@~@+z1^>AS z^G2jtKD+)Js>{2ND-rOD@(;+`E}yAi8^8qNbhf}KL}}}N0bktm+3%Qh?mDMVd4FK# z7CrWlv&s9T2mG3V)x`&cCTLL4!~Ots6#bWU4L=M{w>L0d%Do9no6xU!>eeQh%*cB* zHSj4}Y@IY+6{F^Q|pZ+05qP z2mpsBN_Lgf&c+Nyjypu(JRb_{>Fn$Yd-37}Kw^0lQ=3)fPeBCi8kc($yB&4tm8q47 zTTxMWFYbITfug5-tV7^C8brj|0~6RkA@twbY@cnNuir{(U1`X%Y)vyBL{6x_lK@yH z!f!8j4}blh@4XI(_l6w?bRLV;q9aPsQmZGsQ!c9tp8>62>-UX22>SZ7@Z1#JhsRVQ z+zKWO#33n5@*O1WGOQZM=HPYDWZfZ~@-PsnmT z`wyzZk}JQP;}?I;X?9)^ykt(#t#0A|qxb3=IjrhKXXj_nO%_%K>Av%Th^s}^;7DxZ z4@*>G4~{VIMWzf6$&(zSFMo+4R>v)|9)wUL6VLBDSPb5ZIfrkypy#wzJGQ&w0YE3Cm(S$7@KyFrX>ft#%hZq z0L>ghU`?=AG0=M3)RP)He~$cHt80^_zN-|e(Vkw&x84-TTp&tSFfW*@vkD{&+kDY+ z8gg@eadmSh8M-4!Coc%8MfasOpdY?@arYLf(ELxyf<3PfOKMJn_5V)IH`Mn>%>9b^ z9nQif`%`AfcFe^l^p8bof#>$w`6}gQ*Hs?NzfM>O!FK_0L}BE`Hsm(-pXy-PdptEZ zkHQroWDz?#Jya1_a#}%(1=-v4aO*&e@F$S%EzHSb)~0{_JyyEvx<(}R%24I?Y>qI! zWC)XHdT%3GAwQC7ay2g?LK@#9&4L=_p(-!>CKayG_{8y`=u0)FMBiSc2S(Rxy&*^z zTJ6EtWvI~DbOrsHU?fi!GMCn5iNX6(05PDX#jf>vE^!uE&QYV!MU3MP%?9H#(!Jqo^55I#m&?9;J2cS zUOW~Ji`f~1l6e+MrI$m1d+2+5Bn%e9qPO={?3)SbHky4~Yqd(S;`Ed)fb}e*dDRUU zq=g{{!IxB;n$iZ(=KG?V7FfC}0NSj@YvJ+;jrB}6;V9!)z_QeJd)Ht9}299rRxc|QD4By z&4suoMc06b zF?ae|rkA$WH}{k6m##Hx2En=nPeJX`-U{BJb<)NiwG& zUk*JE60UvlVlFMih=Fk~M2tj=hRSK}^po$7)CdL4b_)Rw?{E`hZ-Gq($>gu(ImyAxE>{t{dLx4hvFLKUR6Q`aE_m zx}n=~x^wlz!q&;wAjAgeO&z!p3;q-(#zxDhZfz93u~W{|$p-9~ee%i3q>mv*kb8b- z@{$H9jma#`MCWcG?rTYwufvCiJsAp(L;<30IX&bjGb3|XAW5qT8pwPK`|T&+D8a^r zJ@RA*Y{Eq0_NF|?B8k|J$IZDb?4qTP(zx@0FRDRHmQb3QE2P8?^OQINln^ec@ia0} z%b&htw6$f~u04&(rll0@ZT4EHY>=YMDBV-kfH@AhNFQWqyezeT`X1%($m zk@y~0nDeNdF#EnN4sUcn=z^{k2vW%jx(@?!BR}iZv&=qQaYFD#`m%soL4;XHXGogw zO~c4WoU*+F&8nAlU5qReH?9cnq|JyP*Ug&>*E)u3#_Wf^M{D5)#Aq!s30lBv zRMdg1%LB40wQowLG=@+}o7BT;_^O&|yS0j*lcEt2NNoiaFn&T>`LzzYrbsMo9d6 z2J}`Iy81&9@6`s**Vjnn)m}Iv0%jF@O=mL~ehSOvIbYyF8Xc%jQ7p47((@ zKz&sE@YGMge}?e;D_Ft2=K4<$(({0;oVs$L)Aue7d~{TWUY&@4`}}SS%o?7FTx&ue zHK4U<)WO{<+urI!-5qWW?B#=24?xD^?q4<2b#aW#1*BHK6SSZl@(jkIk^L7%83sq+ z%NIC;e1EedlZo7X)HgNso&@}4aH18or~JOI%57gnZHhW%)*M*sj+h1?C0=iy<&<7Z z<-#o+aYS1Z9zXmncI3A!xBR1ZT2=+24=R?%u2rWZK2RjK%%MmC+kzrJDxo&@LeGK$ zEC~e%JWP5&1^!|JJWS~K7dKW>y%c~6XoL_zF}+f8Cs*betg7zQ2Y-KvGw6B@u-q7; zG_<}jT-rb$wUcU~_%CO8-vGY?kC+dgLK3vZ;ncvl=UoAW3MwspMBgsB5iXaqzXz%2 zTA0R7^jt5$I~SD1aZ9Iq|3jyL&orkM*D0`9v`&F`PJ`F$+~xq~Sx(0@7M zRBclkx=MrTT57PkD3JgxIY?1{fFs^!{Cem5PjANW$;{B)$tt>D)mNpLDs4RP3Ba6g zi|*OZi{Hz!?I`bmG{H3P@gk7vxE!bo(Pbt@JB(n2i zOlo6rqOGX^9GoxsC|Y$OJ1o?)28uaLmUfp&kO~9g?(Z+C00%3jc9DfG>;n`2 z&|Y&};H%f_Dh1=uZGw5EHfn~YV)Z5T7I0StMVgN6-_%jgHn`e&yGzM&uqjjUhFEuQf^{GBw5r!K(YD z!l@fKSM7n`>`3OlNVTlZF9s<8kGrFWuB|E@rfvz@>dj5IG2zkvO;?WF^b0Xmjk!onT zXbDf(-$NkVz>8#G+vm9A^JmMfzNGpv&EkhNT;nkQStu z&Lx+8Za&}V_j>Wia>vY>bIzPIGxyAO$vh-{*&qb2v{elr#Hbe+O48`t@+p1Upv1+D z2+S2Pbo7q4&K@(W<|`53nhKe{X3_ zZ}i5*69(V~sl2Q(;fu;Z#^;3n7o~%OQv$wCX`e31p4{}9ew^T7I-E#3d)wM#J5-Iyb5leXU2~vTA(Hk$AJKdJf$w?1>SK$T zh0?P#5Yv3#e;K=cSy~ZyI%it6F*NUM2u`wBeRcf8GK;z)93F&DGEVtF zG1flnc^mwg$RDJPr7l9~lFWyHX49f9``HDCqel)14YYD;|E_5dqiuguK^!3z1Ullu4s6n;oIebd=dnx5-@k%5a7Iwo|fOOdj6hZ%QIn`K^^Ff9x^@Y)aLoV zJxff8OCx#J6-H3p^j_8oVM{ws;BLf`5MwYgjA1FJS zswNt4`zbT+D`Wk(;HeB4DzAt zrz7A7EUIHqmdtSLl0iyJNqrrvs7cOT@ukj{|BV92L`kg3pm#LqrG?;E6gxF?U21TB zN?uoOP^J6tf>QILqsU{R^JD5nF`{Piv2nuUV^TiS`T~PLKi4RMv0Urj*)o(yoO~P@ zRm9yG)aw78q=Z^mfBnSQdAQ4C&C7T)N5tL zpfy5bPlUpWWJVI~5L9j?vb1kB_dG|u+2nJ0OHfZ^tw|4bBuYCU{yr;K-Z<{=`>CiF zuV$0}Or|h~cBTv^K^3Z*cf~cBXPE2tRObb#M)yFTe_~h`lmnVYO9&q8gRjHEZC(X$ z=PWz9l&^@6)mnI&VH8rs8-|lQDr~HP^(k);Doe3iTNjC$mnh#PgTy!4-J%1s`0^f% z{+_kc>ijr`yPd(-N(PE5XUJamYlu@9%~^QOlB2=I-)V^KAj7T5lH25f?dg>|d*FMo z|LSTUUkK9#IZz7mj34n*_bM#r&Q!R3M9$ek=i?sqTV1_H1MOLBm=}L1mj8INl#}G= z##8D@GqzXJl^No-n+y35jeFFn{5g|Un8T9gvrV8CRSU`ZW=j_QBMjXsjoXC|19X;&!{dUv<`-sqy#4FM&~#aru;Ohzhne z&1591@$Je2xunUocOwhwd-X+b_+(~vgbi-<9cG-JY=?xBM5{u$Ey4N6H;X;C3sA*M zt*3^E*D(tg)O#(>CvOQg$66=tXI#- z4w=Nz=E9ESCvli^Sx*?$F#S&6(*lNzP!$H{5MwnwO}{tH1UmknGwsOS>saQy<&6=4 zNd(cSK|$MaSs~hgwHfh*VSfnV)X>$c`owYz1`s3dpS)Tu3-e;cfmxfUcXj)8y@#0u z?B?>vlU^=HYNd){5h0+0ne&;~&_O}kJrsEx(Mc`?vLF(-(UB9n0OJQatK*i8B&?RL zex%^(NWf0>H8uS@zsJ6N%DC9do{0mOYy2QVgxiJ`WP`D36a8=)x~ir}GDYGhlfQ-< zIJaYc_{u;>VtCu$+4qJYf7{WBD&ZRnC*nNm$KZEG$Y}j*y-Bh6_k}+=tz(b*7T@R2 zWW83q2C4AS6(NxzDIUm2Q02PGgS;W;Vt1XQF%JRQ4Mm0d{TrVKlT<~p^uD3K?*}5z z8sq@rYG2Z~RC3g>c`R5fc-0A>4-c+tgh`)+E9vGL!sa)Gjq&+XjMh@Ct(%6Mhxe5H}Hk5UbgUxtwzAF%Kh>dlr|R^76L#<~Hm#a0HX^j1#le3Wyg>M0v+X zFJ+CZK)Gm@WaQ4WwelD+mg<=$dELA7QHVqFG#H2ujr|n`W!QY1hMkN8&mH?{(AHKl z`_lnbNx#%cK1a_OUzuD`eWGa7zm!KWYh@&n`@&FvV>`IUmiAJo-|RXJ_F>eR8%gk- zY}#-8EZblIlpegwuDPyYEaxG6MS<{r{VW1E0y>AL02HikjaoNRUS_^^)NHU^gq-3K zff0%&z#_Y2ni{U`Ahfy!z~3EX_l%;aB7;Wwq$AQ2sq5Cv38)6?0e0uv4`3WH>atIt%KWY`)C1xP7?G4d zOr&4tO0Y6O19%z8SaH)f?J7dykC^F2)mq<6khX@H2}W)3gD0ppO^38O;4(#VYS32{ zL{$|v_m<+gSe{Nse`G&zJZu38SZ+ZYpiEF+NFFTb=L6f~&&9c7L{YfOB_C}Hlq?&8 zb`VZ_*f&05I;OjI5rh*DP(t^XeRCrO`ykP8fSS66;%~g#nlkWAl*ys4xaqv%(6_D8 zyAX7g@2DsqkN*~3Q_}_H@9TH9-+=x8PX)TPBFXoN`*_)Y-(~sgdUf3%v`VUdi?XTq ze{wok#+=o0_wKSRu_5me%Hgv~EJYWEn_f{ga+=23Ef3B7>|OaSU9 zn|Ggv(MaqX@npmkJa1@Q-vStp*a$JxGP?apT1U*(KIvb`qq8(y^ES>?2e4Wq2vS!> zrtd)1#B6R_R?!W6lIkEaNPArQ*W`)W3xj)~H@=V>4Ec^?f7kZU)=sDA6CQ;6F`uxcua|t;biuyt8wHtvWM~~OZDaWi^pM$n z?MZny`S&h#fb1`iqklUl;C);}Ydlcjy@9(nNNosUwb)X12tpWuAcI`ACCg?i0Q`)| z|Gqc76j`cMf?YK&mQv^6BluUNx7FSKp5^3^%+5h-7Ai3CX{h#>CQxgWYOtw2py5U- zYJ1-%7=o|fOHQTSpI)phyU-AZ+yXQuz8$`MX>3tl#tpB{>XGIyR1EHX+vR-`^UI4G z?-1@uZmILz;6lGpwn)KN$L>zs(bBAUKgqO}2dyHBP+7&z3f4I7xT!P!j`7%N`XLHTeLPU+ zTYsx;ivg4P=wtr&Oc#L+B@S(V8!-G+F!p2x#`lpiS-(f#@Cq8?0LNm#7)V;BVb5bx z3tv&@Z|V-<5O`4pGKL?^`FRa9F(%7>YhMpbrF@HkZ3l|E>f}n7nUL0S`V|EPpqg>?pW6=SMV? z*8FA0sv(N|{z18)BrnRTDNacBLwkk=dgbG(+ycV*_{fVi2^NoV8_pZZsnLl=i7WFR z&Xn-FL@h*O?UJVWhx+fnTVkeGqeDtgE-c5@y!p|)w<4P-Ky0aY1;SrwsyT=~<v<~opDMK_y32rOJMp_^%wGJS{)t+Fz|dcK?h>(K9cw; za%TKr{M)h4-pM)cwwU$$KC9;?E;fH>3RS-9cY_cj-VL3zUSB|5GqX~W&$T3vlTlS= zgbVNNokeJbxbJ~1PBKx!AYMlG_Pjm$b7p_Ao%n(wt1 z?p~36dT7f$`E4h=Qj7iWM$%z2*Pgq;H~R|+WHJudFTZrIjejbfqzs};pVtaDh~f=b z@q0n7iVfv+P*3^37|x2 zmV=yPh*L#OSH+JQlHd3}rG-nFo$f9LGPvIgOvS4ynTC45Al2ldRX`g!d4hZBE-JPM zM5&C9Q&2xab3?Y|wIt#$3}rlHe~hA(lxNK>n6Fw-%^O~XTzR@k!QdF{SbfVk(k-(dSf7yi)wxXDryx( zLulQ9x_=-scBED{eVF&B-_J+4^|{@qS#m?BEoaxg%r^yMXlYE;FVgz(6nXULzL+88 zo_9;DeZ><~1P}kz&fFZ*6`H$}$@bE1kebiBh^+nIDHNfjaAWiF{kz%b9AwQ`MxYBn zg75rIJ1)@#1~XtHK`gh z{34m#6wTGuIHxgVQ5_E{4n^eANXtrnlD3u`yNd(D7=ij&QO#RU;H+ipU&-ZCS4J_F z--S>dYi+^T60kh#y+B2Zrx8Scy5i5<@N*(mXU`E!4g8u^Lh9ROrE4wiWqR;<$-4@W z9oAS@ld9s?=EZ~xSDU73I&k(C#YfW+2}*BR`gwA1qf{_2$rGkiBAp&dD0T0{z0HwI zV79=1!v9f^aRZ08!BuOgr$U>G280cKe#BwbQ3noeg|wsjk-mKpjdp)}q&Pkf$11w2 zXh-SpRNU6}J;>xOOd)~7{X;#(q@M{jg% zNr0zuF}&E!(!JluA51pT0L)J2I`9HWImj(@?b1ONBAM5$yD*@UE7ooWWuB{}=;DPs zKA=IC|L)r+pm^HD?Mdg^WB!V+?OO)xK~Oxl7u(&UuItk7w~Zel>aWtiT{|l+GBcR9 zzTS)QtK7ZQMV@~zq{*x(ndG`>^To#Rw@Dj1*lD<+rIW<_zx$Oi(lu?roOKUr5Sf;5 z$%|M{d|+Ydxa%ekVdzY*09|q@A?!Y=(^~z0pN{!xl3dVq2fxDOIjzVvqn*bHP>^Ka?zdHSsR4V;mum<_X?%e=~^rN~qSsLo>$%IiJdGc73gKq3iR9Zrd6 zjzMJ_lxoRL8wTJph4t{8qO8sDUMKG~2(Z4fhxE+q<_j=q!_?gS{FR@0?q zTB>q@{V4Q+|JeyfEC}H<(r%N63wDBXSb;{?F^?ZeaD}<@BXnK**FaTTJT@C{dNg&H zJqSLHt%lhPzoJX=seIpQj4lB_KozOX%Mb++`t}&Q6sEYiEHF%DA(^4@cw4Ho*C2HJ zJ3dd#-)n!&82;b&kpiC#EM+{~x8mXYV*8U(B1p*kOx8IlM_u3t$Quywo88g$Gl~E6 zI8?iA8$JamTsjx5Ag5i6aG-i7?ns+zX!Cb)>;wdHZ?+-qdBcV>m4~)xRgF8r zy+OUIfynR5iPXo<30y~3%24?4@(%%^0=S{yy(qZE#S;B15vJ^GxiEJi!a?5{>`n{s zOpRqQSC;Fd(RkzH8+{2VfM9)01PoYKsDTq5Rm|SNzEnd-x#;}M{GL*EKk_t zl4TUGv20@it42o5Bs6bjFd-p6Z}QB(G@&qN-VQcLf>1c;f&ziBQ&pKj=OPJ`?fWkl z8wBCvj84Ofd_quPC(lwZLJ=O1{btf`8wb?dIa>Y2(HPvTp{Hciq0E#X`K3xHt?(Zd z6eUjd7_{pU)Rbh=8p>&RI4+(9COsf#eN0Ch2mogpTmQ=VXiQ0Z>b+oJwS@w#m=(~F zrDD?~QpZ~2b_Pv99^Zs9_<+UN-ze!nU+>1jVX(OlD48U@iMa*fN((PKQFE(sj9dbqO`R(4HejU%5OxCn4WHcEG z>O3O^;k`4k9+Xw&v*&(80f@Oooyi)<>8(%?ljctXC9b3h1`KdglB)Wk9VwX7EY=Z^ z{j~FQGy9N^j!tU6-PB&{e*NEVx3k5|Go9n&;^HbcPb1R*7;tEi)mx?<0EgtwBs7(o zT3ctqVNt^4vOtsIK~b>&W-1K;kZBcvZj-EicG6#3N@N!tv&ZsX1~k&sS2m8DHdf~Pw>#gJ7ms9IB2KFXl5h=OVu!K zX0zfcjCm@_`FY2ki{O=Gd9-5f9Sw2|8?ew{6UdI&gM3mOWmu5k$^bHD2kWOaC91i^ zFyWK}KO;YUQQ^!1yBzSyK|&E4Yzy?~`)~**p^&NDFQ2 zhlwC%3Jm`$qPZq80is1&H)cs8ab)x7@^WDz5<$BQ+3$Kqx)}5C2MJVF(aTc;j}zzb|J_l56#W(BQbY_8Q} z;1B*c6;>KQlAitzJ2u90Zbt<13;=qo_B`C2?W?Qz_({RN(pzfx80~>X4$-+{A#Wf; zXJwHf-!43!psUze3AnJpe#A_WJ5ZWRvmSIRf)mRIVtbMKV7K2IGiy?X-id#VyD&P# z$PJGl$@d}R##{RNT5~}HK5h!;h4#j8XFv@C#w&yAso#t4(9V5y(79BOD@FxjY`?S?*{M+%=b0REzrZ z4cnOk2>}(3RZt)XtQn{dVs0IIJQF-OttA3*^AYEkRB+hLmEs_#9WJ{Yn4cupqo-*A z&F@yLU_=Gc_cL;Sz!_q~>5%s%kauMIFS`W*Z0yFbsCx=LVL2Jd0M5Ah|DL?125bAn zy$oXA(vdPiKCuFtN>IsP-4z5<88)D67tI!ybt4pOpMf_P+G)Q5LUed=we`?KL!es) z3iN~da@{t|S&leOhZ$C7r z1_hxMqz2_A9D5(ZpR0v~7>2Q$gXfl}DubBJc`ymFSHt=B zJodL01Ov?jNUZjt48 z0~r{FinS+YIcWSafKbUm7BEacZ}1@MMpS$X0OVgfK;Vi1T_^BBJWoV<3hn9pma-geAMtm-zwP)+(YW0Q_}K+xDjI-~)1Sfz^z6obwUnf=3=h7mQ=W z6;Um(`7`%zcv!%Po90m@RDj7dUUq@vbW&g=D*OXuHdmdSDWswQ;O~?zl_$hJwU?$a zad8iRRITqi41FkceEKLvz1$iGMBAFv2s~X*G zZ6pEES+nP09|klCyYat-XLuU*0?xKi60y~bKJwqjV`ur8?gD`Sx}-8N$VUM!F~o*A zPj!_W!c*PPS8pu@QYAUSq;T{*F`~y(;!fD7!M`a^V~{CM*>Y?61sg%uHmd@hH2@HD zGSsoZHdVu<`>(mcEMnyimF)=4gys``PD_ANTW~!F#i1^OErQjk6-Rac+|UOt0#DkH zV#r#4io5h!`uqXk(r^9edgrf~gfX8QU!!Jve+KS^%+=B2kF)EsFOXSI+)0 zj6(>NXit>}sy5RAzy7hg**bdTVu=aN-j&n8XrRw!|v6H$Log^J?FZ_>O5TMk~BItjM3hHNihyG;gG(cf3#9s z0a@};d!|7|-!8mkFNNtkQS!Sedj@vXBHAum>bFKO1h~VXAEdBmjQf;(89WJXX9`JK zf%htMlw!?sBN$8WoHK}OIVsE)rX=oYg&L?1dmKBQvjD~%c33KavIA1Q+GYbf6yo{7 zOhfJ_{4fWpXZH6AcKi8XZwS|=O1Wq-I5*9`1}E#J{{#~F!&is6%`tkpdLECc4-~0+ zM659EUA0YCVy>>dCe+{CCA+v|*z<}J(aB?6ar*Qt$RU;CR6tPA)g*4O_i@EoJX;LG z^&5%6Oez@2LoZW~?eE$9pox0|P8R!HutYZ5?4@N<@NZjBNjN3K?T{FNyHI<34DEfD z4WWqDlz8bSm0hs&`4cw>Vy^<%@0YnDmDEM?4&Zfop@}w+zp^icFe9f$!sBvbSIMcY zFgFvcmo~iNW9;2Qs1>_E<6x{0Di2Wy%F^TgPXynQZceFVW^;-Eq*Osp){+MNYxYcB zKaDL5%C{j8Lam-&+Cc#|deM{1{+-ufj8fvKS;BRj_(54+bA`4T48M1vRHt40m()Np z4$;JIW62yasO?{{$fS4BhPqwgkO`_p=l68-=L9wT$1yYrDUF zn}3`iX3#jT;hmBw8JO}4p1$$vgzy6mFlNWN^Dg5-Jz5j`QR=Y|XQ7E%Ze{eO;xPB8 zVaM|X>pORqE(o zy@q?;Wqc~w?zh5L(|UD!0s(@99t(p@`NC@kx7}Ub*g+gwtoKn$5n3QW;rfVCS2H=i z{Ft5dFVBvpSn*_Wm2fZFMKhz~@|N>RHAvxeRqJ)=9pqCuCxef}E0v+oujv^oY)9{> zRPI`5sHq}3C zp4=h0lrP`~1ohK!idZr?dq>}44NV(Yg*gIC<;6a) zG5*A#F=Vr34MgxF)4CIpTro(+otFfB2?2GsG zyWF(yfwU6TIsXb!6aLl2a5G8$_H59r)Vek2Z!-T}*QLL8<>yY+G;Zkqd}7n=h%~l( z+_LE48TugWeC7MmevT+kyPiLJ8K3F|JRX&h>&R3+cwHu{qCjc29c;H}yK^S%v6^8K zS+ewL`KJ5Ut#AZ_^RI{7%6&6A0sAT1Ec=O^kK}WHnmky(+lR)4ntcJ{+P_}m7YMEG z(%(>bbvPWwvBiYgdY4zKhv(@DIOu=f;M>UFh)N`J%$D9HE9=BpR5VC(It!JACY` zuc%116JAvsN4}qPY`$<)_{;a#GC%M7&-pOq)gF8Se}e#nOJyXJ3X1&i^}Q1bes^`) z&-TEdVozakwXA00FAJ+EHNvVYHg5a8hr9(gxZc#qIe0M5Tztk5@4nKkB5|p#HuOpg`|X@f4sk%S4NGR$klKHX(?5$%q*)f_ zUA9*j20Ti1_`RN8692&!d}W7Psk)wKefbm?iOaVj_$_~kI_;WDsEt+C#iOHd=PrGx zv!0`v?nf@sZG8SfgwVknbPUqb*Pq_R#Cd@qwKywhB9xJ1vBEecj?0*CX0f-L{#JxW zz(jzG;brSc#b083MkJX-{89i22B9c&lq}5Ela2Xitz)!LK8YY;X}aN~Ud13WapZ?p z+%)+&3QQ7{JF}Y)+}o@EdCq##zG~E=$8893{fdt%DeJ#zxYJ_X=KaF{zND|Ie9KV; zB@bAIUp}3_<6ek(SMoq_hVAS!!YJxPvB^=ftRmO()s!_@CQMnl6*Z)o!6-tr-{deK zCO%|S!-0Hn_2PlUzv`$vYoQYidr3rxgBMbKe0KR{%bKA) zE-p}~HBosCQn_DMNfKcU9;jGu7Yl%TV>ouih=j3AXEup})kdz#WPYYCXV7z(sxf&b zV5u2*LD?>cb$s&RZ>QF?_W|cefhmFChW~5y9jzYQkc?9bd=jd64MjsIhZara2-dCG zvzVUGk-)Tlbo_A7zkrXr{yyrGmq5SCU=^V;{haK@E-ReW+U-2JJ~#iw%sDajn!&PS zh+5(G7TcuQ$L+7z*)FP8@36bQ=WKouU-Mq6yC-kdef(6BG4WyJU#6_u8wK0sYmGMk zZ`d!NdhV9aT=(Yu@<&pNLlX2SC>>Ft-&OroQI*2}MJPG2fODHCl4!Ip96a>J*fY|n zvV?%?zJRaq{C+-kZ?Cyf=;bvl`N){WrT%}<#BC!ZrR_j9qQoHR}+ zfS6FQ7h-+(=Ke&BD#a9OWP)3>pjQ?6exmj>T?0ScJP9@8pyj!$=?>v3?=w)G+C4Oh zs%#5w;GrsuVW@e4kBNRnRcgSer;Y?&U^O=WpWaHaMrQYdQswoNMPv^a^@#)L8M;v9 ztNI_izX$^1=V%-9at1edsre&jirXiJF_#NMUcsn~a9;Odv0=@?K7$3+4L#UAlE#}t zwNC9JH4U(2ua-RyYaiBpeqk8)1#ODcapX1Gb)){@^l^#e-sHeD{eM7M7W4}$F8lNVsF zN8u;#rO!;uQ(bdyV;9)He;q@hJAF6ZV2Zc)U&cc@P$jsZGP3=+oe#3F8#(C|Fn8HCJtr) zwikO`i$l=TIWQT1IjnvdaOTpuZ}sX&?yk7y+nz3&xw^T1>bW|{ zW@tlOTXT!Sqbeagx3Xhj$IU+hceA3?>~bcI(ZdhZZKZPorw2Ju@Y4=EbIqHA4OG3F z=kCPq+sG6H)?@q6S?xnUzZWR;;=cxF#lPYd&5MsK-!h9n{?kOzy<+O2rbJ%yRB_(v zta01^W8MS}Zr9F4@tI!}YjTcR^b{&{hT7Nk!thr;h12ZnEQEZ$@^#>Assn0|Bl@Qf z-#N^FG#^^Ke?Hi4!2;fy>H$)D9YDKyf+x`Kc0t`P7Ss>`!(V!TD`Q2&Bd+JG@(4&Q zZt9u%_B?aV9t#-dk>+(=Gpm-oG`7&%X4a>P9KVKB-Mtj7fU1%O6JC682q{x~n<*%F z4wYkJ|2(o_1kijNwf$JGjwK<3gg)`l*fpd#MO@D%lb3~V6qgTJ7V_5KAEniW8i)n; z1bBF$D`G;>=si0Nvh}`4F>^N?BGi2w8!Iy+an09i=!2|>C-uWp6RntVS-SU?lD7IdL2|LMdEK?Q!7nl3aLs;!UI*!YJ- zZtJQ3V|oHX{QkhmlAKBQM{}g#9-qlFs#FO{Ls-^6~lS}ftYzKCDi;m~F zAv|7~d&1pq0>iC`KkwyB3UHqs*W;4wH_#se47ijqU&5Yc6H~fo7Kg`dg$|Z?n=EQV zaIDR($anmmtv82c`GNf|b$^pY8*nWjJ`yM?7j7LKDqlLRm0aAhK2xKq9OQl6#S$~B zpcallylL=a3i&8(x3~hg!h8W8A_WKyG8%8(W9{xBXT zAjE#2hjEmr-Rd>p<1+l*+N1!z`tDZ`CvEEsYb(l>QD0&Kyd`Vy?G>QBUW>=V8I-*x>5SG7uVW52Jv#v=$F~%^%fTt01F-NM`+Yu-AOm2tl>hDEYKE;4I z3EBzO=B%htN*J9gHRaJOUGmHRR4;pvi@wq4LtYD;Tk@#$@*GoEJ0 zv>NXWh7D5(nvXyDFKRVx#mTOa2U~o1o$3uDy!|B#Pt9vfzYU%ltMsZ@Tl1 zip?AA$T7na&d@40$q8iJ(4BG|i-YAbK9X?xOtt3GO_dGXRwucpCft9Lh zp-3@vohCc1Fe?>jmVZqvRp8%LN2Rvu2ggX}h zi6o7wlV@WAVmtih6_r5CQl+gaAuy9*Rqc|M^KRiYGlQzfi)Lw zqY~A%_j2;K8m(L-$M5&U)5WUK$kgVVlA)J$Gu?Y z0w;mxrZ*ubelflRXQO+}(MvglnN405kI-C=s=d?)Ho3db^3Ff{1o_z>uPsWkoCI-Q zydwYlmY>_FzHEwQ$uLqQL&3x&)KTwkTeSuxXTZdgl9SBBf^M&p;g5b?orzO8{SnsO z5ys2D4J8#(Os=7p-*8ZXS&fzbw*c3#~5&kuka3gl) zg3On*{cGzJ8;(c&z2w2@l;@ny`Uz?|*p|$>d{|7@>@b0|ml={)b0yCw^b_Y+Umd^H z9o14euw!bA-n47fD1CSOkL$5e;LO(;`)`Ayu1||g*On6fX3 z&{N`QP9k}OTXMR@y81f@Q6j|~1my5LncTMhn?%z3zoP78M`T`meLv{X>*KSZEak=c2KP7PlC;ovauSi+-a>HkxPqfxeIa#WIvIjlOu~Df)uNPN# zLWLk{o6gG;3H2o(MEi@UtAh$5YIl1NDb8cNBjO1EipW}_{CG}fB9YuSe=dc(NRqlp zzH5Dr8l9eLy_QA3tlNq~6do{q7pP^Zs_x8xlatt`)2a5|uo)47b8<<${w=>sI)UKi zNE7)fxQ;W2H>d>FQkv%$L3XlvafF@fZixeM%a zpY#)#H*5#N;DxY{E9WH$s<;nHtFM-VBKFjuQIc+*oc_m4GRLO8VM87mw&xn2<7F41 zMVR+h7^AYGDOBa9TcckyCz+-;FY?ajt%K3uG6kbPqv)A$2U-@ZIWblrPYunqkkBu? zgc_Ukj_)_O_mfqwpZepo;0w!Urof6@4r=FBA~S*{c@}6LgkqEhS>yivmwPp9?FXj& zUvl7K>|L`nMOKHu9$7bk@vM7T7>i)^f~qHsiSut$S|bF1jg<$Ze4am^7bpmhWO#8( zSl?{*{Q#`ot#iUWFREi=yB_sTe7ZEw3s+dyKSis90Ei8Gp_ccmjS8|O0^N158jNsK z!|md_=-#+i@cpGBkkidA9B>1AL*45=5SS$#5n0npYoy}oRCFy>R&g}^60a4iq;f(u zhye~pzH~ffFFaGZCg!-)M20MuAb#nXBC*{P)V^aqbz5@hQ3H7`z&5xgX4;{A-a_g# zoPm#&wDk?=kDnw_zVY1~ag;Dm`r(ssR!VZ@@-<#S552ba#L*Y+mE^zem$1=DzaGmH zL(CD?vGk)Qm9JI@3FZEtv|YDb+ER|nke5^)Z=oo5s>7g^(;b#&A)?S9?Nec*&oBf> zHOy#c@=P0)JoCBkj6NU}zA@d`F)gUW{syN?oI%)30q>~(JdwEqb2hjVLGc2dB8 z!nDVXXb<8gh^PlTbiKpKRAD&nc zY>g{xqR(oY5LCfGOzhVvR5v6$xE^;^4A2M78(7Gk#nFyfW*fDRZ-@%h(3!?%Labk9 zIz;CTe77L2@1tSKOje8&4-jx1>0lXok^E-AxATn;C0RW(Zv<-;yWbUi9X}x{Jh!s? zyRCOcXY4AmV*rO*-#(=-+CK

lSfxegh`2i`NyNHSN8#8eLQHf3lSLUMZ0F&3QG| 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 k{Z_wcp$8k5UQ7Sw)!y Date: Fri, 25 Jul 2025 14:09:45 +0200 Subject: [PATCH 05/25] Fixed links --- sources/platform/actors/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 7f09577a65..2d40cf61ec 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -69,7 +69,7 @@ systems on top of simple ones. ## Running Actors -You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](./collaboration/access-rights) them with other people, [publish](./publishing) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize). +You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](./collaboration/access-rights) them with other people, [publish](../actors/publishing) them in [Apify Store](https://apify.com/store), and even [monetize](../actors/publishing/monetize). > **To get better idea of what Apify Actors are, visit [Apify Store](https://apify.com/store), and try out some of them!** > ![Apify Store](./running/images/store-google-maps-scraper.png) From d29f3efd83a238c82a7e638c2cc4a365eb730f70 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Fri, 25 Jul 2025 14:26:57 +0200 Subject: [PATCH 06/25] Fixed links --- sources/platform/actors/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 2d40cf61ec..8e0838ab94 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -69,7 +69,7 @@ systems on top of simple ones. ## Running Actors -You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](./collaboration/access-rights) them with other people, [publish](../actors/publishing) them in [Apify Store](https://apify.com/store), and even [monetize](../actors/publishing/monetize). +You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](./collaboration/access-rights) them with other people, [publish](../actors/publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](../actors/publishing/monetize/index.mdx). > **To get better idea of what Apify Actors are, visit [Apify Store](https://apify.com/store), and try out some of them!** > ![Apify Store](./running/images/store-google-maps-scraper.png) From 0a62ceaef942e4223ea4230ae193dd36d47796a4 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Fri, 25 Jul 2025 14:27:48 +0200 Subject: [PATCH 07/25] Better copy --- apify-docs-theme/src/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apify-docs-theme/src/config.js b/apify-docs-theme/src/config.js index 5cb7c0b85e..7b6104f382 100644 --- a/apify-docs-theme/src/config.js +++ b/apify-docs-theme/src/config.js @@ -132,7 +132,7 @@ const themeConfig = { href: 'https://github.com/apify', }, { - label: 'Actor Whitepaper', + label: 'Actor whitepaper', href: 'https://whitepaper.actor', }, ], From bbe9a8773e77ba098c973f9770c81665a9b3d737 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Fri, 25 Jul 2025 14:28:33 +0200 Subject: [PATCH 08/25] Better copy --- sources/platform/actors/index.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 8e0838ab94..a371dd9120 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -31,9 +31,7 @@ import CardGrid from "@site/src/components/CardGrid"; /> -## What is an Actor? - -> [Read Actor whitepaper](https://whitepaper.actor/) +## What is an Apify Actor? Actors are serverless programs that run in the cloud. They can perform anything from simple actions such as @@ -47,6 +45,8 @@ Basically, Actors are programs packaged as Docker images, which accept a well-defined JSON input, perform an action, and optionally produce a well-defined JSON output. +> For more context, read [Actor whitepaper](https://whitepaper.actor/) + ## What is an Actor made of? Actors have the following elements: From fd926143497a21769daf66a6e9e11c8379b5125f Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Fri, 25 Jul 2025 14:49:10 +0200 Subject: [PATCH 09/25] Fixed links --- sources/platform/actors/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index a371dd9120..3a1bd0c168 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -69,7 +69,7 @@ systems on top of simple ones. ## Running Actors -You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](./collaboration/access-rights) them with other people, [publish](../actors/publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](../actors/publishing/monetize/index.mdx). +You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](./collaboration/access-rights.md) them with other people, [publish](./publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize/index.mdx). > **To get better idea of what Apify Actors are, visit [Apify Store](https://apify.com/store), and try out some of them!** > ![Apify Store](./running/images/store-google-maps-scraper.png) From f9abbc211da83cd2e384d2f5baea597d0e087174 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Fri, 25 Jul 2025 14:53:14 +0200 Subject: [PATCH 10/25] Fixed links --- sources/platform/actors/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 3a1bd0c168..4efa2d3063 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -69,7 +69,7 @@ systems on top of simple ones. ## Running Actors -You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](./collaboration/access-rights.md) them with other people, [publish](./publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize/index.mdx). +You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](../collaboration/access-rights.md) them with other people, [publish](./publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize/index.mdx). > **To get better idea of what Apify Actors are, visit [Apify Store](https://apify.com/store), and try out some of them!** > ![Apify Store](./running/images/store-google-maps-scraper.png) From 67cc3e354380e51e5b05714154ccdad4a3b21775 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Fri, 25 Jul 2025 15:09:43 +0200 Subject: [PATCH 11/25] Fixed links --- sources/platform/actors/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 4efa2d3063..01011153df 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -69,7 +69,7 @@ systems on top of simple ones. ## Running Actors -You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](../collaboration/access-rights.md) them with other people, [publish](./publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize/index.mdx). +You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](../collaboration/access_rights.md) them with other people, [publish](./publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize/index.mdx). > **To get better idea of what Apify Actors are, visit [Apify Store](https://apify.com/store), and try out some of them!** > ![Apify Store](./running/images/store-google-maps-scraper.png) From 8ace4a50bf83b8d1cbb862d9ac9e89dcef6c3134 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Fri, 25 Jul 2025 15:26:41 +0200 Subject: [PATCH 12/25] Fixed links --- sources/platform/actors/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 01011153df..c93c36186d 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -69,7 +69,7 @@ systems on top of simple ones. ## Running Actors -You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](../collaboration/access_rights.md) them with other people, [publish](./publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize/index.mdx). +You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](../collaboration/access_rights.md) them with other people, [publish](./publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize.mdx). > **To get better idea of what Apify Actors are, visit [Apify Store](https://apify.com/store), and try out some of them!** > ![Apify Store](./running/images/store-google-maps-scraper.png) From a322125c775fb57b10b97b7b754dd9ad884998e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 16:44:13 +0200 Subject: [PATCH 13/25] Update sources/platform/actors/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/index.mdx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index c93c36186d..d6c29a3b1e 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -33,13 +33,7 @@ import CardGrid from "@site/src/components/CardGrid"; ## What is an Apify Actor? -Actors are serverless programs that run in the cloud. -They can perform anything from simple actions such as -filling out a web form or sending an email, -to complex operations such as crawling an entire website, -or removing duplicates from a large dataset. -Actors can persist their state and be restarted, and thus they can -run as short or as long as necessary, from seconds to hours, even infinitely. +Actors are serverless cloud programs that can perform anything from a simple action, like filling out a web form, to a complex operation, like crawling an entire website or removing duplicates from a large dataset. Because Actors can persist their state and be restarted, their runs can be as short or as long as necessary, from seconds to hours, or even indefinitely. Basically, Actors are programs packaged as Docker images, which accept a well-defined JSON input, perform From 454dd98693399773d8bbb2734ae852fec0b02a9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 16:44:19 +0200 Subject: [PATCH 14/25] Update sources/platform/actors/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/index.mdx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index d6c29a3b1e..b8b6dcaf7d 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -35,9 +35,7 @@ import CardGrid from "@site/src/components/CardGrid"; Actors are serverless cloud programs that can perform anything from a simple action, like filling out a web form, to a complex operation, like crawling an entire website or removing duplicates from a large dataset. Because Actors can persist their state and be restarted, their runs can be as short or as long as necessary, from seconds to hours, or even indefinitely. -Basically, Actors are programs packaged as Docker images, -which accept a well-defined JSON input, perform -an action, and optionally produce a well-defined JSON output. +Basically, Actors are programs packaged as Docker images, which accept a well-defined JSON input, perform an action, and optionally produce a well-defined JSON output. > For more context, read [Actor whitepaper](https://whitepaper.actor/) From b452c2dd2748c61db03a9e06e67574959035ddc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 16:44:33 +0200 Subject: [PATCH 15/25] Update sources/platform/actors/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/index.mdx | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index b8b6dcaf7d..8d6374ffbf 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -43,13 +43,11 @@ Basically, Actors are programs packaged as Docker images, which accept a well-de Actors have the following elements: -- **Dockerfile** which specifies where the Actor's source code is, - how to build it, and run it. -- **Documentation** in a form of a README.md file. -- **Input and output schemas** that describe what input the Actor requires, - and what results it produces. -- Access to an out-of-the-box **storage system** for Actor data, results, and files. -- **Metadata** such as the Actor name, description, author, and version. +- _Dockerfile_ which specifies where the Actor's source code is, how to build it, and run it. +- _Documentation_ in a form of a README.md file. +- _Input and output schemas_ that describe what input the Actor requires, and what results it produces. +- Access to an out-of-the-box _storage system_ for Actor data, results, and files. +- _Metadata_ such as the Actor name, description, author, and version. The documentation and the input/output schemas make it possible for people to easily understand what the Actor does, enter the required inputs both in user interface or API, From 2b5b9742aaee3e3f7d28bdc8bc9a26f05436dfb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 16:44:40 +0200 Subject: [PATCH 16/25] Update sources/platform/actors/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/index.mdx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 8d6374ffbf..e430c844bd 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -49,11 +49,7 @@ Actors have the following elements: - Access to an out-of-the-box _storage system_ for Actor data, results, and files. - _Metadata_ such as the Actor name, description, author, and version. -The documentation and the input/output schemas make it possible for people to easily understand what the Actor does, -enter the required inputs both in user interface or API, -and integrate the results of the Actor into their other workflows. -Actors can easily call and interact with each other, enabling the building of more complex -systems on top of simple ones. +The documentation and input/output schemas help people understand what the Actor does, enter required inputs in the user interface or API, and integrate results into other workflows. Actors can call and interact with each other to build more complex systems from simple ones. ![Apify Actor diagram](./images/apify-actor-drawing.png) From 87b1a909f9d4bde840a259bcbdf91938f61affec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 16:44:46 +0200 Subject: [PATCH 17/25] Update sources/platform/actors/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index e430c844bd..5137dd2d75 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -41,7 +41,7 @@ Basically, Actors are programs packaged as Docker images, which accept a well-de ## What is an Actor made of? -Actors have the following elements: +Actors consist of these elements: - _Dockerfile_ which specifies where the Actor's source code is, how to build it, and run it. - _Documentation_ in a form of a README.md file. From 1a1bb4778756066c55a7846a1e37bb28923bafe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 16:45:27 +0200 Subject: [PATCH 18/25] Update sources/platform/actors/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/index.mdx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 5137dd2d75..59a6ee1542 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -57,8 +57,13 @@ The documentation and input/output schemas help people understand what the Actor You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](../collaboration/access_rights.md) them with other people, [publish](./publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize.mdx). -> **To get better idea of what Apify Actors are, visit [Apify Store](https://apify.com/store), and try out some of them!** -> ![Apify Store](./running/images/store-google-maps-scraper.png) +:::tip Try Actors + +To get a better idea of what Apify Actors are, visit [Apify Store](https://apify.com/store) and try out some of them! + +![Apify Store](./running/images/store-google-maps-scraper.png) + +::: ## Public and private Actors From 1c99e9235bc30bca41aad1c2e0d8d90a51a0e363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 16:45:35 +0200 Subject: [PATCH 19/25] Update sources/platform/actors/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/index.mdx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 59a6ee1542..d22facf99a 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -37,7 +37,11 @@ Actors are serverless cloud programs that can perform anything from a simple act Basically, Actors are programs packaged as Docker images, which accept a well-defined JSON input, perform an action, and optionally produce a well-defined JSON output. -> For more context, read [Actor whitepaper](https://whitepaper.actor/) +:::info Additional ontext + +For more context, read [Actor whitepaper](https://whitepaper.actor/). + +::: ## What is an Actor made of? From 709d95118fafcacc1553d97e542bdd3dd28272cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 16:45:46 +0200 Subject: [PATCH 20/25] Update sources/platform/actors/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index d22facf99a..6e831c1ea6 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -43,7 +43,7 @@ For more context, read [Actor whitepaper](https://whitepaper.actor/). ::: -## What is an Actor made of? +## Actor components Actors consist of these elements: From a2a20fb16fd795d26981a7b41593ce4e4d659495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 16:45:53 +0200 Subject: [PATCH 21/25] Update sources/platform/actors/index.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Olender <92638966+TC-MO@users.noreply.github.com> --- sources/platform/actors/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 6e831c1ea6..117780e280 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -31,7 +31,7 @@ import CardGrid from "@site/src/components/CardGrid"; /> -## What is an Apify Actor? +## Actors overview Actors are serverless cloud programs that can perform anything from a simple action, like filling out a web form, to a complex operation, like crawling an entire website or removing duplicates from a large dataset. Because Actors can persist their state and be restarted, their runs can be as short or as long as necessary, from seconds to hours, or even indefinitely. From 086f84cea4d68f3333ae75be5456294b604473b8 Mon Sep 17 00:00:00 2001 From: Jan Curn Date: Fri, 25 Jul 2025 17:00:26 +0200 Subject: [PATCH 22/25] Fixes --- sources/platform/actors/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 117780e280..1aa023ff9e 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -39,7 +39,7 @@ Basically, Actors are programs packaged as Docker images, which accept a well-de :::info Additional ontext -For more context, read [Actor whitepaper](https://whitepaper.actor/). +For more context, read the [Actor whitepaper](https://whitepaper.actor/). ::: From 968776ace3a790858cf3bd53d5600af61a616dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Curn?= Date: Fri, 25 Jul 2025 17:00:38 +0200 Subject: [PATCH 23/25] Update sources/platform/actors/index.mdx Co-authored-by: Patrik Braborec --- sources/platform/actors/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 1aa023ff9e..36cafb3861 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -37,7 +37,7 @@ Actors are serverless cloud programs that can perform anything from a simple act Basically, Actors are programs packaged as Docker images, which accept a well-defined JSON input, perform an action, and optionally produce a well-defined JSON output. -:::info Additional ontext +:::info Additional context For more context, read the [Actor whitepaper](https://whitepaper.actor/). From bb3c3fbd8ad25902f7b5f033ccdf6162fd5b42e8 Mon Sep 17 00:00:00 2001 From: patrikbraborec Date: Sat, 26 Jul 2025 17:00:11 +0200 Subject: [PATCH 24/25] Add Build actors section --- sources/platform/actors/index.mdx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 36cafb3861..4c326ce419 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -57,6 +57,12 @@ The documentation and input/output schemas help people understand what the Actor ![Apify Actor diagram](./images/apify-actor-drawing.png) +## Build Actors + +You can build your own Actors to automate tasks, scrape data, or create custom workflows. Whether you're a developer looking to create web scraping tools, automation scripts, or data processing pipelines, the Apify platform provides everything you need to develop, test, and deploy your Actors. + +To get started with building your own Actors, check out the [Actor development documentation](/platform/actors/development). + ## Running Actors You can run Actors manually in [Apify Console](https://console.apify.com/actors), using the [API](/api), [CLI](/cli), or [scheduler](../schedules.md). You can easily [integrate Actors](../integrations/index.mdx) with other apps, [share](../collaboration/access_rights.md) them with other people, [publish](./publishing/index.mdx) them in [Apify Store](https://apify.com/store), and even [monetize](./publishing/monetize.mdx). From aa5845a8fe82db7058b80f57c305619333a1a873 Mon Sep 17 00:00:00 2001 From: patrikbraborec Date: Sun, 27 Jul 2025 09:45:54 +0200 Subject: [PATCH 25/25] Simplify the Build section --- sources/platform/actors/index.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/platform/actors/index.mdx b/sources/platform/actors/index.mdx index 4c326ce419..6052ef6a52 100644 --- a/sources/platform/actors/index.mdx +++ b/sources/platform/actors/index.mdx @@ -59,9 +59,9 @@ The documentation and input/output schemas help people understand what the Actor ## Build Actors -You can build your own Actors to automate tasks, scrape data, or create custom workflows. Whether you're a developer looking to create web scraping tools, automation scripts, or data processing pipelines, the Apify platform provides everything you need to develop, test, and deploy your Actors. +Build Actors to automate tasks, scrape data, or create custom workflows. The Apify platform gives you everything you need to develop, test, and deploy your code. -To get started with building your own Actors, check out the [Actor development documentation](/platform/actors/development). +Ready to start? Check out the [Actor development documentation](/platform/actors/development). ## Running Actors